From: Gustaf N. <ne...@wu...> - 2015-03-26 11:18:51
|
Hi David, We have this issue of shutdown in test-cases and during server shutdown since several years. It is annoying, but mostly harmless. The last time i looked into the problem, i got the impression that it depends on a not fully predictable shutdown order, which is not completely in our hands due to tcl interactions. i would be alert, if you see this problem in other situations. For our production system, i saw the last crash months ago (happend due to a Tcl-bug with doubling the size of a dstring over 2gb). Another "crash" on a different system turned out to be due to linux's oom killer. -g Am 26.03.15 um 11:42 schrieb David Osborne: > Hi again, > > We've been getting an intermittent server crash on our live system for > a while now which hits us every weeks or so. > > The nsd daemon crashes with the above error and daemontools restarts it. > Having done a search I believe this is seen sometimes on server > shutdown where it's pretty harmless... but in these cases the server > is not (expectedly) shutting down. > > We've now managed to get a core dump of the most recent occurrence. > Is anyone able to give us any pointers on how we can try to narrow > this down? > > It's Naviserver 4.99.7 (but was also happening in 4.99.6 - and I think > 4.99.5) on Debian 7.7 (Wheezy) and Tcl 8.5.11-2 > > > [-conn:tlc_erp:20-] Fatal: nsthreads: pthread_join failed in > Ns_ThreadJoin: Invalid argument > > (gdb) bt > #0 0x00007f5858d39165 in raise () from /lib/x86_64-linux-gnu/libc.so.6 > #1 0x00007f5858d3c3e0 in abort () from /lib/x86_64-linux-gnu/libc.so.6 > #2 0x00007f5859ee9639 in Panic (fmt=<optimized out>) at log.c:707 > #3 0x00007f58595d6e12 in Tcl_PanicVA () from /usr/lib/libtcl8.5.so.0 > #4 0x00007f58595d6f8c in Tcl_Panic () from /usr/lib/libtcl8.5.so.0 > #5 0x00007f585984e6f0 in NsThreadFatal (func=<optimized out>, > osfunc=<optimized out>, err=<optimized out>) at error.c:62 > #6 0x00007f5859850561 in Ns_ThreadJoin (thread=<optimized out>, > argPtr=<optimized out>) at pthread.c:459 > #7 0x00007f5859ef0ffc in JoinConnThread (threadPtr=0x7f585181dda0) at > queue.c:1688 > #8 NsConnThread (arg=0x2db7d70) at queue.c:1368 > #9 0x00007f585984f8ac in NsThreadMain (arg=<optimized out>) at > thread.c:227 > #10 0x00007f5859850899 in ThreadMain (arg=<optimized out>) at > pthread.c:809 > #11 0x00007f58588edb50 in start_thread () from > /lib/x86_64-linux-gnu/libpthread.so.0 > #12 0x00007f5858de370d in clone () from /lib/x86_64-linux-gnu/libc.so.6 > #13 0x0000000000000000 in ?? () > > (gdb) frame 8 > #8 NsConnThread (arg=0x2db7d70) at queue.c:1368 > 1368 JoinConnThread(&joinThread); > (gdb) list > 1363 } > 1364 > 1365 joinThread = servPtr->pools.joinThread; > 1366 Ns_ThreadSelf(&servPtr->pools.joinThread); > 1367 if (joinThread != NULL) { > 1368 JoinConnThread(&joinThread); > 1369 } > 1370 > 1371 Ns_Log(Notice, "exiting: %s", exitMsg); > 1372 > (gdb) frame 7 > #7 0x00007f5859ef0ffc in JoinConnThread (threadPtr=0x7f585181dda0) at > queue.c:1688 > 1688 Ns_ThreadJoin(threadPtr, &argArg); > (gdb) list > 1683 { > 1684 void *argArg; > 1685 > 1686 assert(threadPtr != NULL); > 1687 > 1688 Ns_ThreadJoin(threadPtr, &argArg); > 1689 /* > 1690 * There is no need to free ConnThreadArg here, since it is > 1691 * allocated in the driver > 1692 */ > (gdb) frame 6 > #6 0x00007f5859850561 in Ns_ThreadJoin (thread=<optimized out>, > argPtr=<optimized out>) at pthread.c:459 > 459 NsThreadFatal("Ns_ThreadJoin", "pthread_join", err); > (gdb) list > 454 > 455 assert(thread != NULL); > 456 > 457 err = pthread_join(thr, argPtr); > 458 if (err != 0) { > 459 NsThreadFatal("Ns_ThreadJoin", "pthread_join", err); > 460 } > 461 } > 462 > 463 ^L > > > > > Regards, > > -- > David Osborne > Qcode Software Limited > http://www.qcode.co.uk > > > > ------------------------------------------------------------------------------ > Dive into the World of Parallel Programming The Go Parallel Website, sponsored > by Intel and developed in partnership with Slashdot Media, is your hub for all > things parallel software development, from weekly thought leadership blogs to > news, videos, case studies, tutorials and more. Take a look and join the > conversation now. http://goparallel.sourceforge.net/ > > > _______________________________________________ > naviserver-devel mailing list > nav...@li... > https://lists.sourceforge.net/lists/listinfo/naviserver-devel -- Univ.Prof. Dr. Gustaf Neumann WU Vienna Institute of Information Systems and New Media Welthandelsplatz 1, A-1020 Vienna, Austria |