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