From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#36609: 27.0.50; Possible race-condition in threading implementation Date: Fri, 12 Jul 2019 16:31:24 +0300 Message-ID: <83ims72xcj.fsf@gnu.org> References: <87muhks3b5.fsf@hochschule-trier.de> <83muhj2zmb.fsf@gnu.org> Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="15171"; mail-complaints-to="usenet@blaine.gmane.org" Cc: 36609@debbugs.gnu.org, politza@hochschule-trier.de To: Pip Cet Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Fri Jul 12 15:35:38 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1hlvi5-0003gm-O0 for geb-bug-gnu-emacs@m.gmane.org; Fri, 12 Jul 2019 15:35:37 +0200 Original-Received: from localhost ([::1]:49422 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hlveh-0007C1-Bd for geb-bug-gnu-emacs@m.gmane.org; Fri, 12 Jul 2019 09:32:07 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:55264) by lists.gnu.org with esmtp (Exim 4.86_2) (envelope-from ) id 1hlved-0007Bb-N7 for bug-gnu-emacs@gnu.org; Fri, 12 Jul 2019 09:32:04 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hlvec-0006Ma-MV for bug-gnu-emacs@gnu.org; Fri, 12 Jul 2019 09:32:03 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:58797) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1hlvec-0006MO-IK for bug-gnu-emacs@gnu.org; Fri, 12 Jul 2019 09:32:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1hlvec-0006CL-BQ for bug-gnu-emacs@gnu.org; Fri, 12 Jul 2019 09:32:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Fri, 12 Jul 2019 13:32:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 36609 X-GNU-PR-Package: emacs Original-Received: via spool by 36609-submit@debbugs.gnu.org id=B36609.156293831423811 (code B ref 36609); Fri, 12 Jul 2019 13:32:02 +0000 Original-Received: (at 36609) by debbugs.gnu.org; 12 Jul 2019 13:31:54 +0000 Original-Received: from localhost ([127.0.0.1]:39385 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hlveT-0006Bz-Kv for submit@debbugs.gnu.org; Fri, 12 Jul 2019 09:31:53 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:42811) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1hlveQ-0006Bk-PZ for 36609@debbugs.gnu.org; Fri, 12 Jul 2019 09:31:51 -0400 Original-Received: from fencepost.gnu.org ([2001:470:142:3::e]:40298) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hlveK-000686-HH; Fri, 12 Jul 2019 09:31:44 -0400 Original-Received: from [176.228.60.248] (port=4353 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1hlveE-0008KD-03; Fri, 12 Jul 2019 09:31:43 -0400 In-reply-to: (message from Pip Cet on Fri, 12 Jul 2019 12:57:51 +0000) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:162764 Archived-At: > From: Pip Cet > Date: Fri, 12 Jul 2019 12:57:51 +0000 > Cc: politza@hochschule-trier.de, 36609@debbugs.gnu.org > > Lisp Backtrace: > "sleep-for" (0xedf7a530) > 0xf6da40 Lisp type 3 > > post_acquire_global_lock () can return abnormally (I didn't know > that), so really_call_select() can, too, so thread_select() can, too. Do you know which code sets current_thread->error_symbol, and what is that error symbol? > > > + ptrdiff_t count = SPECPDL_INDEX (); > > > > I don't think we should do that at this low level. > > You're right, it does stick out. I think we're safe because we're > calling Fsignal with the global lock held, but it's not a pretty or > well-documented situation. Is this the main thread which does that? if so, there should be no problem with holding the global lock in this case, is there? If this is not the main thread, then the error handlers should be set so as to log the error in last_thread_error, and then terminate the thread (via exiting the thread function, AFAIR). If this is not what happens, I'd like to know what does happen here, and why. Thanks.