On Fri, Nov 06, 2020 at 11:22:18PM +0100, Matthias Apitz wrote:
El día viernes, noviembre 06, 2020 a las 10:02:46a. m. -0800, Ian Zimmerman escribió:So, does mutt set SIG_IGN for SIGCHLD? Maybe it should not, or maybe it should temporarily restore it in places like this where it synchronously waits for a child. That seems like a cleaner solution than the proposed patch.
Mutt by default sets SIGCHLD to an empty signal handler function (for 1.8.3). For more recent versions, the handler sets a global variable (which is used for background editing process management).
During the fork/exec process for sendmail (and other places), Mutt does set up SIG_BLOCK for SIGCHLD.
In my case it seems to be the case that the application servers which are using mutt have set SIGCHLD to SIG_IGN. So, mutt, if it depends on sync waiting for it children, should set it to its needs or handle (like the proposed patch does) the ECHILD situation correctly.
Does whatever the server is doing affect the mutt process too, despite mutt setting its own handler and blocking SIGCHLD during the fork/exec?
I'm very skeptical about making this kind of change, because it seems the difference would be removing an error message for you versus ignoring an error that another user ought to be notified of.
I'm performing a release this weekend, so am a bit distracted now; but I invite you to start a discussion about this on mutt-dev. I'd like some of the other (i.e. wiser than me) folks there to chime in about this.
-- Kevin J. McCarthy GPG Fingerprint: 8975 A9B3 3AA3 7910 385C 5308 ADEF 7684 8031 6BDA
signature.asc
Description: PGP signature