Issue 114957 - desktop: servicetag deadlock
Summary: desktop: servicetag deadlock
Status: CONFIRMED
Alias: None
Product: General
Classification: Code
Component: code (show other issues)
Version: current
Hardware: All All
: P3 Trivial (vote)
Target Milestone: ---
Assignee: AOO issues mailing list
QA Contact:
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-06 13:21 UTC by Stephan Bergmann
Modified: 2013-01-29 21:39 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Stephan Bergmann 2010-10-06 13:21:59 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.