Summary: | complete freeze of artsd at video playback | ||
---|---|---|---|
Product: | [Unmaintained] arts | Reporter: | Casteyde.Christian <casteyde.christian> |
Component: | artsd | Assignee: | Stefan Westerfeld <stefan> |
Status: | CLOSED UNMAINTAINED | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Casteyde.Christian
2008-05-18 09:31:59 UTC
I've forgotten important info: xine and mplayer works. Xv is indeed available and workable too. xvinfo works of course. This is really specific to artsd video playback (the fact loadMedia works in xine is very interesting btw). It may be due to the context xinelib is used therefore (for instance from a callback in artsd, with some other locks taken, giving a deadlock). I'm trying to look at other artsd threads and will post results if I find something interesting... Well, another thread stack is interesting finally: Thread 2 (Thread 0x42356950 (LWP 14252)): #0 0x00007f41939c88e6 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0 #1 0x00007f41907f9a7b in _xcb_lock_io () from /usr/lib/../lib/libxcb.so.1 #2 0x00007f41907f9bda in ?? () from /usr/lib/../lib/libxcb.so.1 #3 0x00007f41907fb2d2 in xcb_wait_for_event () from /usr/lib/../lib/libxcb.so.1 #4 0x00007f4190c57137 in ?? () from /usr/lib/../lib/libX11.so.6 #5 0x00007f4190c57475 in ?? () from /usr/lib/../lib/libX11.so.6 #6 0x00007f4190c3f44f in XNextEvent () from /usr/lib/../lib/libX11.so.6 #7 0x00007f41917ebd71 in xinePlayObject_impl::eventLoop () from /usr/lib/libarts_xine.so.0 #8 0x00007f41917ee1e9 in xinePlayObject_impl::pthread_start_routine () from /usr/lib/libarts_xine.so.0 #9 0x00007f41939c438b in start_thread () from /lib/libpthread.so.0 #10 0x00007f4192d9ff4d in clone () from /lib/libc.so.6 It seems there is a threading model problem in artsd finally. It starts the play object in another thread, but calls loadMedia in the main thread. There are two apartments there, either the call to loadMedia should be done on the worker thread, or the XNextEvent should be done from the main thread I guess. Seems to be an artsd bug only, which is not correct as far as threading is concerned, at least with recent Xcb libraries. Well, this is only my analysis on code I do not know, only based on my experience on other software (and OSes), so I may also be completly wrong. This is only guesses of course... Arts is no longer developed and has been unmaintained for quite some time - more than 2 years. With phonon as the replacement for arts in KDE4, we're closing out all the arts bugs in Bugzilla since there is no chance of them being fixed. Thanks |