Hello,
My name is Matthias. I'm a long time mutt user (since 2006), C-programmer (since 1981), FreeBSD hacker (since 1998). I'm new to this list because Kevin asked me to bring up a problem here. That's why I wanted present me a bit first. More information on my home page http://www.unixarea.de/ We (my company) use Mutt behind our Linux/SPARC application servers on a Library Management System to assemble mails (UTF-8 text, HTML, attachments) to send out mails to patrons (about fees to pay or books to return) and to book vendor for ordering books by the library. This works all very nice and the mail assembled by Mutt at the end is piped into /usr/lib/sendmail -t for delivery. There is only a small issue with the handling of SIGCHLD by Mutt which leads to an error message by Mutt that the mail wasn't sent (to STDOUT), which is not even true, because was sent fine. For more information, and before replying, please read the thread http://lists.mutt.org/pipermail/mutt-users/Week-of-Mon-20201102/002057.html (even if the Subject: is wrong, because I started with this Subject: before looking deeper into the process chain and sources). There is also a proposed patch to mutt and Kevin asked me to bring this up here. Thanks for your time of reading and your comments in advance Yours matthias ----- Forwarded message from "Kevin J. McCarthy" <ke...@8t8.us> ----- Date: Fri, 6 Nov 2020 14:45:52 -0800 From: "Kevin J. McCarthy" <ke...@8t8.us> To: mutt-us...@mutt.org Subject: Re: FCC error, may be caused by missing dir ~/Mail 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 ----- End forwarded message ----- -- Matthias Apitz, ✉ g...@unixarea.de, http://www.unixarea.de/ +49-176-38902045 Public GnuPG key: http://www.unixarea.de/key.pub Без книги нет знания, без знания нет коммунизма (Влaдимир Ильич Ленин) Without books no knowledge - without knowledge no communism (Vladimir Ilyich Lenin) Sin libros no hay saber - sin saber no hay comunismo. (Vladimir Ilich Lenin)