Well, waiting a while made it unstoppable...
One thing that I noticed was this -sched:idle0- thread which was not there
at the start and only showed up later.
name parent tid flags ctime proc arg
-conn:oatest4::0 -driver- 4101 0 Mon, 27 Jan 2003 21:33:50 GMT
ns:connthread 6 127.0.0.1 running GET /t.adp 0.71483 0
-driver- -main- 3076 0 Mon, 27 Jan 2003 21:21:51 GMT
p:0x4002e5ac a:0x0
-main- 1024 1 Mon, 27 Jan 2003 21:21:46 GMT p:0x0
a:0x0
-sched- -main- 2051 0 Mon, 27 Jan 2003 21:21:46 GMT
p:0x4003f2ac a:0x0
-sched:idle0- -sched- 6150 0 Mon, 27 Jan 2003 21:36:50 GMT
p:0x4003f05c a:0x0
Here is some information from gdb (attached to the server after it has
hung):
(gdb) attach 30360
...
(gdb) where
#0 0x420292e5 in sigsuspend () from /lib/i686/libc.so.6
#1 0x4013f679 in __pthread_wait_for_restart_signal ()
from /lib/i686/libpthread.so.0
#2 0x401414b9 in __pthread_alt_lock () from /lib/i686/libpthread.so.0
#3 0x4013e116 in pthread_mutex_lock () from /lib/i686/libpthread.so.0
#4 0x4013c2b0 in pthread_cond_timedwait_relative ()
from /lib/i686/libpthread.so.0
#5 0x4006ea47 in Ns_CondTimedWait (cond=0x4006739c, mutex=0x40067398,
timePtr=0xbffff8b8) at pthread.c:668
#6 0x4003eb95 in NsWaitSchedShutdown (toPtr=0xbffff8b8) at sched.c:499
#7 0x40038d48 in Ns_Main (argc=4, argv=0xbffff964,
initProc=0x8048674 <ServerInit>) at nsmain.c:512
#8 0x08048668 in main (argc=4, argv=0xbffff964) at main.c:64
#9 0x42017499 in __libc_start_main () from /lib/i686/libc.so.6
(gdb) info thread
6 Thread 6150 (LWP 30952) 0x420292e5 in sigsuspend ()
from /lib/i686/libc.so.6
5 Thread 3076 (LWP 30374) 0x420e0037 in poll () from /lib/i686/libc.so.6
4 Thread 2051 (LWP 30363) 0x420292e5 in sigsuspend ()
from /lib/i686/libc.so.6
3 Thread 1026 (LWP 30362) 0x420e187e in select () from /lib/i686/libc.so.6
2 Thread 2049 (LWP 30361) 0x420e0037 in poll () from /lib/i686/libc.so.6
1 Thread 1024 (LWP 30360) 0x420292e5 in sigsuspend ()
from /lib/i686/libc.so.6
(gdb) thread apply all where
Thread 6 (Thread 6150 (LWP 30952)):
#0 0x420292e5 in sigsuspend () from /lib/i686/libc.so.6
#1 0x4013f679 in __pthread_wait_for_restart_signal ()
from /lib/i686/libpthread.so.0
#2 0x401414b9 in __pthread_alt_lock () from /lib/i686/libpthread.so.0
#3 0x4013e116 in pthread_mutex_lock () from /lib/i686/libpthread.so.0
#4 0x4013bfb1 in pthread_cond_wait () from /lib/i686/libpthread.so.0
#5 0x4006e986 in Ns_CondWait (cond=0x400673a0, mutex=0x40067398)
at pthread.c:616
#6 0x4003f0e8 in EventThread (arg=0x0) at sched.c:668
#7 0x4006cff7 in NsThreadMain (arg=0x81875f0) at thread.c:224
#8 0x4006eb02 in ThreadMain (arg=0x81875f0) at pthread.c:730
#9 0x4013cfef in pthread_start_thread () from /lib/i686/libpthread.so.0
Thread 5 (Thread 3076 (LWP 30374)):
#0 0x420e0037 in poll () from /lib/i686/libc.so.6
#1 0x4002e87f in DriverThread (ignored=0x0) at driver.c:753
#2 0x4006cff7 in NsThreadMain (arg=0x808bc20) at thread.c:224
#3 0x4006eb02 in ThreadMain (arg=0x808bc20) at pthread.c:730
#4 0x4013cfef in pthread_start_thread () from /lib/i686/libpthread.so.0
Thread 4 (Thread 2051 (LWP 30363)):
#0 0x420292e5 in sigsuspend () from /lib/i686/libc.so.6
#1 0x4013f679 in __pthread_wait_for_restart_signal ()
from /lib/i686/libpthread.so.0
#2 0x4013c85a in pthread_join () from /lib/i686/libpthread.so.0
#3 0x4006e729 in Ns_ThreadJoin (thread=0x8162e58, argPtr=0x0) at pthread.c:395
#4 0x4003f66a in SchedThread (ignored=0x0) at sched.c:850
#5 0x4006cff7 in NsThreadMain (arg=0x8051370) at thread.c:224
#6 0x4006eb02 in ThreadMain (arg=0x8051370) at pthread.c:730
#7 0x4013cfef in pthread_start_thread () from /lib/i686/libpthread.so.0
Thread 3 (Thread 1026 (LWP 30362)):
#0 0x420e187e in select () from /lib/i686/libc.so.6
#1 0x40131c38 in __DTOR_END__ ()
from /usr/local/aolserver40//lib/libtcl8.4g.so
#2 0x4013cfef in pthread_start_thread () from /lib/i686/libpthread.so.0
Thread 2 (Thread 2049 (LWP 30361)):
#0 0x420e0037 in poll () from /lib/i686/libc.so.6
#1 0x4013cc70 in __pthread_manager () from /lib/i686/libpthread.so.0
Thread 1 (Thread 1024 (LWP 30360)):
#0 0x420292e5 in sigsuspend () from /lib/i686/libc.so.6
#1 0x4013f679 in __pthread_wait_for_restart_signal ()
from /lib/i686/libpthread.so.0
#2 0x401414b9 in __pthread_alt_lock () from /lib/i686/libpthread.so.0
#3 0x4013e116 in pthread_mutex_lock () from /lib/i686/libpthread.so.0
#4 0x4013c2b0 in pthread_cond_timedwait_relative ()
from /lib/i686/libpthread.so.0
#5 0x4006ea47 in Ns_CondTimedWait (cond=0x4006739c, mutex=0x40067398,
timePtr=0xbffff8b8) at pthread.c:668
#6 0x4003eb95 in NsWaitSchedShutdown (toPtr=0xbffff8b8) at sched.c:499
#7 0x40038d48 in Ns_Main (argc=4, argv=0xbffff964,
initProc=0x8048674 <ServerInit>) at nsmain.c:512
#8 0x08048668 in main (argc=4, argv=0xbffff964) at main.c:64
#9 0x42017499 in __libc_start_main () from /lib/i686/libc.so.6
#0 0x420292e5 in sigsuspend () from /lib/i686/libc.so.6
(gdb) thread 4
[Switching to thread 4 (Thread 2051 (LWP 30363))]#0 0x420292e5 in sigsuspend
() from /lib/i686/libc.so.6
(gdb) up
#1 0x4013f679 in __pthread_wait_for_restart_signal ()
from /lib/i686/libpthread.so.0
(gdb)
#2 0x4013c85a in pthread_join () from /lib/i686/libpthread.so.0
(gdb)
#3 0x4006e729 in Ns_ThreadJoin (thread=0x8162e58, argPtr=0x0) at pthread.c:395
(gdb)
#4 0x4003f66a in SchedThread (ignored=0x0) at sched.c:850
(gdb) p nThreads
$1 = 0
(gdb) p eventThreads[0]
$2 = 0x1806
(gdb) do
#3 0x4006e729 in Ns_ThreadJoin (thread=0x8162e58, argPtr=0x0) at pthread.c:395
(gdb) p thr
$5 = 6150
(gdb) up
#4 0x4003f66a in SchedThread (ignored=0x0) at sched.c:850
(gdb) list
845 Ns_Log(Notice, "sched: shutdown started");
846 if (nThreads > 0) {
847 Ns_Log(Notice, "sched: waiting for event threads...");
848 Ns_CondBroadcast(&eventcond);
849 while (--nThreads >= 0) {
850 Ns_ThreadJoin(&eventThreads[nThreads], NULL);
851 }
852 }
853 Ns_MutexUnlock(&lock);
854 while (nqueue > 0) {
(gdb)