[Date Prev][Date Next]
RE: slapd lockup (ITS#210)
Here my quick (and probably naive) analysis...
> t@1 a l@15 ?() sleep on 0xef526298 in _lwp_sema_wait()=0A=
Main thread, joining with daemon thread.
> > t@2 b l@2 ?() running in __signotifywait()=0A=
LWP internal thread? catching signals
> t@3 a l@27 ?() sleep on 0xef526dd0 in _lwp_sema_wait()=0A=
Operation thread, waiting to be reaped? This thread should
be detached and hence will never be joined. It should be "reaped"
automatically by lwp.
> t@4 a l@34 slapd_daemon() running in =
Daemon thread, running
Based upon this, I suspect that LWP is not automatically "reaping"
detached threads and, as such, the server will eventually run out of
threads and fail in odd ways.
Our detach mechanism is fairly straight forward and believed to be
correct. Maybe the Solaris pthread implementation doesn't support
detached threads. Solaris experts?