Bug 259801

Summary: Amarok crashed on startup [@ Phonon::Gstreamer::Backend::logMessage]
Product: [Unmaintained] phonon-backend-gstreamer Reporter: Daniel Hahler <kde-bugzilla>
Component: generalAssignee: Harald Sitter <sitter>
Status: RESOLVED FIXED    
Severity: crash CC: 20120808_bugs.kde.org, adrien.bellanger, aelgali, bga.lambert, buijert, bwoodcock, christopherheiny, darrylbaker57, fosterdave, jcnengel, katoiam, kde-bugzilla, lazor, liquidsky42, martin.sandsmark, mingomax, myriam, paulo.fidalgo.pt, sagiben, stefansnorri, stimut, valorie.zimmerman, W.Strehlow
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In: 4.4.4
Sentry Crash Report:
Attachments: New crash information added by DrKonqi
New crash information added by DrKonqi

Description Daniel Hahler 2010-12-14 04:36:36 UTC
Application: amarok (2.3.90)
KDE Platform Version: 4.5.85 (4.6 Beta2)
Qt Version: 4.7.0
Operating System: Linux 2.6.36.2-blueyed i686
Distribution: Ubuntu 10.10

-- Information about the crash:
- What I was doing when the application crashed:

I've started Amarok (after having migrated some data partitions to a new location), and it crashed.

-- Backtrace:
Application: Amarok (amarok), signal: Segmentation fault
[Current thread is 1 (Thread 0xb056b780 (LWP 11789))]

Thread 8 (Thread 0xa48c3b70 (LWP 11795)):
#0  0xb43a7e36 in clock_gettime () from /lib/librt.so.1
#1  0xb5aeb50b in do_gettime () at tools/qelapsedtimer_unix.cpp:105
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:119
#3  0xb5bc26e5 in QTimerInfoList::updateCurrentTime (this=0x9fabb2c) at kernel/qeventdispatcher_unix.cpp:339
#4  0xb5bc272a in QTimerInfoList::timerWait (this=0x9fabb2c, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0xb5bc07a8 in timerSourcePrepareHelper (src=<value optimized out>, timeout=0xa48c2f9c) at kernel/qeventdispatcher_glib.cpp:136
#6  0xb5bc083d in timerSourcePrepare (source=0x0, timeout=0xb43abff4) at kernel/qeventdispatcher_glib.cpp:169
#7  0xb4531e6a in g_main_context_prepare () from /lib/libglib-2.0.so.0
#8  0xb4532279 in ?? () from /lib/libglib-2.0.so.0
#9  0xb4532848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#10 0xb5bc059f in QEventDispatcherGlib::processEvents (this=0x9faab70, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#11 0xb5b90609 in QEventLoop::processEvents (this=0xa48c3170, flags=) at kernel/qeventloop.cpp:149
#12 0xb5b90a8a in QEventLoop::exec (this=0xa48c3170, flags=...) at kernel/qeventloop.cpp:201
#13 0xb5a8cb7e in QThread::exec (this=0x9f80460) at thread/qthread.cpp:490
#14 0xb5b6f35b in QInotifyFileSystemWatcherEngine::run (this=0x9f80460) at io/qfilesystemwatcher_inotify.cpp:248
#15 0xb5a8fdf9 in QThreadPrivate::start (arg=0x9f80460) at thread/qthread_unix.cpp:266
#16 0xb29dfba8 in ?? () from /usr/lib/nvidia-current/libGL.so.1

Thread 7 (Thread 0xa2ffdb70 (LWP 11796)):
#0  0xb57dfb22 in ?? () from /lib/libc.so.6
#1  0xb58a6f7b in pthread_mutex_unlock () from /lib/libc.so.6
#2  0xb45324f9 in ?? () from /lib/libglib-2.0.so.0
#3  0xb4532848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#4  0xb5bc059f in QEventDispatcherGlib::processEvents (this=0x9fb8388, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#5  0xb5b90609 in QEventLoop::processEvents (this=0xa2ffd190, flags=) at kernel/qeventloop.cpp:149
#6  0xb5b90a8a in QEventLoop::exec (this=0xa2ffd190, flags=...) at kernel/qeventloop.cpp:201
#7  0xb5a8cb7e in QThread::exec (this=0x9fb45a0) at thread/qthread.cpp:490
#8  0xb41a5171 in Herqq::Upnp::HControlPointThread::run() () from /usr/lib/libHUpnp.so.0
#9  0xb5a8fdf9 in QThreadPrivate::start (arg=0x9fb45a0) at thread/qthread_unix.cpp:266
#10 0xb29dfba8 in ?? () from /usr/lib/nvidia-current/libGL.so.1

