Hi,

running:

Postfix 2.9.5

Output of uname -a:
SunOS hostname 5.10 Generic_147440-27 sun4v sparc sun4v

Running multiple instances in a multi-instance setup: the instance that is used and for which an SMTP client has problems is named postfix-app.

Output of postconf -n :

# /opt/postfix/sbin/postmulti -i postfix-app -x postconf -n
2bounce_notice_recipient = suppd...@example.nl
alias_maps = dbm:/opt/postfix-app/etc/aliases
append_dot_mydomain = no
authorized_submit_users =
bounce_notice_recipient = suppd...@example.nl
bounce_queue_lifetime = 3d
command_directory = /opt/postfix/sbin
config_directory = /opt/postfix-app/etc
daemon_directory = /opt/postfix/libexec
data_directory = /opt/postfix-app/lib
debug_peer_level = 2
debugger_command = PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin ddd $daemon_directory/$process_name $process_id & sleep 5
default_transport = smtp
disable_vrfy_command = yes
error_notice_recipient = suppd...@example.nl
html_directory = no
inet_protocols = ipv4
mail_owner = postfix
mailq_path = /opt/postfix/bin/mailq
manpage_directory = /usr/local/man
maximal_queue_lifetime = 4d
multi_instance_enable = yes
multi_instance_group = mta
multi_instance_name = postfix-app
mydestination = $myhostname
mydomain = app.example.nl
myhostname = mta12.app.example.nl
mynetworks = cidr:/opt/postfix-app/etc/mynetworks
myorigin = $myhostname
newaliases_path = /opt/postfix/bin/newaliases
notify_classes = resource, software, bounce
queue_directory = /opt/postfix-app/spool
readme_directory = /opt/postfix/readme
sample_directory = /opt/postfix/etc
sendmail_path = /opt/postfix/sbin/sendmail
setgid_group = postdrop
smtpd_client_restrictions = check_client_access dbm:/opt/postfix-app/etc/access
smtpd_delay_reject = no
smtpd_helo_required = yes
smtpd_recipient_restrictions = permit_mynetworks,reject
syslog_facility = mail
syslog_name = postfix-app
transport_maps = dbm:/opt/postfix-app/etc/transport

In general, Postfix is running fine and this Postfix instance is also running fine. However, there is one SMTP client (of which we are not in control), that sends messages with long lines to this server running Postfix. There is a problem with the communication between this client and the server: whenever the clients sends a message which includes one long line (377 characters, excluding the CRLF), the client seems to 'hang' after character # 256 of this long line is transmitted. Then, after some time the connection times out.

The part of the SMTP DATA that is causing problems is typically something like:

...
------=_Part_5045_26475068.1360013318406
Content-Type: application/smil; name=smil.xml; charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-ID: <smil>
Content-Location: smil.xml

<smil><head><layout><root-layout width="240" height="320"/><region id="Image" left="0" top="0" width="240" height="220" fit="meet"/><region id="Text" left="0" top="220" width="240" height="100" fit="meet"/></layout></head><body><par dur="5000ms"><img src="cid:_external_images_media_623478$IMAG0503.jpg" region="Image"/><text src="text_0.txt" region="Text"/></par></body></smil>
------=_Part_5045_26475068.1360013318406
...

On the client side the communication looks like:

...
...
------=_Part_5045_26475068.1360013318406
Content-Type: application/smil; name=smil.xml; charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-ID: <smil>
Content-Location: smil.xml

<smil><head><layout><root-layout width="240" height="320"/><region id="Image" left="0" top="0" width="240" height="220" fit="meet"/><region id="Text" left="0" top="220" width="240" height="100" fit="meet"/></layout></head><body><par dur="5000ms"><img src="c421 4.4.2 mta12.app.example.nl Error: timeout exceeded
Connection to hostname closed by foreign host.

And the logfile on the (Postfix) SMTP server side shows:

Feb 11 22:19:16 hostname postfix-app/smtpd[22726]: [ID 197553 mail.info] > smtp. client[10.10.16.132]: 250 2.1.5 Ok Feb 11 22:19:24 hostname postfix-app/smtpd[22726]: [ID 197553 mail.info] < smtp. client[10.10.16.132]: DATA Feb 11 22:19:24 hostname postfix-app/smtpd[22726]: [ID 197553 mail.info] > smtp. client[10.10.16.132]: 354 End data with <CR><LF>.<CR><LF> Feb 11 22:25:11 hostname postfix-app/smtpd[22726]: [ID 197553 mail.info] smtp_get: timeout Feb 11 22:25:11 hostname postfix-app/smtpd[22726]: [ID 197553 mail.info] > smtp. client[10.10.16.132]: 421 4.4.2 mta12.app.example.nl Error: timeout exceeded Feb 11 22:25:11 hostname postfix-app/smtpd[22726]: [ID 197553 mail.info] match_hostname: smtp. client ~? cidr:/opt/postfix-app/etc/mynetworks(0,lock|fold_fix) Feb 11 22:25:11 hostname postfix-app/smtpd[22726]: [ID 197553 mail.info] dict_cidr_lookup: /opt/postfix-app/etc/mynetworks: smtp. client Feb 11 22:25:11 hostname postfix-app/smtpd[22726]: [ID 197553 mail.info] match_hostaddr: 10.10.16.132 ~? cidr:/opt/postfix-app/etc/mynetworks(0,lock|fold_fix) Feb 11 22:25:11 hostname postfix-app/smtpd[22726]: [ID 197553 mail.info] dict_cidr_lookup: /opt/postfix-app/etc/mynetworks: 10.10.16.132 Feb 11 22:25:11 hostname postfix-app/smtpd[22726]: [ID 197553 mail.info] timeout after DATA (1881 bytes) from smtp. client[10.10.16.132] Feb 11 22:25:11 hostname postfix-app/smtpd[22726]: [ID 197553 mail.info] disconnect from smtp. client[10.10.16.132] Feb 11 22:25:11 hostname postfix-app/smtpd[22726]: [ID 197553 mail.info] master_notify: status 1 Feb 11 22:25:11 hostname postfix-app/smtpd[22726]: [ID 197553 mail.info] connection closed Feb 11 22:25:11 hostname postfix-app/cleanup[22729]: [ID 197553 mail.info] 5DB473E9D8: message-id=<31707045.1360013318423.JavaMail@somehost> Feb 11 22:25:11 hostname postfix-app/smtpd[22726]: [ID 197553 mail.info] proxymap stream disconnect Feb 11 22:25:11 hostname postfix-app/smtpd[22726]: [ID 197553 mail.info] rewrite stream disconnect Feb 11 22:26:51 hostname postfix-app/smtpd[22726]: [ID 197553 mail.info] idle timeout -- exiting

As far as I know there is no limitation in Postfix where Postfix would not support lines longer than 256 characters during SMTP server operation. I assume it will support lines as long as 1,000 positions, including CRLF (see RFC5321). Are there any known limitations of this kind for the combination of Postfix on Solaris 10 (Sparc), which could cause this problem?

If I telnet to a Redhat Linux system (running Postfix 2.8.0) on port 25 and I submit the same data with the same long line during SMTP DATA, I cannot reproduce this problem. However, if I do a telnet to a neighbor Solaris Sparc system (running Postfix 2.8.0) on port 25, I can reproduce this problem. So, is the problem Solaris-specific? Is it network-related?

Any ideas what to check next c.q. how to debug this problem further?

/rolf

Reply via email to