I'm having trouble with my postfix servers in combination with delivery on Postini servers. Postfix started reporting the following errors:
postfix/smtp: fatal: watchdog timeout postfix/qmgr: 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 22.214.171.124.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.