Thread 6 (Thread 0xa20a4b70 (LWP 11798)):
#0  0xb7813424 in __kernel_vsyscall ()
#1  0xb4701884 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb58a6df4 in pthread_cond_timedwait () from /lib/libc.so.6
#3  0xb5a9094f in wait (this=0x9fb1dc4, mutex=0x9fb1dc0, time=30000) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=0x9fb1dc4, mutex=0x9fb1dc0, time=30000) at thread/qwaitcondition_unix.cpp:160
#5  0xb5a845b3 in QThreadPoolThread::run (this=0x9d01038) at concurrent/qthreadpool.cpp:140
#6  0xb5a8fdf9 in QThreadPrivate::start (arg=0x9d01038) at thread/qthread_unix.cpp:266
#7  0xb29dfba8 in ?? () from /usr/lib/nvidia-current/libGL.so.1

Thread 5 (Thread 0x9f342b70 (LWP 11809)):
#0  0xb7813424 in __kernel_vsyscall ()
#1  0xb588adf6 in poll () from /lib/libc.so.6
#2  0xb453fa1b in g_poll () from /lib/libglib-2.0.so.0
#3  0xb453243c in ?? () from /lib/libglib-2.0.so.0
#4  0xb4532ba7 in g_main_loop_run () from /lib/libglib-2.0.so.0
#5  0xb08d69c4 in ?? () from /usr/lib/libgio-2.0.so.0
#6  0xb455948f in ?? () from /lib/libglib-2.0.so.0
#7  0xb29dfba8 in ?? () from /usr/lib/nvidia-current/libGL.so.1

Thread 4 (Thread 0x9e340b70 (LWP 11811)):
#0  0xb7813424 in __kernel_vsyscall ()
#1  0xb4701884 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb58a6df4 in pthread_cond_timedwait () from /lib/libc.so.6
#3  0xb5a9094f in wait (this=0xa6c5f44, mutex=0xa6c5f40, time=30000) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=0xa6c5f44, mutex=0xa6c5f40, time=30000) at thread/qwaitcondition_unix.cpp:160
#5  0xb5a845b3 in QThreadPoolThread::run (this=0xa0ad0e8) at concurrent/qthreadpool.cpp:140
#6  0xb5a8fdf9 in QThreadPrivate::start (arg=0xa0ad0e8) at thread/qthread_unix.cpp:266
#7  0xb29dfba8 in ?? () from /usr/lib/nvidia-current/libGL.so.1

Thread 3 (Thread 0x9ca85b70 (LWP 11825)):
#0  0xb7813424 in __kernel_vsyscall ()
#1  0xb4701884 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib/libpthread.so.0
#2  0xb58a6df4 in pthread_cond_timedwait () from /lib/libc.so.6
#3  0xb5a9094f in wait (this=0xa6c5f44, mutex=0xa6c5f40, time=30000) at thread/qwaitcondition_unix.cpp:86
#4  QWaitCondition::wait (this=0xa6c5f44, mutex=0xa6c5f40, time=30000) at thread/qwaitcondition_unix.cpp:160
#5  0xb5a845b3 in QThreadPoolThread::run (this=0xa6a11b8) at concurrent/qthreadpool.cpp:140
#6  0xb5a8fdf9 in QThreadPrivate::start (arg=0xa6a11b8) at thread/qthread_unix.cpp:266
#7  0xb29dfba8 in ?? () from /usr/lib/nvidia-current/libGL.so.1

