Bug 157607 - reproducible crash when playing video
Summary: reproducible crash when playing video
Alias: None
Product: Phonon
Classification: Unclassified
Component: Xine backend (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash (vote)
Target Milestone: ---
Assignee: Matthias Kretz
Depends on:
Reported: 2008-02-10 16:38 UTC by Oliver Putz
Modified: 2008-11-25 15:06 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:

Valgrind log for dragonplayer crashing on bug 157607 at 0:13 (123.39 KB, text/plain)
2008-02-10 18:01 UTC, Oliver Putz

Note You need to log in before you can comment on or make changes to this bug.
Description Oliver Putz 2008-02-10 16:38:18 UTC
Version:            (using Devel)
Installed from:    Compiled sources
Compiler:          gcc version 4.1.2 20070214 
OS:                Linux

Today I tried to gather some more information on bug #157579 and downloaded the video (http://media.revver.com/qt;sharer=0/159405.mov) that causes that crash. First of all: According to console debugging output, it seems that the video itself is somewhat corrupted / not properly recorded.

There are several ways to interact with the video that all lead to different behaviours:

- Case1: If I do a right click on the video and select Open with -> dragonplayer, dragonplayer crashes right at the beginning with backtrace A.

- Case2: If I play the video via "preview" embedded in konqueror and double click on it (make it fullscreen), dragon crashes as described in bug #157579.

- Case3: If I play the video via "preview" embedded in konqueror and wait until 0:14, it crashes with a corrupt backtrace. Note that if I play the video directly from the site, I only get some rendering artifacts at 0:14, but dragon does not crash. (However, when I close konqueror, it then crashes with a corrupted backtrace)

Backtrace A:
Application: Dragon Player (dragon), signal SIGABRT
Using host libthread_db library "/lib/libthread_db.so.1".
[Thread debugging using libthread_db enabled]
[New Thread 0xb64798e0 (LWP 6284)]
[New Thread 0xafd3ab90 (LWP 6295)]
[New Thread 0xb067fb90 (LWP 6294)]
[New Thread 0xb0e80b90 (LWP 6293)]
[New Thread 0xb184eb90 (LWP 6292)]
[New Thread 0xb2530b90 (LWP 6291)]
[New Thread 0xb2d31b90 (LWP 6290)]
[New Thread 0xb3574b90 (LWP 6289)]
[New Thread 0xb3d75b90 (LWP 6286)]
[New Thread 0xb49abb90 (LWP 6285)]
[KCrash handler]
#6  0xffffe410 in __kernel_vsyscall ()
#7  0xb66bc1f1 in *__GI_raise (sig=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#8  0xb66bd9b8 in *__GI_abort () at abort.c:88
#9  0xb66f8b78 in malloc_printerr (action=2, 
    str=0xb67a4ee4 "free(): invalid pointer", ptr=0x1894) at malloc.c:5892
#10 0xb66fa7e5 in *__GI___libc_free (mem=0xae02a020) at malloc.c:3586
#11 0xb49f982c in av_free () from /usr/lib/libavutil.so.49
#12 0x087fa4e0 in ?? ()
#13 0xb184ddf8 in ?? ()
#14 0xb49f9819 in av_free () from /usr/lib/libavutil.so.49
#15 0x081b7920 in ?? ()
#16 0xb49fcff4 in ?? () from /usr/lib/libavutil.so.49
#17 0xb49f984e in av_freep () from /usr/lib/libavutil.so.49
#18 0x087fa4e0 in ?? ()
#19 0xb4ad69c5 in ff_mpeg4_decode_picture_header ()
   from /usr/lib/libavcodec.so.51
#20 0x088e0ff0 in ?? ()
#21 0x00001894 in ?? ()
#22 0xb184ddf8 in ?? ()
#23 0x00000001 in ?? ()
#24 0x00000002 in ?? ()
#25 0x00000001 in ?? ()
#26 0x00000000 in ?? ()

Thread 4 (Thread 0xb0e80b90 (LWP 6293)):
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7db9586 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb6cd752d in fifo_buffer_get (fifo=0x8790de8) at buffer.c:230
#3  0xb6cdcaf3 in audio_decoder_loop (stream_gen=0x87cdb18)
    at audio_decoder.c:66
#4  0xb7db518b in start_thread (arg=0xb0e80b90) at pthread_create.c:296
#5  0xb675435e in clone () from /lib/libc.so.6

Thread 3 (Thread 0xb067fb90 (LWP 6294)):
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7db9586 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb6ce4110 in xine_event_wait (queue=0x878c930) at events.c:56
#3  0xb6ce417a in listener_loop (queue_gen=0x878c930) at events.c:214
#4  0xb7db518b in start_thread (arg=0xb067fb90) at pthread_create.c:296
#5  0xb675435e in clone () from /lib/libc.so.6

Thread 2 (Thread 0xafd3ab90 (LWP 6295)):
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb674d9a1 in select () from /lib/libc.so.6
#2  0xb6cf3ebc in xine_usec_sleep (usec=100000) at utils.c:457
#3  0xb6ce7589 in demux_loop (stream_gen=0x87cdb18) at demux.c:309
#4  0xb7db518b in start_thread (arg=0xafd3ab90) at pthread_create.c:296
#5  0xb675435e in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb64798e0 (LWP 6284)):
#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb7db9586 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb7e280e0 in QWaitCondition::wait (this=0x8736f54, mutex=0x8736f44, 
    time=4294967295) at thread/qwaitcondition_unix.cpp:267
#3  0xb4f2643c in Phonon::Xine::XineStream::closeBlocking (this=0x8736f18)
    at /var/tmp/portage/kde-base/kdebase-9999.4/work/kdebase-9999.4/runtime/phonon/xine/xinestream.cpp:1221
