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)

Reply via email to