"Dave Sill" <[EMAIL PROTECTED]> writes:
> Three of the four are running Red Hat 6.2. That could simply be
> because 75% of qmail systems are running RH 6.2, though. :-)
I see this problem occasionally, with mail being sent from a Solaris
2.6 system. It frequently happens for mail to one particular ISP
(freeserve.co.uk, aka Planet Online/Energis Squared), who run Exim on
(I believe) Linux systems.
I suspect they're using something to load balance the TCP sessions, as
repeatedly connecting to the two A records for their one MX record
shows up several different system names in the 220 banners. This could
be the cause of the TCP session never closing down, but it's clear
that because we're in a read() we never try and send anything that
might illicit a TCP reset.
> No word on which qmail patches, if any, were installed on these
Mine is stock qmail 1.03.
I kept meaning to get around to posting the evidence I collected here,
so here (finally) it is:
Here's my example stuck qmail-remote, with a backtrace from gdb and
also lsof output. Unfortunately I didn't keep truss output for this
one. (I should point out that this output was collected on Jan 11th...)
qmailr 4322 211 0 Nov 03 ? 0:00 qmail-remote oglaroon.freeserve.co.uk
mark-thomas-owner-mt=oglaroon.freeserve.c
# gdb /var/qmail/bin/qmail-remote 4322
GNU gdb 4.18
Copyright 1998 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.6"...
(no debugging symbols found)...
Attaching to program `/var/qmail/bin/qmail-remote', process 4322
Reading symbols from /usr/lib/libresolv.so.2...(no debugging symbols found)...
done.
Reading symbols from /usr/lib/libsocket.so.1...(no debugging symbols found)...
done.
Reading symbols from /usr/lib/libnsl.so.1...(no debugging symbols found)...
done.
Reading symbols from /usr/lib/libc.so.1...(no debugging symbols found)...done.
Reading symbols from /usr/lib/libdl.so.1...(no debugging symbols found)...done.
Reading symbols from /usr/lib/libmp.so.2...(no debugging symbols found)...done.
Symbols already loaded for /usr/lib/libresolv.so.2
Symbols already loaded for /usr/lib/libsocket.so.1
Symbols already loaded for /usr/lib/libnsl.so.1
Symbols already loaded for /usr/lib/libc.so.1
Symbols already loaded for /usr/lib/libdl.so.1
Symbols already loaded for /usr/lib/libmp.so.2
0xef6386b8 in _read () from /usr/lib/libc.so.1
(gdb) bt
#0 0xef6386b8 in _read () from /usr/lib/libc.so.1
#1 0x13c7c in timeoutread ()
#2 0x12524 in saferead ()
#3 0x160e0 in oneread ()
#4 0x161a0 in substdio_feed ()
#5 0x16290 in substdio_get ()
#6 0x12594 in get ()
#7 0x1261c in smtpcode ()
#8 0x12938 in smtp ()
#9 0x133b0 in main ()
(gdb)
# lsof -p 4322
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
qmail-rem 4322 qmailr cwd VDIR 85,14 512 328536 /var/qmail
qmail-rem 4322 qmailr txt VREG 85,14 63804 361948
/var/qmail/bin/qmail-remote
qmail-rem 4322 qmailr txt VREG 85,0 19304 30060 /usr/lib/libmp.so.2
qmail-rem 4322 qmailr txt VREG 85,0 1014088 30137 /usr/lib/libc.so.1
qmail-rem 4322 qmailr txt VREG 85,0 721916 32170 /usr/lib/libnsl.so.1
qmail-rem 4322 qmailr txt VREG 85,0 53656 30072 /usr/lib/libsocket.so.1
qmail-rem 4322 qmailr txt VREG 85,0 92952 30061 /usr/lib/libresolv.so.2
qmail-rem 4322 qmailr txt VREG 85,0 4280 30124 /usr/lib/libdl.so.1
qmail-rem 4322 qmailr txt VREG 85,0 166196 30030 /usr/lib/ld.so.1
qmail-rem 4322 qmailr 0r VREG 85,14 5021 150345
/var/qmail/queue/mess/17/150345
qmail-rem 4322 qmailr 1u FIFO 0xf7e0e144 0t0 1091718 PIPE->0xf7e0e0c0
qmail-rem 4322 qmailr 2u FIFO 0xf7e0e144 0t0 1091718 PIPE->0xf7e0e0c0
qmail-rem 4322 qmailr 3u inet 0xf77ec040 0t0 TCP
agent57.gbnet.net:59889->slb-mail-inG1.svr.pol.co.uk:smtp (ESTABLISHED)