sendtimeout in nullmailer-send only works first time through
Nick Leverton <[email protected]> Fri, 29 Apr 2011 17:35:02 +0000 (UTC)
| Newsgroups | gmane.mail.nullmailer |
|---|---|
| Message-ID | <[email protected]> |
Hi,
As per subject line, it seems that the new sendtimeout in 1.05 only
works the first time through. Second and subsequent times, the timeout
isn't triggered, and smtp only exits when the connection attempt fails.
Notice below that the "Sending timed out" message is only printed first
time in after restart of nullmailer-send.
Apr 29 16:40:15 nullmailer[1934]: Starting delivery: protocol: smtp host: mail.home file: 1304089334.1822
Apr 29 16:41:16 nullmailer[1934]: Sending timed out, killing protocol
Apr 29 16:41:16 nullmailer[1934]: Delivery complete, 1 message(s) remain.
Apr 29 16:42:16 nullmailer[1934]: Rescanning queue.
Apr 29 16:42:16 nullmailer[1934]: Starting delivery: protocol: smtp host: mail.home file: 1304089334.1822
Apr 29 16:45:25 nullmailer[2065]: smtp: Failed: Connect failed
Apr 29 16:45:25 nullmailer[1934]: Sending failed: Connection timed out
Apr 29 16:45:25 nullmailer[1934]: Delivery complete, 1 message(s) remain.
Apr 29 16:46:25 nullmailer[1934]: Rescanning queue.
Apr 29 16:46:25 nullmailer[1934]: Starting delivery: protocol: smtp host: mail.home file: 1304089334.1822
Apr 29 16:49:35 nullmailer[2066]: smtp: Failed: Connect failed
Apr 29 16:49:35 nullmailer[1934]: Sending failed: Connection timed out
Apr 29 16:49:35 nullmailer[1934]: Delivery complete, 1 message(s) remain.
Apr 29 16:50:35 nullmailer[1934]: Rescanning queue.
Apr 29 16:50:35 nullmailer[1934]: Starting delivery: protocol: smtp host: mail.home file: 1304089334.1822
Apr 29 16:53:44 nullmailer[2073]: smtp: Failed: Connect failed
Apr 29 16:53:44 nullmailer[1934]: Sending failed: Connection timed out
This is on Debian using Linux 2.6.32 with glibc 2.7, and 2.6.38 with
glibc 2.11 (but I've also observed it on Fedora 7 and 8, though I no
longer have access to those systems).
I can't figure out what's going wrong. It seems as though, second time
in, the select() in selfpipe::waitsig is not being triggered until
the child exits whereupon it returns ERESTARTNOHAND. Is there some
interaction here with filehandles and children, perhaps ?
Nick
--
Serendipity: http://www.leverton.org/blosxom (last update 29th March 2010)
"The Internet, a sort of ersatz counterfeit of real life"
-- Janet Street-Porter, BBC2, 19th March 1996