Yahoo Groups archive

Milter-greylist

Index last updated: 2026-04-28 23:32 UTC

Message

Re: [milter-greylist] Milter-greylist instability

2005-08-04 by Will Aoki

On Mon, Aug 01, 2005 at 10:26:17PM +0200, manu@... wrote:
> Will Aoki <waoki@...> wrote:
> 
> > I don't yet have this data for a milter-greylist compiled with debugging
> > symbols, but attaching GDB to a hung milter-greylist process and getting
> > a backtrace showed this call stack:
> > 
> >  #0  0x0fe0f4d8 in sigset () from /lib/libc.so.6
> >  #1  0x0ff38c90 in sigwait () from /lib/libpthread.so.0
> >  #2  0x10010288 in mi_signal_thread ()
> >  #3  0x0ff35428 in pthread_start_thread () from /lib/libpthread.so.0
> >  #4  0x0feb5e68 in clone () from /lib/libc.so.6
> 
> That's probably not the thread that caused the crash. Try bt on all the
> threads.

All the other threads seem to have vanished mysteriously.

$ ps auxw | grep milter-grey | grep -v grep
milterg  24832  0.0  0.3 15600 2280 ?        S    Aug01   0:00 /usr/local/bin/milter-greylist -P /var/run/greylist.pid -u miltergreylist -p /var/run/milter-greylist/greylist.sock
$ sudo gdb -p 24832
GNU gdb 2002-04-01-cvs
Copyright 2002 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 "powerpc-linux".
Attaching to process 24832
Reading symbols from /usr/local/stow/milter-greylist/bin/milter-greylist...done.
Reading symbols from /usr/lib/libspf-1.0.so.0...done.
Loaded symbols for /usr/lib/libspf-1.0.so.0
Reading symbols from /lib/libresolv.so.2...done.
Loaded symbols for /lib/libresolv.so.2
Reading symbols from /lib/libnsl.so.1...done.
Loaded symbols for /lib/libnsl.so.1
Reading symbols from /lib/libpthread.so.0...done.
[New Thread 1024 (LWP 24828)]
Error while reading shared library symbols:
Can't attach LWP 24828: No such process
Reading symbols from /lib/libc.so.6...done.
Loaded symbols for /lib/libc.so.6
Reading symbols from /lib/ld.so.1...done.
Loaded symbols for /lib/ld.so.1
Reading symbols from /lib/libnss_compat.so.2...done.
Loaded symbols for /lib/libnss_compat.so.2
Reading symbols from /lib/libnss_ldap.so.2...done.
Loaded symbols for /lib/libnss_ldap.so.2
Reading symbols from /usr/lib/libldap.so.2...done.
Loaded symbols for /usr/lib/libldap.so.2
Reading symbols from /usr/lib/liblber.so.2...done.
Loaded symbols for /usr/lib/liblber.so.2
Reading symbols from /lib/libdl.so.2...done.
Loaded symbols for /lib/libdl.so.2
Reading symbols from /lib/libcrypt.so.1...done.
Loaded symbols for /lib/libcrypt.so.1
Reading symbols from /usr/lib/libsasl.so.7...done.
Loaded symbols for /usr/lib/libsasl.so.7
Reading symbols from /usr/lib/libkrb4.so.2...done.
Loaded symbols for /usr/lib/libkrb4.so.2
Reading symbols from /usr/lib/libdes425.so.3...done.
Loaded symbols for /usr/lib/libdes425.so.3
Reading symbols from /usr/lib/libkrb5.so.3...done.
Loaded symbols for /usr/lib/libkrb5.so.3
Reading symbols from /usr/lib/libk5crypto.so.3...done.
Loaded symbols for /usr/lib/libk5crypto.so.3
Reading symbols from /lib/libcom_err.so.2...done.
Loaded symbols for /lib/libcom_err.so.2
Reading symbols from /usr/lib/libssl.so.0.9.6...done.
Loaded symbols for /usr/lib/libssl.so.0.9.6
Reading symbols from /usr/lib/libcrypto.so.0.9.6...done.
Loaded symbols for /usr/lib/libcrypto.so.0.9.6
Reading symbols from /lib/libdb2.so.2...done.
Loaded symbols for /lib/libdb2.so.2
Reading symbols from /lib/libpam.so.0...done.
Loaded symbols for /lib/libpam.so.0
Reading symbols from /lib/libnss_files.so.2...done.
Loaded symbols for /lib/libnss_files.so.2
Reading symbols from /usr/lib/sasl/libgssapiv2.so...done.
Loaded symbols for /usr/lib/sasl/libgssapiv2.so
Reading symbols from /usr/lib/libgssapi_krb5.so.2...done.
Loaded symbols for /usr/lib/libgssapi_krb5.so.2
Reading symbols from /usr/lib/sasl/libcrammd5.so...done.
Loaded symbols for /usr/lib/sasl/libcrammd5.so
Reading symbols from /usr/lib/sasl/libanonymous.so...done.
Loaded symbols for /usr/lib/sasl/libanonymous.so
Reading symbols from /usr/lib/sasl/libplain.so...done.
Loaded symbols for /usr/lib/sasl/libplain.so
Reading symbols from /usr/lib/sasl/liblogin.so...done.
Loaded symbols for /usr/lib/sasl/liblogin.so
Reading symbols from /lib/libnss_dns.so.2...done.
Loaded symbols for /lib/libnss_dns.so.2
0x0fe0f4d8 in sigset () from /lib/libc.so.6
(gdb) info thread
[New Thread 2049 (LWP 24829)]
Can't attach LWP 24829: No such process
(gdb) bt
#0  0x0fe0f4d8 in sigset () from /lib/libc.so.6
#1  0x0ff38c90 in sigwait () from /lib/libpthread.so.0
#2  0x10015204 in mi_signal_thread ()
#3  0x0ff35428 in pthread_start_thread () from /lib/libpthread.so.0
#4  0x0feb5e68 in clone () from /lib/libc.so.6
(gdb) quit
A debugging session is active.
Do you still want to close the debugger?(y or n) y
Can't detach LWP 24828: No such process
(gdb)

> > On a somewhat related note, has anyone else noticed that the supplied
> > rc-debian.sh doesn't work to stop the milter? It usually won't die
> > unless I kill all five of its processes.
> 
> Can you contribute a fix?

So far as I can tell, in order to kill milter-greylist, I need to signal
all its processes, not just the one whose pid is recorded in the
pidfile. I'll need to tinker with some other systems to see if that's
what the other scripts do - if so, I can just modify the Debian init
script as a quick solution; otherwise, I'll have to dig into the
milter's code.

-- 
William Aoki     KD7YAF    waoki@...    5-1924

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.