Discussion:
qmail-inject closes pipe before vdelivermail has finished sending.
Netbeans
2013-01-31 22:25:57 UTC
Permalink
this causes a sigpipe error in vdelivermail, and gets feed back into
qmail-inject as a signal 13 ( sigpipe ). The causes qmail-inject to
think that the child ( vdelivermail ) crashed.

the bad email file has this: > Received: (qmail 3973 invoked by uid
508); 30 Jan 2013 21:11:26 -0000
Received: from c-68-41-19-219.hsd1.mi.comcast.net (68.41.19.219)
by mail.gatworks.com with SMTP; 30 Jan 2013 21:11:26 -0000
Received: from apache by anbid.com.br with local (Exim 4.67)
id 87QGEX-U87LUI-QI
Subject: Case #52932381
X-PHP-Script: anbid.com.br/sendmail.php for 68.41.19.219
X-Mailer: PHP
X-Priority: 1
MIME-Version: 1.0
Content-Type: multipart/alternative;
Apparently qmail-inject stops processing the input file ( via pipe from
vdelivermail:435 if ( write(write_fd, msgbuf, file_count) == -1 )) at
the bogus line that cant be parsed any further.
Once the pipe is closed by qmail-inject, any further writes will get a
sig-pipe error, and the process ( vdelivermail ) will die, as the signal
processing is set to default ( ie terminate process ).

Somehow, qmail-inject has to process the rest of the file, even if there
are parse errors, or vdelivermail has to recognize that a pipe can
suddenly close up.


!DSPAM:510ad44c34141883472779!
Netbeans
2013-01-31 22:30:45 UTC
Permalink
Just to be sure:

that is qmail-local gets the signal 13 from vdelivermail. Vdelivermail
has the pipe to qmail-inject broken when qmail-inject closes the pipe.
2460 2453 2453 ? 00:00:00 supervise
19523 2453 2453 ? 00:00:00 qmail-send
19525 2453 2453 ? 00:00:00 qmail-lspawn
21047 2453 2453 ? 00:00:00 qmail-local
21048 2453 2453 ? 00:00:00 vdelivermail
21049 2453 2453 ? 00:00:00 qmail-inject <defunct>
this causes a sigpipe error in vdelivermail, and gets feed back into
qmail-inject as a signal 13 ( sigpipe ). The causes qmail-inject to
think that the child ( vdelivermail ) crashed.
the bad email file has this: > Received: (qmail 3973 invoked by uid
508); 30 Jan 2013 21:11:26 -0000
Received: from c-68-41-19-219.hsd1.mi.comcast.net (68.41.19.219)
by mail.gatworks.com with SMTP; 30 Jan 2013 21:11:26 -0000
Received: from apache by anbid.com.br with local (Exim 4.67)
id 87QGEX-U87LUI-QI
Subject: Case #52932381
X-PHP-Script: anbid.com.br/sendmail.php for 68.41.19.219
X-Mailer: PHP
X-Priority: 1
MIME-Version: 1.0
Content-Type: multipart/alternative;
Apparently qmail-inject stops processing the input file ( via pipe from
vdelivermail:435 if ( write(write_fd, msgbuf, file_count) == -1 )) at
the bogus line that cant be parsed any further.
Once the pipe is closed by qmail-inject, any further writes will get a
sig-pipe error, and the process ( vdelivermail ) will die, as the signal
processing is set to default ( ie terminate process ).
Somehow, qmail-inject has to process the rest of the file, even if there
are parse errors, or vdelivermail has to recognize that a pipe can
suddenly close up.
!DSPAM:510ad56a34147370429629!

Loading...