Thread 2 (Thread 0xa98fab70 (LWP 11831)):
#0  0xb40bea65 in pa_mainloop_iterate () from /usr/lib/libpulse.so.0
#1  0xb40beb44 in pa_mainloop_run () from /usr/lib/libpulse.so.0
#2  0xb40d0303 in ?? () from /usr/lib/libpulse.so.0
#3  0xb24fbbd5 in ?? () from /usr/lib/libpulsecommon-0.9.21.so
#4  0xb29dfba8 in ?? () from /usr/lib/nvidia-current/libGL.so.1

Thread 1 (Thread 0xb056b780 (LWP 11789)):
[KCrash Handler]
#7  Phonon::Gstreamer::Backend::logMessage (this=0x0, message=..., priority=2, obj=0x99f3ee0) at ../../gstreamer/backend.cpp:469
#8  0xadac75cc in Phonon::Gstreamer::MediaObject::changeState (this=0x99f3ee0, newstate=Phonon::ErrorState) at ../../gstreamer/mediaobject.cpp:763
#9  0xadacd479 in Phonon::Gstreamer::MediaObject::handleBusMessage (this=0x99f3ee0, message=...) at ../../gstreamer/mediaobject.cpp:1494
#10 0xadab893e in Phonon::Gstreamer::Backend::handleBusMessage (this=0x9d008e8, message=...) at ../../gstreamer/backend.cpp:435
#11 0xadab89e9 in Phonon::Gstreamer::Backend::qt_metacall (this=0x9d008e8, _c=QMetaObject::InvokeMetaMethod, _id=5, _a=0xa879ce0) at ./moc_backend.cpp:82
#12 0xb5b978ca in QMetaObject::metacall (object=0x9d008e8, cl=162895873, idx=5, argv=0xa879ce0) at kernel/qmetaobject.cpp:237
#13 0xb5ba2df6 in QMetaCallEvent::placeMetaCall (this=0xa8c9558, object=0x9d008e8) at kernel/qobject.cpp:534
#14 0xb5ba46a2 in QObject::event (this=0x9d008e8, e=0xbfe0edac) at kernel/qobject.cpp:1219
#15 0xb6097fdc in QApplicationPrivate::notify_helper (this=0x9b4a358, receiver=0x9d008e8, e=0xa8c9558) at kernel/qapplication.cpp:4396
#16 0xb609e04e in QApplication::notify (this=0xbfe0f8c8, receiver=0x9d008e8, e=0xa8c9558) at kernel/qapplication.cpp:3798
#17 0xb760339a in KApplication::notify (this=0xbfe0f8c8, receiver=0x9d008e8, event=0xa8c9558) at ../../kdeui/kernel/kapplication.cpp:311
#18 0xb5b91b3b in QCoreApplication::notifyInternal (this=0xbfe0f8c8, receiver=0x9d008e8, event=0xa8c9558) at kernel/qcoreapplication.cpp:732
#19 0xb5b94d8b in sendEvent (receiver=0x0, event_type=0, data=0x9a1b248) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#20 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x9a1b248) at kernel/qcoreapplication.cpp:1373
#21 0xb5b94f4d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1266
#22 0xb5bc0a74 in sendPostedEvents (s=0x9b48eb0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#23 postEventSourceDispatch (s=0x9b48eb0) at kernel/qeventdispatcher_glib.cpp:277
#24 0xb452e855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#25 0xb4532668 in ?? () from /lib/libglib-2.0.so.0
#26 0xb4532848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#27 0xb5bc0565 in QEventDispatcherGlib::processEvents (this=0x9b307e0, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#28 0xb6159be5 in QGuiEventDispatcherGlib::processEvents (this=0x9b307e0, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#29 0xb5b90609 in QEventLoop::processEvents (this=0xbfe0f824, flags=) at kernel/qeventloop.cpp:149
#30 0xb5b90a8a in QEventLoop::exec (this=0xbfe0f824, flags=...) at kernel/qeventloop.cpp:201
#31 0xb5b9500f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#32 0xb6096e07 in QApplication::exec () at kernel/qapplication.cpp:3672
#33 0x08050dcd in _start ()

