Crash on destruction with phonon vlc backend

Stefan Burnicki stefan.burnicki at gmx.de
Tue Nov 9 20:38:58 GMT 2010


Today I recognized in the media player Bangarang an issue with the 
phonon vlc backend. When I use the phonon xine backend the application 
terminates correctly. No matter if I have played a song with it or not.
But when I use the vlc backend of phonon, the application crashes. This 
happens only if I am playing or have played a song with it, not by 
simply closing it after startup. Here is the short version of the backrace:

Application: Bangarang (bangarang), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f22ebd6b760 (LWP 2139))]

Thread 3 (Thread 0x7f22a0645710 (LWP 2142)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/
linux/x86_64/pthread_cond_wait.S:162
#1  0x00007f22d7a68262 in ?? () from /usr/lib/libvlccore.so.4
#2  0x00007f22eb4dd971 in start_thread (arg=<value optimized out>) at

Thread 2 (Thread 0x7f229b7fe710 (LWP 2150)):
#0  0x00007f22e6a8f1d3 in __poll (fds=<value optimized out>,
nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/
poll.c:87
#1  0x00007f22e5eee009 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007f22e5eee45c in g_main_context_iteration () from /lib/
libglib-2.0.so.0
#3  0x00007f22eb8881e6 in QEventDispatcherGlib::processEvents
(this=0x2a41b70, flags=<value optimized out>) at kernel/
qeventdispatcher_glib.cpp:417

Thread 1 (Thread 0x7f22ebd6b760 (LWP 2139)):
[KCrash Handler]
#6  __pthread_mutex_lock (mutex=0x620069006c2060) at
pthread_mutex_lock.c:50
#7  0x00007f22e4833117 in XrmDestroyDatabase () from /usr/lib/
libX11.so.6
#8  0x00007f22e481d9ed in _XFreeDisplayStructure () from /usr/lib/
libX11.so.6

This can be avoided by calling XInitThreads() at application startup, 
but I hesitate a bit as it is not generally necessary (it works with the 
other backends).
Finally I breaked with the debugger in the destructor when I used the 
xine backend and I noticed that only two threads were existing (the 
event loop and the main thread), but no thread with backend libraries 
(as vlc here).

What's the point here? Is there something wrong with deleting objects 
and VLC is more sensible than xine? Or is XInitThreads() necessary with 
VLC backends?

Thanks for your help,
Stefan

P.S.: Bangarang uses the SeekSlider, VolumeSlider and VideoWidget of 
Phonon, I don't know if they have something to do with this issue ;)



More information about the kde-multimedia mailing list