I had a problem where my mail server stopped being able to service connections
because I had as many hanging spamdyke processes as was allowed in my tcpserver
config (-c option).  Unfortunately, the processes were cleaned up by another
admin before I could look at them.

And then, I just ran into the same situation again, where a spamdyke process
is hanging, and has been hanging for 2.5 hours so far.  Here is output from
log-level debug in spamdyke (XXXXX substituted for domain name):

Oct  5 20:27:16 saffron spamdyke[3978]: 
DEBUG(filter_rdns_missing()@filter.c:841): checking for missing rDNS; rdns: 
(unknown)
Oct  5 20:27:16 saffron spamdyke[3978]: FILTER_RDNS_MISSING ip: 77.30.98.26
Oct  5 20:27:16 saffron spamdyke[3978]: 
DEBUG(filter_ip_whitelist()@filter.c:1120): searching IP whitelist file(s); ip: 
77.30.98.26
Oct  5 20:27:17 saffron spamdyke[3978]: 
DEBUG(filter_recipient_relay()@filter.c:2176): checking relaying; relay-level: 
3 recipient: [EMAIL PROTECTED] ip: 77.30.98.26 rdns: (unknown) local_recipient: 
true relaying_allowed: false
Oct  5 20:27:17 saffron spamdyke[3978]: DENIED_RDNS_MISSING from: [EMAIL 
PROTECTED] to: [EMAIL PROTECTED] origin_ip: 77.30.98.26 origin_rdns: (unknown) 
auth: (unknown)

I would have expected the connection to be dropped at this point, and spamdyke
to exit.  Looking at lsof -i output for this process, I get:

spamdyke   3978   qmaild    0u  IPv4 732880026       TCP 
saffron.alchar.org:smtp->77.30.98.26:56004 (ESTABLISHED)
spamdyke   3978   qmaild    1u  IPv4 732880026       TCP 
saffron.alchar.org:smtp->77.30.98.26:56004 (ESTABLISHED)
spamdyke   3978   qmaild    3u  IPv4 732880028       UDP *:41956 

So, the connection is still alive.  Netstat -an confirms this:

tcp        0      0 192.168.0.1:25          77.30.98.26:56004       ESTABLISHED

Looking at strace output, spamdyke is stuck in a select loop, waiting for
something:

Process 3978 attached - interrupt to quit
select(1, [0], NULL, NULL, {1, 580000}) = 0 (Timeout)
time(NULL)                              = 1223261329
select(1, [0], NULL, NULL, {2, 0})      = 0 (Timeout)
time(NULL)                              = 1223261331
select(1, [0], NULL, NULL, {2, 0})      = 0 (Timeout)
time(NULL)                              = 1223261333
select(1, [0], NULL, NULL, {2, 0} <unfinished ...>
Process 3978 detached

Looking at the process using gdb didn't show anything interesting, because the
backtrace is trash (possibly in part due to me stripping the spamdyke
executable).  It simply lists the top frame as:

#0  0xb7ec39f8 in select () from /lib/tls/libc.so.6

and the rest if garbage.  Smells like possible memory corruption.

Anyone seen something like this?  This is with spamdyke 4.0.4.

        Kris

-- 
Never underestimate a Mage with:
 - the Intelligence to cast Magic Missile,
 - the Constitution to survive the first hit, and
 - the Dexterity to run fast enough to avoid being hit a second time.
_______________________________________________
spamdyke-users mailing list
[email protected]
http://www.spamdyke.org/mailman/listinfo/spamdyke-users

Reply via email to