Reported using DrKonqi
Comment 1 Daniel Hahler 2010-12-14 04:37:32 UTC
This crash is not reproducible: when starting Amarok again it worked OK.
Comment 2 Myriam Schweingruber 2010-12-14 16:27:10 UTC
The problem is with the Phonon Gstreamer backend apparently. Closing for now, feel free to report this to Phonon if the bug reappears.
Comment 3 Daniel Hahler 2010-12-15 02:01:56 UTC
Created attachment 54564 [details]
New crash information added by DrKonqi

amarok (2.3.90) on KDE Platform 4.5.85 (4.6 Beta2) using Qt 4.7.0

Happened again, this time during playback (after several hours).

Do you know where Phonon bugs belong? Can you forward it accordingly?

-- Backtrace (Reduced):
#7  Phonon::Gstreamer::Backend::logMessage (this=0x0, message=..., priority=2, obj=0x9a61810) at ../../gstreamer/backend.cpp:469
#8  0xad9a75cc in Phonon::Gstreamer::MediaObject::changeState (this=0x9a61810, newstate=Phonon::ErrorState) at ../../gstreamer/mediaobject.cpp:763
#9  0xad9ad479 in Phonon::Gstreamer::MediaObject::handleBusMessage (this=0x9a61810, message=...) at ../../gstreamer/mediaobject.cpp:1494
#10 0xad99893e in Phonon::Gstreamer::Backend::handleBusMessage (this=0x9d0b2a8, message=...) at ../../gstreamer/backend.cpp:435
#11 0xad9989e9 in Phonon::Gstreamer::Backend::qt_metacall (this=0x9d0b2a8, _c=QMetaObject::InvokeMetaMethod, _id=5, _a=0xb3be830) at ./moc_backend.cpp:82
Comment 4 Harald Sitter 2010-12-15 03:42:32 UTC
You did not by chance switch the phonon backend around the time the crash appeared?
Comment 5 aelgali 2010-12-15 06:29:00 UTC
Created attachment 54565 [details]
New crash information added by DrKonqi

amarok (2.3.90) on KDE Platform 4.5.85 (4.6 Beta2) using Qt 4.7.0

- What I was doing when the application crashed:
Playing mp3
- Custom settings of the application:
I changed the backend of phonon to use gstreamer instead of XINE

-- Backtrace (Reduced):
#6  Phonon::Gstreamer::Backend::logMessage (this=0x0, message=..., priority=2, obj=0x6c2b30) at ../../gstreamer/backend.cpp:469
#7  0x00007f2e350ece5f in Phonon::Gstreamer::MediaObject::changeState (this=0x6c2b30, newstate=<value optimized out>) at ../../gstreamer/mediaobject.cpp:763
#8  0x00007f2e350f23e1 in Phonon::Gstreamer::MediaObject::handleBusMessage (this=0x6c2b30, message=<value optimized out>) at ../../gstreamer/mediaobject.cpp:1498
#9  0x00007f2e350df5b6 in Phonon::Gstreamer::Backend::qt_metacall (this=0x984a00, _c=<value optimized out>, _id=<value optimized out>, _a=0x20f6380) at ./moc_backend.cpp:82
#10 0x00007f2e4f23cbde in QObject::event (this=0x984a00, e=0x0) at kernel/qobject.cpp:1219
Comment 6 Daniel Hahler 2010-12-15 17:47:10 UTC
No, Harald, I was not changing the Phonon backend.
But I have just tried that, which caused other crashes; see bug 259972 and bug 259973.
Comment 7 Myriam Schweingruber 2010-12-29 01:01:41 UTC
*** Bug 261356 has been marked as a duplicate of this bug. ***
Comment 8 Myriam Schweingruber 2011-01-05 01:30:19 UTC
*** Bug 262045 has been marked as a duplicate of this bug. ***
Comment 9 Myriam Schweingruber 2011-01-05 02:20:30 UTC
*** Bug 262090 has been marked as a duplicate of this bug. ***
Comment 10 Harald Sitter 2011-01-05 03:07:40 UTC
All possible cases of this crash ought to be fixed in phonon-gstreamer from git master. Soon to be released as 4.4.4.
Also it requires phonon from either the 4.4 branch or master.

