Apache OpenOffice (AOO) Bugzilla – Issue 114957
desktop: servicetag deadlock
Last modified: 2013-01-29 21:39:44 UTC
Observed at least on OOO330_m9 unxsols4.pro: First soffice start, past first start wizard, backing window shows, immediately Ctrl-Q, soffice.bin deadlocks with (dbx) threads > t@1 a l@1 ?() sleep on 0xf31fa930 in __lwp_park() t@2 a l@2 ?() sleep on 0xff1d97e0 in __lwp_park() t@7 b l@7 java_start() running in ___lwp_cond_wait() t@8 b l@8 java_start() running in ___lwp_cond_wait() t@9 b l@9 java_start() running in ___lwp_cond_wait() t@10 b l@10 java_start() sleep on 0xf3b2abe8 in __lwp_park() t@11 b l@11 java_start() running in ___lwp_cond_wait() t@12 b l@12 java_start() running in ___lwp_cond_wait() t@13 b l@13 java_start() running in __pollsys() t@14 b l@14 java_start() sleep on 0xff345400 in __lwp_park() t@15 a l@15 ?() running in _pause() t@17 b l@17 java_start() running in ___lwp_cond_wait() (dbx) thread -blockedby t@1 Thread t@1 is blocked by: soft_giant_mutex (0xf31fa930): thread mutex(locked) Lock owned by t@14 (dbx) thread -blockedby t@14 Thread t@14 is blocked by: __uberdata+0x1c00 (0xff345400): thread mutex(locked) Lock owned by t@1 (dbx) where t@1 current thread: t@1 =>[1] __lwp_park(0x0, 0x0, 0x0, 0x0, 0xff1e0000, 0x1), at 0xff2c6dec [2] mutex_lock_queue(0xff392a00, 0x0, 0xf31fa930, 0x0, 0x1c00, 0x1d3c), at 0xff2bf154 [3] softtoken_fini(0x0, 0x1, 0x446, 0xf31fa000, 0x55b38, 0xff3f6a88), at 0xf31a44dc [4] _fini(0xff3f40fc, 0xff3f5ad0, 0x2b3b4, 0x0, 0xff3f4910, 0x1821), at 0xf31e5e40 [5] call_fini(0xff3f40fc, 0xf5de0da8, 0xf31e5e3c, 0xff3f42f0, 0xff3f42a8, 0xff3f4910), at 0xff3c54f4 [6] atexit_fini(0xff3f40fc, 0x2f2b8, 0xff2c04e8, 0xff3f4910, 0xff392a00, 0xf5de0da8), at 0xff3c56c4 [7] _exithandle(0xff345400, 0xff343800, 0x1c00, 0xff3672cc, 0xff390240, 0x213e4), at 0xff242124 [8] exit(0x0, 0xffbffb44, 0xffbffb4c, 0x21400, 0xff3900c0, 0x0), at 0xff230550 (dbx) where t@14 current thread: t@14 =>[1] __lwp_park(0x0, 0x0, 0x0, 0x0, 0xff1e00b0, 0x1), at 0xff2c6dec [2] mutex_lock_queue(0xfefa5a00, 0x0, 0xff345400, 0x0, 0x1c00, 0x1d3c), at 0xff2bf154 [3] libc_prepare_atfork(0x0, 0x0, 0x0, 0x0, 0xfcea6d10, 0xfa604740), at 0xff268b44 [4] _prefork_handler(0x1d18, 0xff343800, 0x1c00, 0x0, 0xff343860, 0x0), at 0xff24264c [5] _fork1(0x1, 0x13, 0x0, 0x0, 0xff343800, 0xfefa5a00), at 0xff2b8b0c [6] Java_java_lang_UNIXProcess_forkAndExec(0xd97518, 0x0, 0x24478, 0x0, 0x0, 0x0), at 0xf3d4a030 [7] 0xf100ce60(0x51, 0xf087f1f8, 0xf087f158, 0xffffff70, 0x0, 0x0), at 0xf100ce60 [8] 0xf100ce0c(0xc4347d30, 0xb7, 0xf087f274, 0x2c, 0xc434d518, 0xf087f170), at 0xf100ce0c [9] 0xf1005970(0xc4347d30, 0xb7, 0xc4347d20, 0xf1015ab0, 0xc434d518, 0xf087f218), at 0xf1005970 [10] 0xf1005a90(0x0, 0xb8, 0xc4347cf0, 0xf1015aa8, 0xd4001b78, 0xf087f2d0), at 0xf1005a90 [11] 0xf1005928(0xc4347ca0, 0xb6, 0xf087f480, 0xf1015bf0, 0xc434d518, 0xf087f370), at 0xf1005928 [12] 0xf1005928(0xc42a2840, 0xb6, 0x0, 0xf10158c0, 0xd8c00998, 0xf087f418), at 0xf1005928 [13] 0xf1005928(0xc42a2840, 0x0, 0xd97400, 0xf1015910, 0x1b2e80, 0xf087f4b8), at 0xf1005928 [14] 0xf1005928(0xc42a2840, 0x0, 0xd97400, 0xf1015a60, 0x1b2e80, 0xf087f548), at 0xf1005928 [15] 0xf1005a90(0xf3b1bb38, 0x0, 0xd97400, 0xf1015ab0, 0x1b2e80, 0xf087f5d8), at 0xf1005a90 [16] 0xf1005928(0xc4278cc0, 0x0, 0xd97400, 0xf1015bf0, 0x1b2e80, 0xf087f660), at 0xf1005928 [17] 0xf1005a90(0xc4278cc0, 0x0, 0xd97400, 0xf1015ba0, 0x1b2e80, 0xf087f6e0), at 0xf1005a90 [18] 0xf1005a90(0xc428aec0, 0x0, 0xd97400, 0xf1015ab0, 0x1b2e80, 0xf087f7e0), at 0xf1005a90 [19] 0xf1005a90(0xc42c08f8, 0xd8c155a8, 0xd97400, 0xf1015910, 0x1b2e80, 0xf087f868), at 0xf1005a90 [20] 0xf1005fa0(0xf087ffa0, 0x19b3c, 0x19800, 0xf1015d30, 0xc42bab90, 0xf087f8e0), at 0xf1005fa0 [21] 0xf100021c(0xf087f9cc, 0xf087fc78, 0xa, 0xd8c16c48, 0xf100b3e0, 0xf087fb60), at 0xf100021c [22] JavaCalls::call_helper(0xf10001c0, 0xd97400, 0x1, 0xd8be18, 0xd8c16c48, 0xf087fc78), at 0xf34f2298 [23] JavaCalls::call_virtual(0xf087fc70, 0xd8be1c, 0xd8be28, 0x60fc00, 0xf087fb58, 0xff9f0090), at 0xf37534f0 [24] JavaCalls::call_virtual(0xf087fc70, 0xf087fc6c, 0xf087fc68, 0xf087fc64, 0xf087fc60, 0xd8be1c), at 0xf3503c14 [25] thread_entry(0xd8c153b8, 0xd97400, 0x2cc00, 0xf3b2f3ec, 0xf3b2f0d4, 0xf3b2edc4), at 0xf3503b88 [26] JavaThread::thread_main_inner(0xd97400, 0xc8e4c0, 0xe, 0x8, 0xf3b02000, 0x0), at 0xf395c164 [27] java_start(0xd97400, 0x58b, 0xf3b02000, 0xf3a55fc9, 0xf3b1c5a4, 0xf3b2abac), at 0xf38b7450 ProcessBuilder is mentioned at various places in desktop/source/registration/com/sun/star/servicetag/*.java, so it looks plausible that the servicetag feature spawns an additional Java thread that wants to spawn an external process and still runs while the main thread is already in exit.