From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by sourceware.org (Postfix) with ESMTPS id EFA8A3858D1E for ; Thu, 22 Feb 2024 10:39:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EFA8A3858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=suse.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org EFA8A3858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=195.135.223.130 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708598364; cv=none; b=QSYFnq19FgRvyXKk+AgNRHVsd9ZfwfgTokOb99T9FNFFGWtCEJXSYAgDplRthU+25Ao4ffgvHwOqkEAd7DRHiMrTMjAtksZa46dY6fAMhlG24q1MsE3IJZO8lfrPE4IZ0PDgSQXXALc7OnVsHJtiOgk6KUhDlcOXhIDn1T4+G74= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708598364; c=relaxed/simple; bh=v+lya/qW+QHw+PXyemJ1bDq5X59ztKoZY2ASFJ24Ncw=; h=DKIM-Signature:DKIM-Signature:DKIM-Signature:DKIM-Signature: Message-ID:Date:MIME-Version:Subject:To:From; b=QRr2Lkh95rV8lxbtOZ+PtabaL2ehTVG2nXQnZEAZO5FEV6cteyrGfx3wW0Xc2iCdXMsndEOzGg9BXb0wMvfPRakYjmrsHOsoGNy4Yoi9N+My25jaKVfHosGIaSFtlLZcZ+bmRZcwBPzhcpsfRhMzzMKAZV2jroTyW5z9lYWcG8g= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id C62B221F3F; Thu, 22 Feb 2024 10:39:21 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1708598362; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=0fW88fbPmeg2neqMoC73nZr2/Oo4LhYhMKSsaOy3v98=; b=bQGh1Bc8XzHgv8otvWww0hR7XTOTgGvnkktfEHKjl4DkHzlQHxg4sNcXO9RzSR2Lm8Gtjy +iCXtAoO2qUIwR4ucLn1JBfr2Q6Sa63MQErzzH3EdvEDW+e6AjDc82J5f1l0pO5QAj5crB LE6FuuO/V3WRIET+Y8gaUOo4nZU6XY0= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1708598362; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=0fW88fbPmeg2neqMoC73nZr2/Oo4LhYhMKSsaOy3v98=; b=Qs3j2zfFocnON+jwXdsWpi9OLVcF/iUQfnadHr2cg+9L9LGk+fs8RA3YqI93fpbZbcPG4T AGWrPy4r/kVq83Dg== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1708598361; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=0fW88fbPmeg2neqMoC73nZr2/Oo4LhYhMKSsaOy3v98=; b=FhnuD9iHho8hsFviKMq2BRPqdJ82xWFXIRHB6uE+JFlNkogTSspOrjo9G2axwhjAB7BvCb qL1kI+989uKnO4m5aienZ7MQM3dKevJ3Ta3sKWwNqZSt+GVdKfaOIgHbJt1Ix/Vhooy3Sx mtRjB4HvlHp92/4Pf2P3jdPMK6IPYds= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1708598361; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=0fW88fbPmeg2neqMoC73nZr2/Oo4LhYhMKSsaOy3v98=; b=n2J4VhWrooDxjxbSYTNQSUTb9/0Iqp5RmLzy14yPYsKeU6ywFftrQ/zZ6nTpL3wdXc1Fgk DAskRV5bzN8D3/CA== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id AFE90133DC; Thu, 22 Feb 2024 10:39:21 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id xCSsKVkk12VkEQAAD6G6ig (envelope-from ); Thu, 22 Feb 2024 10:39:21 +0000 Content-Type: multipart/mixed; boundary="------------uHGpvDQvHYT09KnKEFbx347s" Message-ID: Date: Thu, 22 Feb 2024 11:39:19 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 3/3] [gdb/dap] Fix race between dap exit and gdb exit Content-Language: en-US To: Tom Tromey Cc: gdb-patches@sourceware.org References: <20240221132023.15147-1-tdevries@suse.de> <20240221132023.15147-3-tdevries@suse.de> <87wmqxzfoe.fsf@tromey.com> From: Tom de Vries In-Reply-To: <87wmqxzfoe.fsf@tromey.com> X-Spam-Level: Authentication-Results: smtp-out1.suse.de; dkim=pass header.d=suse.de header.s=susede2_rsa header.b=FhnuD9iH; dkim=pass header.d=suse.de header.s=susede2_ed25519 header.b=n2J4VhWr X-Rspamd-Server: rspamd2.dmz-prg2.suse.org X-Spamd-Result: default: False [-4.40 / 50.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; XM_UA_NO_VERSION(0.01)[]; SPAMHAUS_XBL(0.00)[2a07:de40:b281:104:10:150:64:97:from]; TO_DN_SOME(0.00)[]; HAS_ATTACHMENT(0.00)[]; MIME_BASE64_TEXT_BOGUS(1.00)[]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[suse.de:+]; MIME_BASE64_TEXT(0.10)[]; RCPT_COUNT_TWO(0.00)[2]; MX_GOOD(-0.01)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:+]; BAYES_HAM(-3.00)[100.00%]; MID_RHS_MATCH_FROM(0.00)[]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FROM_HAS_DN(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; MIME_GOOD(-0.10)[multipart/mixed,text/plain,text/x-patch]; DWL_DNSWL_LOW(-1.00)[suse.de:dkim]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; DBL_BLOCKED_OPENRESOLVER(0.00)[suse.de:dkim,suse.de:email]; FUZZY_BLOCKED(0.00)[rspamd.com]; RCVD_TLS_ALL(0.00)[] X-Spam-Score: -4.40 X-Rspamd-Queue-Id: C62B221F3F X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------uHGpvDQvHYT09KnKEFbx347s Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 2/21/24 22:10, Tom Tromey wrote: >>>>>> "Tom" == Tom de Vries writes: > > Tom> When DAP shuts down due to an EOF event, there's a race between: > Tom> - gdb's main thread handling a SIGHUP, and > Tom> - the DAP main thread exiting. > > Tom> Fix this by waiting for DAP's main thread exit during the gdb_exiting event. > > Tom> Tested on aarch64-linux. > > Thanks, this is ok. > Approved-By: Tom Tromey > Thanks for the review. > Tom> - start_thread("DAP", really_start_dap) > Tom> + # Note that we set _dap_thread in both the DAP and the GDB main thread. > Tom> + global _dap_thread > Tom> + _dap_thread = start_thread("DAP", really_start_dap) > > Tom> +@in_gdb_thread > Tom> +def _on_gdb_exiting(event): > Tom> + if _dap_thread is None: > Tom> + # This can happen if the DAP module is imported, but the server not > Tom> + # started. > Tom> + thread_log("no dap thread to join") > Tom> + return > Tom> + > Tom> + thread_log("joining dap thread ...") > Tom> + _dap_thread.join() > Tom> + thread_log("joining dap thread done") > Tom> + > Tom> + > Tom> +gdb.events.gdb_exiting.connect(_on_gdb_exiting) > > Originally I'd just pictured something like: > > local = start_thread("DAP", ...) > gdb.events.gdb_exiting.connect(local.join) > Aha, I see. > ... but wanting logging makes sense I suppose. > The global could still be removed if you care by a nested function. Done. I've also make changed the log messages to use DAP upper-case, to be in sync with other uses in the log file. Committed as attached. Thanks, - Tom --------------uHGpvDQvHYT09KnKEFbx347s Content-Type: text/x-patch; charset=UTF-8; name="0003-gdb-dap-Fix-race-between-dap-exit-and-gdb-exit.patch" Content-Disposition: attachment; filename*0="0003-gdb-dap-Fix-race-between-dap-exit-and-gdb-exit.patch" Content-Transfer-Encoding: base64 RnJvbSBhMzI5NzJhOGE1MjQ2M2Q1ZTU3NzliMTA3ZGZkM2E3YzRlZGYwZjU1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUb20gZGUgVnJpZXMgPHRkZXZyaWVzQHN1c2UuZGU+ CkRhdGU6IFNhdCwgMTcgRmViIDIwMjQgMTQ6MDQ6NDMgKzAxMDAKU3ViamVjdDogW1BBVENI IDMvM10gW2dkYi9kYXBdIEZpeCByYWNlIGJldHdlZW4gZGFwIGV4aXQgYW5kIGdkYiBleGl0 CgpXaGVuIERBUCBzaHV0cyBkb3duIGR1ZSB0byBhbiBFT0YgZXZlbnQsIHRoZXJlJ3MgYSBy YWNlIGJldHdlZW46Ci0gZ2RiJ3MgbWFpbiB0aHJlYWQgaGFuZGxpbmcgYSBTSUdIVVAsIGFu ZAotIHRoZSBEQVAgbWFpbiB0aHJlYWQgZXhpdGluZy4KCkZpeCB0aGlzIGJ5IHdhaXRpbmcg Zm9yIERBUCdzIG1haW4gdGhyZWFkIGV4aXQgZHVyaW5nIHRoZSBnZGJfZXhpdGluZyBldmVu dC4KClRlc3RlZCBvbiBhYXJjaDY0LWxpbnV4LgoKQXBwcm92ZWQtQnk6IFRvbSBUcm9tZXkg PHRvbUB0cm9tZXkuY29tPgoKUFIgZGFwLzMxMzgwCkJ1ZzogaHR0cHM6Ly9zb3VyY2V3YXJl Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MzEzODAKLS0tCiBnZGIvcHl0aG9uL2xp Yi9nZGIvZGFwL3N0YXJ0dXAucHkgfCAxMCArKysrKysrKystCiBnZGIvdGVzdHN1aXRlL2dk Yi5kYXAvZW9mLmV4cCAgICAgfCAgOSArKysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTgg aW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2dkYi9weXRob24v bGliL2dkYi9kYXAvc3RhcnR1cC5weSBiL2dkYi9weXRob24vbGliL2dkYi9kYXAvc3RhcnR1 cC5weQppbmRleCAyOWZlNzhlY2Q1My4uYTJiNjg5OTZkYmEgMTAwNjQ0Ci0tLSBhL2dkYi9w eXRob24vbGliL2dkYi9kYXAvc3RhcnR1cC5weQorKysgYi9nZGIvcHl0aG9uL2xpYi9nZGIv ZGFwL3N0YXJ0dXAucHkKQEAgLTkzLDcgKzkzLDE1IEBAIGRlZiBzdGFydF9kYXAodGFyZ2V0 KToKICAgICAgICAgX2RhcF90aHJlYWQgPSB0aHJlYWRpbmcuY3VycmVudF90aHJlYWQoKQog ICAgICAgICB0YXJnZXQoKQogCi0gICAgc3RhcnRfdGhyZWFkKCJEQVAiLCByZWFsbHlfc3Rh cnRfZGFwKQorICAgICMgTm90ZTogdW5saWtlIF9kYXBfdGhyZWFkLCBkYXBfdGhyZWFkIGlz IGEgbG9jYWwgdmFyaWFibGUuCisgICAgZGFwX3RocmVhZCA9IHN0YXJ0X3RocmVhZCgiREFQ IiwgcmVhbGx5X3N0YXJ0X2RhcCkKKworICAgIGRlZiBfb25fZ2RiX2V4aXRpbmcoZXZlbnQp OgorICAgICAgICB0aHJlYWRfbG9nKCJqb2luaW5nIERBUCB0aHJlYWQgLi4uIikKKyAgICAg ICAgZGFwX3RocmVhZC5qb2luKCkKKyAgICAgICAgdGhyZWFkX2xvZygiam9pbmluZyBEQVAg dGhyZWFkIGRvbmUiKQorCisgICAgZ2RiLmV2ZW50cy5nZGJfZXhpdGluZy5jb25uZWN0KF9v bl9nZGJfZXhpdGluZykKIAogCiBkZWYgaW5fZ2RiX3RocmVhZChmdW5jKToKZGlmZiAtLWdp dCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmRhcC9lb2YuZXhwIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIu ZGFwL2VvZi5leHAKaW5kZXggYTg0YjFkMjFlMDQuLjA1MDQ4ZjI3NjJhIDEwMDY0NAotLS0g YS9nZGIvdGVzdHN1aXRlL2dkYi5kYXAvZW9mLmV4cAorKysgYi9nZGIvdGVzdHN1aXRlL2dk Yi5kYXAvZW9mLmV4cApAQCAtMzgsMyArMzgsMTIgQEAgZGFwX2NoZWNrX2xvZ19maWxlCiAK ICMgQ2hlY2sgdGhhdCBmaXJzdCBsb2cgbWVzc2FnZSBpcyBwcmVzZW50LgogZGFwX2NoZWNr X2xvZ19maWxlX3JlIFtzdHJpbmdfdG9fcmVnZXhwICJzdGFydGluZyBEQVAgc2VydmVyIl0K KworIyBUaGVyZSBzaG91bGQgYmUgb25lICJSRUFEOiIgZm9yIHRoZSBpbml0aWFsaXplIHJl cXVlc3QsIGFuZCBhdCBsZWFzdCBvbmUKKyMgIldST1RFOiIgZm9yIHRoZSBpbml0aWFsaXpl IHJlc3BvbnNlLgorZGFwX2NoZWNrX2xvZ19maWxlX3JlICJSRUFEOiIKK2RhcF9jaGVja19s b2dfZmlsZV9yZSAiV1JPVEU6IgorCisjIENoZWNrIHRoYXQgYWxsIHRocmVhZCB0ZXJtaW5h dGlvbiBtZXNzYWdlcyBhcmUgdGhlcmUuCitkYXBfY2hlY2tfbG9nX2ZpbGVfcmUgIkpTT04g d3JpdGVyOiB0ZXJtaW5hdGluZyIKK2RhcF9jaGVja19sb2dfZmlsZV9yZSAiREFQOiB0ZXJt aW5hdGluZyIKLS0gCjIuMzUuMwoK --------------uHGpvDQvHYT09KnKEFbx347s--