Re: Why won't slapd shutdown (kill -0)?

From: Doug White <dwhite_at_gumbysoft.com>
Date: Fri, 19 Nov 2004 18:55:54 -0800 (PST)
On Wed, 17 Nov 2004, Sean McNeil wrote:

> > > It appears that all the threads are destroyed yet it is still in the
> > > thread processing loop.  The process is no longer active at all.  I just
> > > had a similar problem happen with vlc where I closed it yet it is
> > > hanging in the same place as slapd with all the threads gone.
> >
> > Interesting... what scheduler are you using?
>
> 4BSD with PREEMPTION on.  -CURRENT as of yesterday.  This has been an
> issue for quite some time now, however.

Fairly standard defaults then ...

> > > Here is the one from vlc:
> > >
> > > (gdb) bt full
> > > #0  _thr_sched_switch_unlocked (curthread=0x955000) at pthread_md.h:226
> >
> > I can't find a reference to this in that file.  Can you run ldd against
> > your vlc binary? I('m curious what thread library it thinks its running.
>
> /usr/X11R6/bin/vlc:
>         libpthread.so.1 => /usr/lib/libpthread.so.1 (0x801c7c000)

OK so not using libthr...

> I just ran it again and had a thread sitting at
> _thr_sched_switch_unlocked.  Here is the trace for that thread:
>
> (gdb) bt
> #0  _thr_sched_switch_unlocked (curthread=0x1b38c00) at pthread_md.h:226
> #1  0x0000000801c8da8f in _nanosleep (time_to_sleep=0x7fffffe8df50,
>     time_remaining=0x0)
> at /usr/src/lib/libpthread/thread/thr_nanosleep.c:71
> #2  0x0000000801c8dbd3 in __nanosleep (time_to_sleep=0x7fffffe8df50,
>     time_remaining=0x0)
> at /usr/src/lib/libpthread/thread/thr_nanosleep.c:125
> #3  0x000000000042b1f9 in msleep (delay=34369437808) at
> src/misc/mtime.c:309
> #4  0x0000000806a51e02 in OSSThread (p_aout=0x1b38800) at oss.c:624
> #5  0x0000000801c87139 in thread_start (curthread=0x800940070,
>     start_routine=0x94d068, arg=0x800940070)
>     at /usr/src/lib/libpthread/thread/thr_create.c:343
> #6  0x0000000801df1ff4 in makectx_wrapper (ucp=0x800940060, func=0x6636,
>     args=0x1) at /usr/src/lib/libc/amd64/gen/makecontext.c:100

Ah ha. I think we're on to something here. You didn't make it clear before
this is an amd64 machine, which is why I couldn't find the reference on
i386. :)

The argument to msleep looks like a 64-bit extension bug.  The thread is
sleeping properly, just for a few thousand years or something :)

So the problems with slapd and vlc may just be 64-but uncleanliness.
Although slapd is wierd since it works fine on sparc64 under solaris 8 (we
run it at work) so I doubt that its something that silly.

-- 
Doug White                    |  FreeBSD: The Power to Serve
dwhite_at_gumbysoft.com          |  www.FreeBSD.org
Received on Sat Nov 20 2004 - 01:55:54 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:22 UTC