This is an intermittent hang running Java Webserver. It looks like the
VM is in the process of exiting, is trying to free some memory, and
gets hung on the malloc lock. There is a compilation thread that
looks like it has been suspended while malloc'ing some memory and is
holding the malloc lock.
Below is the thread list from dbx and a retrace on the three interesting
threads.
(dbx) threads
t@1 a l@14 ?() sleep on 0xff3366a0 in __lwp_sema_wait()
t@2 b l@2 ?() running in _signotifywait()
t@3 a l@17 ?() sleep on 0xff37e070 in __lwp_sema_wait()
t@4 b l@5 _start() sleep on 0xff3366a0 in __lwp_sema_wait()
t@5 b l@6 _co_timerset() running in __lwp_sema_wait()
t@6 _start() sleep on 0x10e0f8 in cond_wait()
t@7 _start() sleep on 0x10e278 in cond_wait()
t@10 a l@11 _start() suspended in __lwp_sema_wait()
(dbx) W 4
current thread: t@4
[1] __lwp_sema_wait(0xfd781e78, 0x0, 0x0, 0xff385784, 0x64, 0x0), at 0xff3162b8
[2] _park(0xfd781dc8, 0xfd781e78, 0x0, 0xfd781e54, 0xfd781e50, 0xfd781e4c), at 0xff35b044
[3] _mutex_adaptive_lock(0xff3366a0, 0x4c00, 0xff37c524, 0x1, 0x4d58, 0xfffeffff), at 0xff35c5c8
[4] _cmutex_lock(0xff3366a0, 0xff, 0x10afd8, 0xff2c60e0, 0x1c, 0x3f508), at 0xff35c378
[5] free(0x10afc0, 0xfe303ee4, 0xfe3048e4, 0xfe439ed8, 0xfe303eec, 0xfe2333ec), at 0xff2c60e0
[6] Thread::~Thread(0x10af30, 0x0, 0xfe2333ec, 0xfe27acc0, 0xfe33e594, 0x10afd8), at 0xfde97058
[7] VMThread::vm_thread_main(0x10af30, 0xfe34b670, 0xfe34b804, 0xfe27acc0, 0xfe2f441c, 0xfe2333ec), at 0xfdee947c
[8] _start(0x10000, 0x10170, 0xfe306c0c, 0x10878, 0xfe2333ec, 0xff37c524), at 0xfdd92488
(dbx) W 1
current thread: t@1
[1] __lwp_sema_wait(0x25d18, 0x0, 0x0, 0x0, 0x0, 0x0), at 0xff3162b8
[2] _park(0x25c68, 0x25d18, 0x0, 0x3, 0xff37d298, 0xfe901dc8), at 0xff35b044
[3] _swtch(0x5, 0xff37c524, 0x25cf8, 0x25cf4, 0x25cf0, 0x25cec), at 0xff35ad38
[4] _mutex_adaptive_lock(0xff3366a0, 0x4c00, 0xff37c524, 0x1, 0x4d58, 0xfffeffff), at 0xff35c5c8
[5] _cmutex_lock(0xff3366a0, 0xff, 0x3e520, 0xff2c60e0, 0x10, 0x0), at 0xff35c378
[6] free(0x3e508, 0xfe303ee4, 0xfe3048e4, 0xfe439ed8, 0xfe303eec, 0xfe2333ec), at 0xff2c60e0
[7] ThreadSafepointState::destroy(0x246608, 0xfe31a19c, 0xfe27acc0, 0x3f098, 0x1, 0xfe2333ec), at 0xfdddb230
[8] Threads::destroy_vm(0x7ed0, 0xfe33e3bc, 0xfe33e3d8, 0xfe2333ec, 0x246608, 0x1), at 0xfdeb08a0
[9] jni_DestroyJavaVM(0x1, 0xfe27acc0, 0xfe2adf5c, 0xfe2333ec, 0x246608, 0xfe2333ec), at 0xfdc3d0f8
[10] main(0x5, 0xffbeeb3c, 0xffbeeb54, 0x25800, 0x0, 0x0), at 0x121c8
(dbx) W 10
current thread: t@10
[1] __lwp_sema_wait(0xfe901e78, 0xfe901fe4, 0x0, 0x0, 0x0, 0x0), at 0xff3162b8
[2] _park(0xfe901dc8, 0xfe901e78, 0x0, 0x2, 0xff37d298, 0xfef0ddc8), at 0xff35b044
[3] _swtch(0x5, 0xff37c524, 0xfe901e58, 0xfe901e54, 0xfe901e50, 0xfe901e4c), at 0xff35ad38
[4] _dopreempt(0x0, 0xff37c524, 0x0, 0x0, 0x0, 0x0), at 0xff35cc70
[5] _sigsuspnd(0xfe901dc8, 0xfe9008b8, 0xfe900600, 0x0, 0x0, 0x0), at 0xff35f4d4
[6] __sighndlr(0x21, 0xfe9008b8, 0xfe900600, 0xff35f4f0, 0xfe901e4c, 0xfe901e2c), at 0xff36b920
[7] sigacthandler(0x21, 0xfe9008b8, 0xfe900600, 0xff37c524, 0x84, 0xfe901e3c), at 0xff36830c
---- called from signal handler with signal 33 (SIGLWP) ------
[8] _brk_unlocked(0x0, 0x704c2130, 0x5a5ea8, 0xff332118, 0xfe3b6594, 0xff332118), at 0xff3134d8
[9] _sbrk_unlocked(0x12000, 0x593ea8, 0x26b10, 0x26a98, 0x1e0990, 0x20), at 0xff30e410
[10] _sbrk(0x12000, 0x593ea8, 0xff338ab0, 0xff332118, 0x26a98, 0x1e0990), at 0xff30e384
[11] _morecore(0x7fffffff, 0x12000, 0xff332118, 0x592048, 0x593ea8, 0x0), at 0xff2c5c08
[12] _malloc_unlocked(0xff338ab0, 0x13390, 0x1d0be8, 0x592048, 0x0, 0xff332118), at 0xff2c54f4
[13] malloc(0x1338c, 0xf800, 0xd2dc6b, 0xfe303ee4, 0x829, 0xfe900a74), at 0xff2c530c
[14] os::malloc(0x13364, 0xfe2333ec, 0xf9d0, 0x286d0, 0x1, 0x7fec), at 0xfdd8d644
[15] Arena::grow(0xfe24e650, 0x541f38, 0x116ef0, 0xfe27acc0, 0xfe2333ec, 0x13358), at 0xfd9c1b1c
[16] PhaseChaitin::Register_Allocate(0xfe900e80, 0xffffffff, 0xfe27acc0, 0xfe2333ec, 0xfe3b6594, 0xfe900eb8), at 0xfdfef444
[17] Compile::Code_Gen(0xfe9017a4, 0xfe27a9d8, 0x0, 0xfe3d170c, 0xfe2333ec, 0x10000), at 0xfe021010
[18] Compile::Compile(0xfe9017a4, 0xfe2333ec, 0xfe3d0330, 0xfe27ab50, 0xfe3d170c, 0xfe43c330), at 0xfe01d588
[19] C2Compiler::compile_method(0x20b2ac, 0x1, 0xfe27acc0, 0x20b398, 0xfe2333ec, 0x1), at 0xfdfc9aa0
[20] Compilation::invoke_compiler_on_method(0x1, 0x20b398, 0xf858, 0xfe2333ec, 0x20b2ac, 0x17), at 0xfdf44d60
[21] Compilation::compiler_thread_loop(0x1, 0xfe2333ec, 0xffffffff, 0x1, 0x282510, 0xfefefefe), at 0xfdf43690
[22] JavaThread::thread_main(0xfe33aba8, 0xfe27acc0, 0x1, 0xfe2333ec, 0x116d58, 0x1), at 0xfdea18f0
[23] _start(0x10000, 0x10170, 0xfe306c0c, 0x10878, 0xfe2333ec, 0xfe401000), at 0xfdd92488