From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleg Nesterov Subject: Re: signals: Bug or manpage inconsistency? Date: Tue, 30 May 2017 21:18:47 +0200 Message-ID: <20170530191847.GA23231@redhat.com> References: <20170530170414.GA22463@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-man-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Linus Torvalds Cc: Thomas Gleixner , LKML , Peter Zijlstra , Ingo Molnar , Michael Kerrisk , linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, libc-alpha List-Id: linux-man@vger.kernel.org On 05/30, Linus Torvalds wrote: > > On Tue, May 30, 2017 at 10:04 AM, Oleg Nesterov wrote: > > > > I can't comment, I never tried to understand the rationality behind the current > > behaviour. But at least the sending path should never drop a blocked SIG_DFL > > signal, there is no other way to ensure you won't miss a signal during exec. > > Note that both SIG_DFL _and_ SIG_IGN are possible after exec, Yes, if it was already ignored before exec. But ignoring the compatibility the only important case is when it is SIG_DFL because of flush_signal_handlers(). > SIG_IGN doesn't mean "ignore signal forever". It means "ignore signals > right now", and I think that our current signal blocking semantics are > likely the correct ones, I am not saying it is incorrect, but I agree with Thomas in that this sigismember(t->blocked) in sig_ignored() doesn't look really nice. > exactly because it means "when you start > blocking signals, the kernel will not drop them". if the process is singe-threaded or the signal is private, or it is blocked by all threads. Otherwise it will wakeup another thread for no reason, the signal will be dropped in get_signal(). And again, this doesn't look consistent with do_sigaction(). It even has a comment which explains that we want to flush the ignored signals, blocked or not. Nevermind, I am not trying to argue, and > So again, I really wouldn't want to change existing semantics unless > there is a big real reason for it. Our current semantics are not > wrong. I certainly agree. Oleg. -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html