Crash on destruction with phonon vlc backend

Mark Kretschmann kretschmann at kde.org
Tue Dec 7 07:52:43 GMT 2010


On Tue, Nov 9, 2010 at 9:38 PM, Stefan Burnicki <stefan.burnicki at gmx.de> wrote:
> 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?

Sorry for the late reply.

The issue is a known bug in libpulse. It's fixed upstream, and the fix
should trickle down the stream soonish. E.g. Kubuntu plans to patch it
as an online update, as far as I understand.

-- 
Mark Kretschmann
Amarok Developer, Software Engineer at KO GmbH
Fellow of the Free Software Foundation Europe
http://amarok.kde.org - http://fsfe.org - http://kogmbh.com



More information about the kde-multimedia mailing list