Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I'm having trouble with my postfix servers in combination with delivery on Postini servers. Postfix started reporting the following errors:

postfix/smtp[18061]: fatal: watchdog timeout
postfix/qmgr[9746]: fatal: 69B063A536: timeout receiving delivery status from transport: smtp

After lots of time debugging we found out that these messages only happened to mail that is delivered to postini servers (*.psmtp.com). Using tcpdump we noticed that Postini returns a '571 Message Refused' message but it ends only with a CR \r (0d) instead of with a CRLF \r\n (0d0a). Since the linefeed is never sent by Postini, Postfix keeps waiting for the end of the message. In the end the watchdog process will kill the postfix proces and causes the error message above.

This causes the e-mail to stay in the 'active' queue so postfix will attempt another delivery. This results in a postfix instance that will keep hanging over and over again. We tried installing a newer postfix version (from 2.5.5 to 2.8.3) but that did not solve the problem. Of course there is something wrong with Postini which has been reported to Google but I'm wondering if there is a solution for postfix to handle this gracefully?

tcpdump of the Postini response:

10:31:56.889372 IP 207.126.154.12.25 > xx.xx.xx.xxx.40923: P 263:283(20) ack 13624 win 8544 <nop,nop,timestamp 1885723084 20871864>
    0x0000:  4500 0048 8faa 4000 3b06 91e1 cf7e 9a0c  E..H..@.;....~..
    0x0010:  5511 5f88 0019 9fdb 2897 59cb 02d2 3032  U._.....(.Y...02
    0x0020:  8018 2160 9d93 0000 0101 080a 7065 d9cc  ..!`........pe..
    0x0030:  013e 7ab8 3537 3120 4d65 7373 6167 6520  .>z.571.Message.
    0x0040:  5265 6675 7365 640d                      Refused.
share|improve this question
    
Are you sure that there is no firewall/proxy between the Postfix server and the Postini server? Could that chop off the linefeed? –  mailq Oct 21 '11 at 8:50
    
The tcpdump was executed on the firewall. On other smtp messages the Postini server always gives the CRLF at the end just not with this specific message. –  Mattias Oct 21 '11 at 14:35
add comment

1 Answer 1

up vote 0 down vote accepted

Sorry, there is no workaround for that. Postfix is very RFC compliant and insists on receiving a correct reply.

There are methods to rewrite the reply to something completely different, but for this the reply has to actually occur. In your case there is no reply (in the eyes of Postfix and RFC 5321) and so a timeout occurs.

Just for completeness here the excerpt of RFC 5321 section 2.3.0 :

   Lines consist of zero or more data characters terminated by the
   sequence ASCII character "CR" (hex value 0D) followed immediately by
   ASCII character "LF" (hex value 0A).  This termination sequence is
   denoted as <CRLF> in this document.  Conforming implementations MUST
   NOT recognize or generate any other character or character sequence
   as a line terminator.  Limits MAY be imposed on line lengths by
   servers (see Section 4).

   In addition, the appearance of "bare" "CR" or "LF" characters in text
   (i.e., either without the other) has a long history of causing
   problems in mail implementations and applications that use the mail
   system as a tool.  SMTP client implementations MUST NOT transmit
   these characters except when they are intended as line terminators
   and then MUST, as indicated above, transmit them only as a <CRLF>
   sequence.
share|improve this answer
    
Sendmail shows the same "symptoms". No solution. groups.google.com/group/comp.mail.sendmail/browse_thread/thread/… –  mailq Oct 21 '11 at 15:42
    
Qmail has the same problem. Patch available. Don't use it but let Google fix that. gossamer-threads.com/lists/qmail/users/… –  mailq Oct 21 '11 at 15:45
    
@Mattias If you want it to be fixed you should hire at Google. They are looking for you: google.com.au/intl/en/jobs/sydney/salestechops/enterprise/… –  mailq Oct 21 '11 at 15:54
    
Thank you so much for the explanation. I knew that it was incorrect from Postini's side but it is 'good' to know that I am not the only one who encounters this problem. Hopefully Google will fix this sometime soon. I think I'll pass for the job tho ;). –  Mattias Oct 24 '11 at 7:32
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.