Re: opendkim get more and more threads under Solaris 10

From: John Wood <john+opendkim_at_charpa.org>
Date: Sat, 9 Oct 2010 11:35:13 +0900

Christian,

> If I kill sendmail process milter have a decreasing number of threads
> but opendkim don't.
>
> opendkim/76 <<<<
> clamav-milter/3
> j-chkmail/9
> milter-greylist/5

To help give Murray some info on this, can you send the following?

1) ldd output from the opendkim milter binary
2) Start it up (clean) and then do:

cd /wherever/your/source/is
gdb opendkim/.libs/opendkim PID

The PID should be the first child process. For example:

# ps auxww | grep opendkim
mailnull 31790 0.0 0.1 5304 268 ?? Is Sun10PM 0:00.00
/usr/local/sbin/opendkim -b sv -c simple/simple -W -l -p
unix:/var/run/milteropendkim/milter -u mailnull -P
/var/run/milteropendkim/pid -x /usr/local/etc/mail/opendkim.conf

mailnull 31791 0.0 0.5 19492 2640 ?? S Sun10PM 0:05.78
/usr/local/sbin/opendkim -b sv -c simple/simple -W -l -p
unix:/var/run/milteropendkim/milter -u mailnull -P
/var/run/milteropendkim/pid -x /usr/local/etc/mail/opendkim.conf

You want 31791, not 31790.

Once attached you should get a gdb prompt after some info:

<snip>
Loaded symbols for /lib/libthr.so.3
Reading symbols from /lib/libc.so.7...done.
Loaded symbols for /lib/libc.so.7
Reading symbols from /usr/lib/libz.so...done.
Loaded symbols for /usr/lib/libz.so
Reading symbols from /libexec/ld-elf.so.1...done.
Loaded symbols for /libexec/ld-elf.so.1
[Switching to Thread 284529c0 (LWP 100123)]
0x2829d227 in __error () from /lib/libthr.so.3
(gdb)

At the prompt type: info threads
You should get something like:

(gdb) info threads
  7 Thread 28401140 (LWP 100149) 0x28336b1f in poll () from
/lib/libc.so.7
  6 Thread 28453140 (LWP 100048) 0x28390523 in select () from
/lib/libc.so.7
  5 Thread 28452ec0 (LWP 100057) 0x282e96eb in sigwait () from
/lib/libc.so.7
  4 Thread 28452d80 (LWP 100058) 0x282e96eb in sigwait () from
/lib/libc.so.7
  3 Thread 28452c40 (LWP 100066) 0x28336b1f in poll () from
/lib/libc.so.7
  2 Thread 28452b00 (LWP 100067) 0x2829d227 in __error ()
   from /lib/libthr.so.3
* 1 Thread 284529c0 (LWP 100123) 0x2829d227 in __error ()
   from /lib/libthr.so.3

Then quit. Do this again after it has spawned a ton of threads. Since it
may be hard to get all the output in the later part, using the script
program to capture it may be useful.

John
Received on Sat Oct 09 2010 - 02:36:00 PST

This archive was generated by hypermail 2.2.0+W3C-0.50 : Sat Oct 09 2010 - 13:50:01 PST