(gdb) thread apply all btThread 11 (Thread 0x28601100 (LWP 100152)):[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x2835459b in _umtx_op () from /lib/libc.so.7[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x2830b7fd in pthread_cleanup_push () from /lib/libthr.so.3[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x28309260 in pthread_kill () from /lib/libthr.so.3[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x2811ae50 in __vlc_thread_join (p_this=0x2867b080, psz_file=0x28141bb8 "../../trunk/src/libvlc-common.c", i_line=1114) at ../../trunk/src/misc/threads.c:836[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x2808e138 in libvlc_InternalAddIntf (p_libvlc=0x28638030, psz_module=0x0, b_block=1, b_play=1, i_options=0, ppsz_options=0x0) at ../../trunk/src/libvlc-common.c:1114[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x2808def9 in VLC_AddIntf (i_object=0, psz_module=0x0, b_block=1, b_play=1) at ../../trunk/src/libvlc.c:145[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x08048f3b in main (i_argc=6, ppsz_argv=0xbfbfe9a8) at ../trunk/src/vlc.c:215Thread 10 (Thread 0x28601200 (LWP 100151)):[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x283548bb in sigwait () from /lib/libc.so.7[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x28305e64 in sigwait () from /lib/libthr.so.3[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x0804912c in SigHandler (data=0x28601200) at ../trunk/src/vlc.c:260[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x28303a7f in pthread_getprio () from /lib/libthr.so.3[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x00000000 in ?? ()---Type <return> to continue, or q <return> to quit---Thread 9 (Thread 0x28601e00 (LWP 100162)):[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x2835459b in _umtx_op () from /lib/libc.so.7[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x2830b9b8 in pthread_cleanup_push () from /lib/libthr.so.3[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x2830a1be in pthread_cond_init () from /lib/libthr.so.3[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x280a2d2a in playlist_PreparseLoop (p_obj=0x28617a90) at vlc_threads_funcs.h:501[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x2809e37a in RunPreparse (p_obj=0x28617a90) at ../../trunk/src/playlist/thread.c:222[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x28303a7f in pthread_getprio () from /lib/libthr.so.3[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x00000000 in ?? ()Thread 8 (Thread 0x28601f00 (LWP 100166)):[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x2835459b in _umtx_op () from /lib/libc.so.7[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x2830b9b8 in pthread_cleanup_push () from /lib/libthr.so.3[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x2830a1be in pthread_cond_init () from /lib/libthr.so.3[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x280a1dc4 in playlist_FetcherLoop (p_obj=0x28657690) at vlc_threads_funcs.h:501[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x2809e33a in RunFetcher (p_obj=0x28657690) at ../../trunk/src/playlist/thread.c:229[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x28303a7f in pthread_getprio () from /lib/libthr.so.3[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x00000000 in ?? ()Thread 7 (Thread 0x28602000 (LWP 100196)):---Type <return> to continue, or q <return> to quit---[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x2835459b in _umtx_op () from /lib/libc.so.7[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x2830b9b8 in pthread_cleanup_push () from /lib/libthr.so.3[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x2830a1be in pthread_cond_init () from /lib/libthr.so.3[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x2809e301 in RunControlThread (p_playlist=0x28802700) at vlc_threads_funcs.h:501[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x28303a7f in pthread_getprio () from /lib/libthr.so.3[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x00000000 in ?? ()Thread 6 (Thread 0x28602100 (LWP 100197)):[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x283e6633 in read () from /lib/libc.so.7[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x283026f2 in read () from /lib/libthr.so.3[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x2812a509 in __vlc_object_wait (obj=0x2867ad40) at ../../trunk/src/misc/objects.c:602[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x285af432 in Run (p_intf=0x2867ad40) at ../../../trunk/modules/misc/audioscrobbler.c:284[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x2809bcaf in RunInterface (p_intf=0x2867ad40) at ../../trunk/src/interface/interface.c:277[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x28303a7f in pthread_getprio () from /lib/libthr.so.3[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x00000000 in ?? ()Thread 5 (Thread 0x28602200 (LWP 100198)):[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x2835459b in _umtx_op () from /lib/libc.so.7[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x2830b9b8 in pthread_cleanup_push () from /lib/libthr.so.3---Type <return> to continue, or q <return> to quit---[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x2830a1be in pthread_cond_init () from /lib/libthr.so.3[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x2812a65e in __vlc_object_wait (obj=0x2867afb0) at vlc_threads_funcs.h:501[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x285b52db in Run (p_intf=0x2867afb0) at vlc_objects.h:195[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x2809bcaf in RunInterface (p_intf=0x2867afb0) at ../../trunk/src/interface/interface.c:277[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x28303a7f in pthread_getprio () from /lib/libthr.so.3[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x00000000 in ?? ()Thread 4 (Thread 0x28602500 (LWP 100199)):[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x283c910f in nanosleep () from /lib/libc.so.7[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x2830288b in nanosleep () from /lib/libthr.so.3[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x28111f3c in msleep (delay=50000) at ../../trunk/src/misc/mtime.c:342[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x285c0c9f in Run (p_intf=0x2867b080) at ../../../trunk/modules/gui/ncurses.c:399[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x2809bcaf in RunInterface (p_intf=0x2867b080) at ../../trunk/src/interface/interface.c:277[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x28303a7f in pthread_getprio () from /lib/libthr.so.3[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x00000000 in ?? ()Thread 3 (Thread 0x28602700 (LWP 100157)):[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x2835459b in _umtx_op () from /lib/libc.so.7[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x2830ba8d in pthread_cleanup_push () from /lib/libthr.so.3[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x28307390 in pthread_mutex_getprioceiling () from /lib/libthr.so.3---Type <return> to continue, or q <return> to quit---[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x2812ac28 in __vlc_object_lock (obj=0x2867ad40) at vlc_threads_funcs.h:136[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x285b1484 in PlayingChange (p_this=0x28657c10, psz_var=0x2814cdca "state", oldval= {i_int = 3, b_bool = 3, f_float = 4.20389539e-45, psz_string = 0x3 <Error reading address 0x3: Bad address>, p_address = 0x3, p_object = 0x3, p_list = 0x3, i_time = 3, var = {psz_name = 0x3 <Error reading address 0x3: Bad address>, i_object_id = 0}, padding = {a = 3 '\003', b = 0 '\0', c = 0 '\0', d = 0 '\0', e = 0 '\0', f = 0 '\0', g = 0 '\0', h = 0 '\0'}}, newval= {i_int = 5, b_bool = 5, f_float = 7.00649232e-45, psz_string = 0x5 <Error reading address 0x5: Bad address>, p_address = 0x5, p_object = 0x5, p_list = 0x5, i_time = 5, var = {psz_name = 0x5 <Error reading address 0x5: Bad address>, i_object_id = 0}, padding = {a = 5 '\005', b = 0 '\0', c = 0 '\0', d = 0 '\0', e = 0 '\0', f = 0 '\0', g = 0 '\0', h = 0 '\0'}}, p_data=0x2867ad40) at vlc_objects.h:166[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x28131c53 in __var_Set (p_this=0x28657c10, psz_name=0x2814cdca "state", val=Variable "val" is not available.) at ../../trunk/src/misc/variables.c:798[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x280c9604 in MainLoop (p_input=0x28657c10) at vlc_variables.h:205[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x280cae99 in Run (p_input=0x28657c10) at ../../trunk/src/input/input.c:507[#8](https://code.videolan.org/videolan/vlc/-/issues/8) 0x28303a7f in pthread_getprio () from /lib/libthr.so.3[#9](https://code.videolan.org/videolan/vlc/-/issues/9) 0xbf0f5fec in ?? ()Thread 2 (Thread 0x28602900 (LWP 100163)):[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x2835459b in _umtx_op () from /lib/libc.so.7---Type <return> to continue, or q <return> to quit---[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x2830b9b8 in pthread_cleanup_push () from /lib/libthr.so.3[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x2830a1be in pthread_cond_init () from /lib/libthr.so.3[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x28112d84 in block_FifoGet (p_fifo=0x2930d610) at vlc_threads_funcs.h:501[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x280b5d82 in DecoderThread (p_dec=0x29701430) at ../../trunk/src/input/decoder.c:582[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x28303a7f in pthread_getprio () from /lib/libthr.so.3[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0xbf2f7fec in ?? ()Thread 1 (Thread 0x28602600 (LWP 100164)):[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x283c910f in nanosleep () from /lib/libc.so.7[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x2830288b in nanosleep () from /lib/libthr.so.3[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x28111f3c in msleep (delay=5804) at ../../trunk/src/misc/mtime.c:342[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x285774e2 in OSSThread (p_aout=0x28701400) at ../../../trunk/modules/audio_output/oss.c:627[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x28303a7f in pthread_getprio () from /lib/libthr.so.3[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0xbeef3fec in ?? ()(gdb)
Apparently, PlayingChange waits for the audioscrobbler thread, which is waiting for its "waitpipe" (read() inside vlc_object_wait()). Unlocking object_lock around the read() should work-around the problem. I'll try to make a proper fix later.
(In [24657]) Only use waitpipe for _kill, rather than _signal, which is what people expect
(You really don't usually want your net_Read/net_Write to interrupted).
In the process, fix a deadlock in vlc_cond_wait() when waitpipe is used - fixes #1448 (closed)