From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Andreas Schwab Newsgroups: gmane.emacs.devel Subject: Re: scratch/sigchld-fd 8f0ce42 1/2: Fix deadlock when receiving SIGCHLD during 'pselect'. Date: Wed, 20 Jan 2021 17:44:59 +0100 Message-ID: <87o8hjv9pw.fsf@igel.home> References: <20210116184947.2105.45267@vcs0.savannah.gnu.org> <20210116184949.3C17C211A5@vcs0.savannah.gnu.org> <834kjd7yk5.fsf@gnu.org> <83turc7n93.fsf@gnu.org> <871regr6x5.fsf@igel.home> <83r1mg6zy2.fsf@gnu.org> <87pn20vwac.fsf@igel.home> <504E9D30-9AB0-4AF7-A128-66AB17983B67@gnu.org> <87lfcovuec.fsf@igel.home> <5638F98B-832B-456A-89F6-559DFB43BBAD@gnu.org> <87czxzx68b.fsf@igel.home> <83k0s77hhu.fsf@gnu.org> <87sg6vvcbo.fsf@igel.home> <83h7nb7e9f.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="4468"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1.90 (gnu/linux) Cc: phst@google.com, p.stephani2@gmail.com, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Wed Jan 20 17:46:06 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1l2GcP-000138-HQ for ged-emacs-devel@m.gmane-mx.org; Wed, 20 Jan 2021 17:46:05 +0100 Original-Received: from localhost ([::1]:48766 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1l2GcO-0003iJ-KC for ged-emacs-devel@m.gmane-mx.org; Wed, 20 Jan 2021 11:46:04 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:38548) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l2GbS-0003DC-6o for emacs-devel@gnu.org; Wed, 20 Jan 2021 11:45:06 -0500 Original-Received: from mail-out.m-online.net ([212.18.0.9]:51123) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1l2GbQ-00050k-5Y; Wed, 20 Jan 2021 11:45:05 -0500 Original-Received: from frontend01.mail.m-online.net (unknown [192.168.8.182]) by mail-out.m-online.net (Postfix) with ESMTP id 4DLWbK18HFz1qs41; Wed, 20 Jan 2021 17:45:01 +0100 (CET) Original-Received: from localhost (dynscan1.mnet-online.de [192.168.6.70]) by mail.m-online.net (Postfix) with ESMTP id 4DLWbK0jRYz1r2xq; Wed, 20 Jan 2021 17:45:01 +0100 (CET) X-Virus-Scanned: amavisd-new at mnet-online.de Original-Received: from mail.mnet-online.de ([192.168.8.182]) by localhost (dynscan1.mail.m-online.net [192.168.6.70]) (amavisd-new, port 10024) with ESMTP id 848vSnay1u2y; Wed, 20 Jan 2021 17:45:00 +0100 (CET) X-Auth-Info: 8JAGvWptL156b1lqbRobfi1WU9R06ufZ7dlSx44Q6bb9/Ye59k+zM2TEM02WRDm0 Original-Received: from igel.home (ppp-46-244-163-184.dynamic.mnet-online.de [46.244.163.184]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.mnet-online.de (Postfix) with ESMTPSA; Wed, 20 Jan 2021 17:45:00 +0100 (CET) Original-Received: by igel.home (Postfix, from userid 1000) id 675502C3624; Wed, 20 Jan 2021 17:44:59 +0100 (CET) X-Yow: I'm in DISGUISE as a BAGGAGE CHECKER....I can watch the house, if it's ORANGE... In-Reply-To: <83h7nb7e9f.fsf@gnu.org> (Eli Zaretskii's message of "Wed, 20 Jan 2021 18:40:44 +0200") Received-SPF: pass client-ip=212.18.0.9; envelope-from=whitebox@nefkom.net; helo=mail-out.m-online.net X-Spam_score_int: -23 X-Spam_score: -2.4 X-Spam_bar: -- X-Spam_report: (-2.4 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.248, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:263211 Archived-At: On Jan 20 2021, Eli Zaretskii wrote: >> From: Andreas Schwab >> Cc: emacs-devel@gnu.org, phst@google.com, p.stephani2@gmail.com >> Date: Wed, 20 Jan 2021 16:48:43 +0100 >> >> On Jan 20 2021, Eli Zaretskii wrote: >> >> > So maybe this is the problem we should solve: make the SIGCHLD handler >> > reset the bit of the process's output from the fd_set passed to >> > pselect. >> >> You cannot do that. That creates races all over the place. > > What kind of races, and where in our code? please elaborate. The signal can occur anytime. When it interrupts the setup of the pselect call, chaos will ensure. The only way to avoid that is to block the signal around the call. Doing anything non-trivial in a signal handler is bound to problems. Andreas. -- Andreas Schwab, schwab@linux-m68k.org GPG Key fingerprint = 7578 EB47 D4E5 4D69 2510 2552 DF73 E780 A9DA AEC1 "And now for something completely different."