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

Attachment: signature.asc
Description: PGP signature

Reply via email to