#4  0xb4f3607d in ~MediaObject (this=0x8736198)
    at /var/tmp/portage/kde-base/kdebase-9999.4/work/kdebase-9999.4/runtime/phonon/xine/mediaobject.cpp:117
#5  0xb6d2805c in Phonon::MediaNodePrivate::deleteBackendObject (
    at /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs-9999.4/phonon/medianode.cpp:76
#6  0xb6d36289 in ~FactoryPrivate (this=0x81395f0)
    at /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs-9999.4/phonon/factory.cpp:131
#7  0xb6d3574b in destroy ()
    at /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs-9999.4/phonon/factory.cpp:45
#8  0xb6d20bcb in ~CleanUpGlobalStatic (this=0xb6d48778)
    at /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs-9999.4/phonon/globalstatic_p.h:55
#9  0xb6d356b0 in __tcf_0 ()
    at /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs-9999.4/phonon/factory.cpp:45
#10 0xb66bedbc in *__GI_exit (status=1) at exit.c:75
#11 0xb6ea4e5b in qt_xio_errhandler () at kernel/qapplication_x11.cpp:551
#12 0xb7a70227 in KApplication::xioErrhandler (this=0xbff043f8, dpy=0x80862d0)
    at /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs-9999.4/kdeui/kernel/kapplication.cpp:418
#13 0xb7a70266 in kde_xio_errhandler (dpy=0x80862d0)
    at /var/tmp/portage/kde-base/kdelibs-9999.4/work/kdelibs-9999.4/kdeui/kernel/kapplication.cpp:130
#14 0xb6bb2cc6 in _XIOError (dpy=0x80862d0) at XlibInt.c:2940
#15 0xb6bb4cd0 in _XEventsQueued (dpy=0x80862d0, mode=2) at XlibInt.c:788
#16 0xb6ba6adc in XEventsQueued (dpy=0x80862d0, mode=2) at Pending.c:44
#17 0xb6ed7d3c in QEventDispatcherX11::processEvents (this=0x8084bc8, 
    flags=@0xbff04334) at kernel/qeventdispatcher_x11.cpp:72
#18 0xb7ef1191 in QEventLoop::processEvents (this=0xbff043a0, 
    flags=@0xbff04368) at kernel/qeventloop.cpp:140
#19 0xb7ef129a in QEventLoop::exec (this=0xbff043a0, flags=@0xbff043a8)
    at kernel/qeventloop.cpp:186
#20 0xb7ef3626 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:759
#21 0xb6e4d487 in QApplication::exec () at kernel/qapplication.cpp:3053
#22 0x08069b22 in main (argc=)
    at /var/tmp/portage/kde-base/kdemultimedia-9999.4/work/kdemultimedia-9999.4/dragonplayer/src/app/main.cpp:58
#23 0xb66a8fdc in __libc_start_main (main=0x80695d0 <main>, argc=2, 
    ubp_av=0xbff04544, init=0x80725d0 <__libc_csu_init>, 
    fini=0x80725c0 <__libc_csu_fini>, rtld_fini=0xb7fb5100 <_dl_fini>, 
    stack_end=0xbff0453c) at libc-start.c:229
#24 0x08058d91 in _start ()
#0  0xffffe410 in __kernel_vsyscall ()
Comment 1 Oliver Putz 2008-02-10 18:01:50 UTC
Created attachment 23519 [details]
Valgrind log for dragonplayer crashing on bug 157607 at 0:13

As I cannot produce a valid backtrace for opening the video for this bug
embedded in konqueror and letting it run until it crashes at 0:13, I attach a
Valgrind log for this way of crashing the application.
Comment 2 Ian Monroe 2008-02-11 04:56:10 UTC
Case 2 has been fixed (disabling fullscreen for kpart for now).

I can play this video after downloading it with mplayer, but with both Dragon and Codeine it plays with only audio. 

The backtraces looks like its a phonon-xine or libxine issue, so I'll move it over to Phonon.
Comment 3 Lubos Lunak 2008-07-21 16:22:58 UTC
SVN commit 835987 by lunakl:

Remove emitting of aboutToQuit() from KApplication::xioErrhandler() - the application
is not about to quit, it is about to fall flat on its face. There is really not that
much to do once KDE apps lose their connection to the X server. How that can happen
while the X server still continues to run is a different question and I don't know
the answer. It is quite possible it is caused by careless usage of one X connection
from several threads concurrently without proper locking.

CCBUG: 166685
CCBUG: 166432
CCBUG: 166401
CCBUG: 166179
CCBUG: 165451
CCBUG: 165307
CCBUG: 165059
CCBUG: 164740
CCBUG: 164665
CCBUG: 163751
CCBUG: 163355
CCBUG: 161787
CCBUG: 160692
CCBUG: 160458
CCBUG: 158194
CCBUG: 158088
CCBUG: 157607
CCBUG: 154011
CCBUG: 151293
CCBUG: 146891
CCBUG: 146700
CCBUG: 146562
CCBUG: 144383
CCBUG: 143375
CCBUG: 141871
BUG: 140683
CCBUG: 139162
CCBUG: 134708
CCBUG: 133332
CCBUG: 128588
CCBUG: 112960

 M  +0 -1      kapplication.cpp  

WebSVN link: http://websvn.kde.org/?view=rev&revision=835987
Comment 4 Matthias Kretz 2008-11-25 15:06:01 UTC
I guess this was a libxine issue and it seems to be fixed with current xine. At least I cannot reproduce any crashes with any player using Phonon-Xine. Also Video shows just right.

Please reopen if you still have issues with current libxine and xine-ui works while phonon-xine does not.