On Tue, Oct 12, 2010 at 11:15:17AM -0700, Murray S. Kucherawy wrote:
> > -----Original Message-----
> > From: opendkim-dev-bounce_at_lists.opendkim.org [mailto:opendkim-dev-
> > bounce_at_lists.opendkim.org] On Behalf Of Christian Pélissier
> > Sent: Tuesday, October 12, 2010 2:24 AM
> > To: opendkim-dev_at_lists.opendkim.org
> > Subject: Opendkim number of threads growing abnormaly under Solaris 10
> >
> > pstack command show that many threads stay blocked inside mlfi_eom
> > milter callback (I have the same problem with Autorestart option or
> > not).
You probably missed all the stack traces that Christian sent earlier.
Here's one for one thread:
----------------- lwp# 1108 / thread# 1108 --------------------
febc9ba7 recvfrom (16, fdb42080, 2000, 0, fdb3f8a0, fdb3f9c4)
fef5d457 send_dg (fef77aa8, fdb40010, 19, fdb42080, 2000, fdb3ffc4) + 1ed
fef5ca49 res_nsend (fef77aa8, fdb40010, 19, fdb42080, 2000) + 468
fef57470 res_send (fdb40010, 19, fdb42080, 2000, 1f597, 100) + 46
fef85398 dkim_res_query (0, f, 80be400, fdb42080, 2000, fdb4206c) + 58
fef8699e dkim_get_policy_dns_excheck (80ce9c0, 80be400, fdb4a79c, fef86d10, 0, 0) + 1eb
fef86e1e dkim_get_policy_dns (80ce9c0, 80be400, 1, fdb4abb0, 401, fdb4a79c) + 11f
fef8c491 dkim_get_policy (80ce9c0, 80be400, 1, fdb4b004, fdb4b008, fdb4b00c) + 1b5
fef8f47e dkim_policy (80ce9c0, 80cf0c4, 0, 2, 0, 0) + c4
0805cf4b mlfi_eom (80aea00) + ae1
fef14df7 st_bodyend (fdb4df70) + 97
fef139e4 mi_engine (80aea00) + 214
fef1634b mi_handle_session (80aea00) + 33
fef15a06 mi_thread_handle_wrapper (80aea00) + 19
febc73a7 _thr_setup (fea87200) + 4e
febc7690 _lwp_start (fea87200, 0, 0, fdb4dff8, febc7690, fea87200)
> > Everytime the following message is logged to syslog :
> >
> > ... sendmail[10290]: [ID 801593 mail.error] o9C98SZB010290: Milter
> > (opendkim): timeout before data read, where=eom
> >
> > Other used milter (clamav-milter, milter-greylist, j-chkmail) do not
> > have this problem.
>
> We need to see a stack trace in order to understand where it's getting stuck.
>
> Can you attack a debugger like gdb to it and ask for "thread apply
> all bt"? dbx may have an equivalent function. Unfortunately I have
> no idea what "ae1" is.
I believe it's an offset into the function code.
--
-Gary Mills- -Unix Group- -Computer and Network Services-
Received on Wed Oct 13 2010 - 15:25:11 PST