[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: bug in transports/smtp
Hi!
On Thu, Feb 05, 2004 at 18:14 +0200, Andrey Blochintsev wrote:
> Zmailer system can lost messages then
> * transaction to best MX failed with diagnistic "ERROR: SMTP socket write timeout; leftover=...."
> * connection to next MX was successfull
>
And now fix:
--- zmailer/transports/smtp/appendlet.c.prev Thu Feb 5 21:51:25 2004
+++ zmailer/transports/smtp/appendlet.c Thu Feb 5 21:52:12 2004
@@ -329,7 +329,7 @@
{
if (SS->chunkbuf == NULL) {
if (sferror(fp)) return EOF;
- if (sfputc(fp, ch) < 0) return EOF;
+ if (sfputc(fp, ch) < 0 || sferror(fp)) return EOF;
return 0;
}
if (SS->chunksize >= CHUNK_MAX_SIZE) {
Zmailer logic was broken by sfputc() macro/function
which NEVER returns EOF, as expected from manual... :(
sfio/src/lib/sfio/sfio.h:
...
#define __sf_putc(f,c) (_SF_(f)->next >= _SF_(f)->endw ? \
_sfflsbuf(_SF_(f),(int)((unsigned char)(c))) : \
(int)(*_SF_(f)->next++ = (unsigned char)(c)) )
...
sfio/src/lib/sfio/sfflsbuf.c:
...
int _sfflsbuf(reg Sfio_t* f, reg int c)
...
{
...
int inpc = c;
...
return inpc < 0 ? (f->endb-f->next) : inpc;
}
>
> Latest zmailer version was installed to "horse"
>
> Submitting message:
> Feb 5 17:17:20 horse router[2886]: S1219339AbUBEPRU: from=<bag@i.kiev.ua>, rrelay=STDIN (bag@horse.iptelecom.net.ua), size=423455, nrcpts=1, msgid=<S1219339AbUBEPRU/20040205151720Z+5@horse.iptelecom.net.ua>, delay=00:00:00, xdelay=00:00:00
>
> Now starting tranfer:
>
> 030965E80-0000-0000# Start time: Thu, 5 Feb 2004 17:17:20 +0200
> 030965E80-0001-0000# jobspec: R/1219339 i.kiev.ua
> 030965E80-0002-0000# 1219339: <S1219339AbUBEPRU/20040205151720Z+5@horse.iptelecom.net.ua>
> 030965E80-0003-0000# (Connecting to `mail.iptelecom.net.ua' [212.9.224.15|25] Thu Feb 5 17:17:20 2004)
> 030965E80-0004-0000r 220 mail.i.kiev.ua ESMTP MTA ready; Thu, 5 Feb 2004 17:26:26 +0200 (EET)
> 030965E80-0005-0000# ('220' expectance did yield 0 )
> 030965E80-0006-0000w EHLO horse.iptelecom.net.ua
> 030965E80-0007-0000r 250-mail.i.kiev.ua Hello horse.iptelecom.net.ua [212.9.224.8], pleased to meet you
> 030965E80-0008-0000r 250-ENHANCEDSTATUSCODES
> 030965E80-0009-0000r 250-PIPELINING
> 030965E80-0010-0000r 250-8BITMIME
> 030965E80-0011-0000r 250-SIZE 5000000
> 030965E80-0012-0000r 250-DSN
> 030965E80-0013-0000r 250-ETRN
> 030965E80-0014-0000r 250-DELIVERBY
> 030965E80-0015-0000r 250 HELP
> 030965E80-0016-0000# smtpopen: status = 0
> 030965E80-0017-0000w MAIL From:<bag@i.kiev.ua> BODY=8BITMIME SIZE=436283
> 030965E80-0018-0000w RCPT To:<bag@i.kiev.ua> NOTIFY=FAILURE ORCPT=rfc822;bag@i.kiev.ua
> 030965E80-0019-0000w DATA
> 030965E80-0020-0001r 250 2.1.0 <bag@i.kiev.ua>... Sender ok
> 030965E80-0021-0001r 250 2.1.5 <bag@i.kiev.ua>... Recipient ok
> 030965E80-0022-0001r 354 Enter mail, end with "." on a line by itself
>
>
> *** Link horse.iptelecom.net.ua -> mail.iptelecom.net.ua limited to 100bytes/sec
> *** In test installation all timeout values (timeout_data, timeout_dot, timeout_tcpw ...) changed to 30 sec
> *** .... some time passed ... 1-5 Kbytes transmitted
> *** now simulating network failure:
> *** "ipfw add drop tcp from 212.9.224.8 to 212.9.224.15 25"
>
> 030965E80-0023-0040w .
> 030965E80-0024-0070# Timeout (30 sec) while waiting responses from remote (errno=35)
>
> *** Timeout detected and: "Feb 5 17:18:00 horse smtp[3096]: S1219339AbUBEPRU: ERROR: SMTP socket write timeout; leftover=26440; IP=[212.9.224.15|25|212.9.224.8|2109] mx=1/2" logged to maillog
>
> 030965E80-0025-0070# smtp_sync() did yield code 75/TEMPFAIL
> 030965E80-0026-0070# (Connecting to `mail.iptelecom.net.ua' [212.9.224.15|25] Thu Feb 5 17:18:30 2004)
> 030965E80-0027-0145# ; 500 (connect to mail.iptelecom.net.ua [212.9.224.15|25|212.9.224.8|2110]: Operation timed out)
> 030965E80-0028-0145# (vcsetup() did yield 100 )
> 030965E80-0029-0145# (Connecting to `relay.iptelecom.net.ua' [212.9.224.1|25] Thu Feb 5 17:19:45 2004)
> 030965E80-0030-0146r 220 ns1.iptelecom.net.ua ESMTP MTA ready; Thu, 5 Feb 2004 17:28:52 +0200 (EET)
> 030965E80-0031-0146# ('220' expectance did yield 0 )
> 030965E80-0032-0146w EHLO horse.iptelecom.net.ua
> 030965E80-0033-0146r 250-ns1.iptelecom.net.ua Hello horse.iptelecom.net.ua [212.9.224.8], pleased to meet you
> 030965E80-0034-0146r 250-ENHANCEDSTATUSCODES
> 030965E80-0035-0146r 250-PIPELINING
> 030965E80-0036-0146r 250-8BITMIME
> 030965E80-0037-0146r 250-SIZE 5000000
> 030965E80-0038-0146r 250-DSN
> 030965E80-0039-0146r 250-ETRN
> 030965E80-0040-0146r 250-DELIVERBY
> 030965E80-0041-0146r 250 HELP
> 030965E80-0042-0146# smtpopen: status = 0
> 030965E80-0043-0146# DIAG: C='smtp' H='i.kiev.ua' U='bag@i.kiev.ua' P='65534' ID=1219339/161 L=0 -- stat='ok3' notary='bag@i.kiev.uafailedsmtp; 250 (HELP)dns; relay.iptelecom.net.ua (212.9.224.1|25|212.9.224.8|2111)smtp[3096]' WTT='dns; relay.iptelecom.net.ua' MSG='
<<- EHLO horse.iptelecom.net.ua
->> 250-ns1.iptelecom.net.ua Hello horse.iptelecom.net.ua [212.9.224.8], pleased to meet you
->> 250-ENHANCEDSTATUSCODES
->> 250-PIPELINING
->> 250-8BITMIME
->> 250-SIZE 5000000
->> 250-DSN
->> 250-ETRN
->> 250-DELIVERBY
->> 250 HELP'
>
> *** ???? mail transaction finished:
> Feb 5 17:19:46 horse smtp[3096]: S1219339AbUBEPRU: to=<bag@i.kiev.ua>, delay=00:02:26, xdelay=00:02:25, mailer=smtp, relay=relay.iptelecom.net.ua ([212.9.224.1|25|212.9.224.8|2111]), stat=ok3 ->> 250 HELP cvt=NONE
> *** message marked "sent" and deleted from queue !!!
>
> 030965E80-0044-0146# jobspec: #idle
> 030965E80-0045-0326w NOOP
> 030965E80-0046-0326r 250 2.0.0 OK
> 030965E80-0047-0412# jobspec:
> 030965E80-0048-0412w QUIT
> 030965E80-0049-0412# (closed SMTP channel - final close)
>
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe zmailer" in
> the body of a message to majordomo@nic.funet.fi
-
To unsubscribe from this list: send the line "unsubscribe zmailer" in
the body of a message to majordomo@nic.funet.fi