For the record: the ultimate cause for this was that Amarok deletes the MediaObject once Phonon goes into error state. Which depending on the precise situation would either delete the MO while another thread was still working on it, or delete it while there were still pending messages for processing (such as in the initial report).
That said, there is still a chance that I missed one case where Amarok pulls away the MO while something else is working on it, however very unlikely. Phonon now only forwards statechanges to the API consumer once the MO returns to the eventloop (i.e. is done with the current task).
Comment 11 Myriam Schweingruber 2011-01-06 12:53:19 UTC
*** Bug 262240 has been marked as a duplicate of this bug. ***
Comment 12 Myriam Schweingruber 2011-01-15 17:47:42 UTC
*** Bug 263211 has been marked as a duplicate of this bug. ***
Comment 13 Myriam Schweingruber 2011-01-16 17:48:46 UTC
*** Bug 263302 has been marked as a duplicate of this bug. ***
Comment 14 Myriam Schweingruber 2011-01-19 10:29:40 UTC
*** Bug 263471 has been marked as a duplicate of this bug. ***
Comment 15 Myriam Schweingruber 2011-01-21 16:33:28 UTC
*** Bug 263885 has been marked as a duplicate of this bug. ***
Comment 16 Myriam Schweingruber 2011-01-23 10:43:34 UTC
*** Bug 264004 has been marked as a duplicate of this bug. ***
Comment 17 Myriam Schweingruber 2011-01-26 00:31:39 UTC
*** Bug 264305 has been marked as a duplicate of this bug. ***
Comment 18 Harald Sitter 2011-01-27 16:23:24 UTC
Since I just looked them up. These 3 revisions ought to be fixing this problem with 4.4.3 (in case someone wants to backport them for their distro):
* https://projects.kde.org/projects/kdesupport/phonon/phonon/repository/revisions/febb6135f5137bdaafbf9ce7502a5a3a8c264d83
* https://projects.kde.org/projects/kdesupport/phonon/phonon/repository/revisions/ec759e8a39a87a26ef4f047c067492cb16ba5ddc
* https://projects.kde.org/projects/kdesupport/phonon/phonon-gstreamer/repository/revisions/0ef1c476ee5cac06c0cc2d5ccad1c5aad2e2408c

The first two prevent Amarok from eating the MediaObject while it is still doing things by queuing the signal emission until the MO is done with whatever it is doing. The third prevents crashes from a gstreamer message bus calling back to an already dead MO.
Comment 19 Myriam Schweingruber 2011-01-28 15:09:22 UTC
*** Bug 264558 has been marked as a duplicate of this bug. ***
Comment 20 Myriam Schweingruber 2011-02-02 19:40:19 UTC
*** Bug 265172 has been marked as a duplicate of this bug. ***
Comment 21 Pino Toscano 2011-02-10 10:20:22 UTC
*** Bug 265962 has been marked as a duplicate of this bug. ***
Comment 22 Myriam Schweingruber 2011-02-25 11:12:53 UTC
*** Bug 267137 has been marked as a duplicate of this bug. ***
Comment 23 Myriam Schweingruber 2011-03-08 12:51:44 UTC
*** Bug 267506 has been marked as a duplicate of this bug. ***
Comment 24 Myriam Schweingruber 2011-03-19 04:15:18 UTC
*** Bug 268434 has been marked as a duplicate of this bug. ***
Comment 25 Kevin Funk 2011-03-27 11:48:11 UTC
*** Bug 269513 has been marked as a duplicate of this bug. ***
Comment 26 Kevin Funk 2011-03-27 11:48:32 UTC
*** Bug 269514 has been marked as a duplicate of this bug. ***
Comment 27 Myriam Schweingruber 2011-03-31 11:56:13 UTC
*** Bug 269811 has been marked as a duplicate of this bug. ***
Comment 28 Myriam Schweingruber 2011-04-27 21:18:32 UTC
reassigning to the new bugzilla product for better bug tracing of the various backends. Sorry for the noise.
Comment 29 Kevin Funk 2011-07-23 10:22:12 UTC
*** Bug 278273 has been marked as a duplicate of this bug. ***