Bug 266614 - ASSERT: "m_state == BufferingState" in file ../../xine/mediaobject.cpp, line 235
Summary: ASSERT: "m_state == BufferingState" in file ../../xine/mediaobject.cpp, line 235
Status: RESOLVED DUPLICATE of bug 219241
Alias: None
Product: amarok
Classification: Applications
Component: general (show other bugs)
Version: 2.4.0
Platform: Ubuntu Linux
: NOR crash
Target Milestone: 2.4.1
Assignee: Amarok Developers
URL:
Keywords:
: 266800 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-02-18 16:34 UTC by Slava Sysoltsev
Modified: 2011-02-25 10:55 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments
Full stacktrace on crash with phonon dbg installed (26.96 KB, text/plain)
2011-02-24 13:32 UTC, Slava Sysoltsev
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Slava Sysoltsev 2011-02-18 16:34:40 UTC
Version:           2.4.0 (using KDE 4.6.0) 
OS:                Linux

Playing the music with amarok I get the assertion and amarok ends sometimes:

ASSERT: "m_state == BufferingState" in file ../../xine/mediaobject.cpp, line 235
KCrash: Application 'amarok' crashing...
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit
sock_file=/home/vsysolts/.kde/socket-vsysolts-laptop-ubuntu/kdeinit4__0
QSocketNotifier: Invalid socket 46 and type 'Read', disabling...
Assertion 'pa_close(fds[0]) == 0' failed at pulsecore/core-util.c:2215, function pa_close_pipe(). Aborting.

It happens without any obvious reason.

Reproducible: Sometimes

Steps to Reproduce:
Just play the music with amarok

Actual Results:  
crash

Expected Results:  
work further
Comment 1 Myriam Schweingruber 2011-02-19 13:59:37 UTC
Could you please provide a complete backtrace?
Comment 2 Slava Sysoltsev 2011-02-21 11:34:18 UTC
Well, I'l be starting amarok in gdb, if I get this once more I post the stacktrace.
Comment 3 Myriam Schweingruber 2011-02-21 12:28:32 UTC
*** Bug 266800 has been marked as a duplicate of this bug. ***
Comment 4 Slava Sysoltsev 2011-02-21 17:11:58 UTC
Murphy's law - no crash in debugger today ;) I'll keep trying.
Comment 5 Slava Sysoltsev 2011-02-22 09:12:16 UTC
here we are:

amarok: END__: void Albums::dataUpdated(const QString&, const QHash<QString, QVariant>&) [Took: 0.56s] 
amarok: BEGIN: void CurrentTrack::dataUpdated(const QString&, const QHash<QString, QVariant>&) 
amarok:   BEGIN: void CurrentTrack::resizeCover(const QPixmap&, qreal) 
params.c:OpenConfFile() - Unable to open configuration file "/home/vsysolts/.smb/smb.conf.append":
	No such file or directory
[New LWP 2068]
amarok:   END__: void CurrentTrack::resizeCover(const QPixmap&, qreal) [Took: 0.28s] 
amarok: END__: void CurrentTrack::dataUpdated(const QString&, const QHash<QString, QVariant>&) [Took: 0.29s] 
amarok: BEGIN: void LyricsApplet::dataUpdated(const QString&, const QHash<QString, QVariant>&) 
amarok: END__: void LyricsApplet::dataUpdated(const QString&, const QHash<QString, QVariant>&) [Took: 0s] 
ASSERT: "m_state == BufferingState" in file ../../xine/mediaobject.cpp, line 235

Program received signal SIGABRT, Aborted.
0x0012e416 in __kernel_vsyscall ()
(gdb) thread apply all bt

Thread 5 (LWP 2068):
#0  0x0012e416 in __kernel_vsyscall ()
#1  0x032234ad in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:142
#2  0x020e9d9d in __pthread_cond_wait (cond=0x836f3f8, mutex=0x836f3d8) at forward.c:139
#3  0x0529963c in pa_cond_wait () from /usr/lib/libpulsecommon-0.9.21.so
#4  0x03754c20 in pa_threaded_mainloop_wait () from /usr/lib/libpulse.so.0
#5  0x079da0b6 in ?? () from /usr/lib/xine/plugins/1.28/xineplug_ao_out_pulseaudio.so
#6  0x0000ac44 in ?? ()
#7  0x00000002 in ?? ()
#8  0x08c5b280 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Thread 4 (LWP 1985):
#0  0x0012e416 in __kernel_vsyscall ()
#1  0x020cddf6 in __poll (fds=0x2164ff4, nfds=1, timeout=49) at ../sysdeps/unix/sysv/linux/poll.c:87
#2  0x033b6a1b in g_poll () from /lib/libglib-2.0.so.0
#3  0x033a943c in ?? () from /lib/libglib-2.0.so.0
#4  0x033a9848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#5  0x01dff565 in QEventDispatcherGlib::processEvents (this=0x8314ad8, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#6  0x01dcf609 in QEventLoop::processEvents (this=0xb04fd220, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:149
#7  0x01dcfa8a in QEventLoop::exec (this=0xb04fd220, flags=...) at kernel/qeventloop.cpp:201
#8  0x01ccbb7e in QThread::exec (this=0x8315268) at thread/qthread.cpp:490
---Type <return> to continue, or q <return> to quit---
#9  0x06adbd7a in ?? () from /usr/lib/qt4/plugins/phonon_backend/phonon_xine.so
#10 0x01ccedf9 in QThreadPrivate::start (arg=0x8315268) at thread/qthread_unix.cpp:266
#11 0x0321ecc9 in start_thread (arg=0xb04fdb70) at pthread_create.c:304
#12 0x020dc69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 3 (LWP 1997):
#0  0x0012e416 in __kernel_vsyscall ()
#1  0x032234dc in pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_wait.S:169
#2  0x020e9d9d in __pthread_cond_wait (cond=0x8a5eb50, mutex=0x8a5eb38) at forward.c:139
#3  0x01ccf9c7 in wait (this=0x8a5ea58, mutex=0x8a4b140, time=4294967295) at thread/qwaitcondition_unix.cpp:88
#4  QWaitCondition::wait (this=0x8a5ea58, mutex=0x8a4b140, time=4294967295) at thread/qwaitcondition_unix.cpp:160
#5  0x02913520 in ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x8a5ea40, th=0x8a3a598) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#6  0x02916ccc in ThreadWeaver::WorkingHardState::waitForAvailableJob (this=0x8a68fb0, th=0x8a3a598) at ../../../threadweaver/Weaver/WorkingHardState.cpp:80
#7  0x02912a4b in ThreadWeaver::WeaverImpl::waitForAvailableJob (this=0x8a5ea40, th=0x8a3a598) at ../../../threadweaver/Weaver/WeaverImpl.cpp:356
#8  0x02916dc2 in ThreadWeaver::WorkingHardState::applyForWork (this=0x8a68fb0, th=0x8a3a598) at ../../../threadweaver/Weaver/WorkingHardState.cpp:71
#9  0x02913a23 in ThreadWeaver::WeaverImpl::applyForWork (this=0x8a5ea40, th=0x8a3a598, previous=0x8afaef0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:351
#10 0x02914e4e in ThreadWeaver::ThreadRunHelper::run (this=0xa605e294, parent=0x8a5ea40, th=0x8a3a598) at ../../../threadweaver/Weaver/Thread.cpp:87
#11 0x0291556b in ThreadWeaver::Thread::run (this=0x8a3a598) at ../../../threadweaver/Weaver/Thread.cpp:142
#12 0x01ccedf9 in QThreadPrivate::start (arg=0x8a3a598) at thread/qthread_unix.cpp:266
#13 0x0321ecc9 in start_thread (arg=0xa605eb70) at pthread_create.c:304
#14 0x020dc69e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (LWP 1942):
---Type <return> to continue, or q <return> to quit---
#0  0x0012e416 in __kernel_vsyscall ()
#1  0x02036941 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0x02039e42 in abort () at abort.c:92
#3  0x01cc52dc in qt_message_output (msgType=QtFatalMsg, buf=0x8c92e38 "ASSERT: \"m_state == BufferingState\" in file ../../xine/mediaobject.cpp, line 235")
    at global/qglobal.cpp:2259
#4  0x01cc54aa in qt_message (msgType=<value optimized out>, msg=0x1e3da7c "ASSERT: \"%s\" in file %s, line %d", 
    ap=0xbfffe104 "xg\262\006]g\262\006", <incomplete sequence \353>) at global/qglobal.cpp:2305
#5  0x01cc55b9 in qFatal (msg=0x1e3da7c "ASSERT: \"%s\" in file %s, line %d") at global/qglobal.cpp:2488
#6  0x01cc5645 in qt_assert (assertion=0x6b26778 "m_state == BufferingState", file=0x6b2675d "../../xine/mediaobject.cpp", line=235) at global/qglobal.cpp:2004
#7  0x06aff4a1 in ?? () from /usr/lib/qt4/plugins/phonon_backend/phonon_xine.so
#8  0x06affe53 in ?? () from /usr/lib/qt4/plugins/phonon_backend/phonon_xine.so
#9  0x01dd68ca in QMetaObject::metacall (object=0x8316e60, cl=1942, idx=21, argv=0x0) at kernel/qmetaobject.cpp:237
#10 0x01de1df6 in QMetaCallEvent::placeMetaCall (this=0x9f3e4258, object=0x8316e60) at kernel/qobject.cpp:534
#11 0x01de36a2 in QObject::event (this=0x8316e60, e=0x6) at kernel/qobject.cpp:1219
#12 0x01028fdc in QApplicationPrivate::notify_helper (this=0x8163d30, receiver=0x8316e60, e=0x9f3e4258) at kernel/qapplication.cpp:4396
#13 0x0102f04e in QApplication::notify (this=0xbfffea68, receiver=0x8316e60, e=0x9f3e4258) at kernel/qapplication.cpp:3798
#14 0x00338f7a in KApplication::notify (this=0xbfffea68, receiver=0x8316e60, event=0x9f3e4258) at ../../kdeui/kernel/kapplication.cpp:311
#15 0x01dd0b3b in QCoreApplication::notifyInternal (this=0xbfffea68, receiver=0x8316e60, event=0x9f3e4258) at kernel/qcoreapplication.cpp:732
#16 0x01dd3d8b in sendEvent (receiver=0x0, event_type=0, data=0x8065178) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#17 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x8065178) at kernel/qcoreapplication.cpp:1373
#18 0x01dd3f4d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1266
#19 0x01dffa74 in sendPostedEvents (s=0x8164f00) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#20 postEventSourceDispatch (s=0x8164f00) at kernel/qeventdispatcher_glib.cpp:277
---Type <return> to continue, or q <return> to quit---
#21 0x033a5855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#22 0x033a9668 in ?? () from /lib/libglib-2.0.so.0
#23 0x033a9848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#24 0x01dff565 in QEventDispatcherGlib::processEvents (this=0x8064c28, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#25 0x010eabe5 in QGuiEventDispatcherGlib::processEvents (this=0x8064c28, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#26 0x01dcf609 in QEventLoop::processEvents (this=0xbfffe9c4, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:149
#27 0x01dcfa8a in QEventLoop::exec (this=0xbfffe9c4, flags=...) at kernel/qeventloop.cpp:201
#28 0x01dd400f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#29 0x01027e07 in QApplication::exec () at kernel/qapplication.cpp:3672
#30 0x08050e75 in main (argc=3, argv=0xbffff424) at ../../src/main.cpp:268
Comment 6 Myriam Schweingruber 2011-02-22 09:30:04 UTC
Thank you for the fast feedback. Unfortunately you do not have debugging symbols installed for Phonon backends which are available, could you please install those and try again?
Comment 7 Slava Sysoltsev 2011-02-24 13:32:32 UTC
Created attachment 57498 [details]
Full stacktrace on crash with phonon dbg installed

The stacktrace is attached.
The main thread where assertion fails is:
Thread 1 (Thread 0xb7fcf770 (LWP 1774)):
#0  0x0012e416 in __kernel_vsyscall ()
#1  0x02036941 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0x02039e42 in abort () at abort.c:92
#3  0x01cc52dc in qt_message_output (msgType=QtFatalMsg, buf=0x8e68c50 "ASSERT: \"m_state == BufferingState\" in file ../../xine/mediaobject.cpp, line 235")
    at global/qglobal.cpp:2259
#4  0x01cc54aa in qt_message (msgType=<value optimized out>, msg=0x1e3da7c "ASSERT: \"%s\" in file %s, line %d", 
    ap=0xbfffe104 "xg\262\006]g\262\006", <incomplete sequence \353>) at global/qglobal.cpp:2305
#5  0x01cc55b9 in qFatal (msg=0x1e3da7c "ASSERT: \"%s\" in file %s, line %d") at global/qglobal.cpp:2488
#6  0x01cc5645 in qt_assert (assertion=0x6b26778 "m_state == BufferingState", file=0x6b2675d "../../xine/mediaobject.cpp", line=235)
    at global/qglobal.cpp:2004
#7  0x06aff4a1 in Phonon::Xine::MediaObject::handleStateChange (this=0x83173d0, newstate=Phonon::PlayingState, oldstate=Phonon::LoadingState)
    at ../../xine/mediaobject.cpp:235
#8  0x06affe53 in Phonon::Xine::MediaObject::qt_metacall (this=0x83173d0, _c=QMetaObject::InvokeMetaMethod, _id=21, _a=0x9e4e3160) at ./mediaobject.moc:164
#9  0x01dd68ca in QMetaObject::metacall (object=0x83173d0, cl=1774, idx=25, argv=0x9e4e3160) at kernel/qmetaobject.cpp:237
#10 0x01de1df6 in QMetaCallEvent::placeMetaCall (this=0x9e4e6508, object=0x83173d0) at kernel/qobject.cpp:534
#11 0x01de36a2 in QObject::event (this=0x83173d0, e=0x6) at kernel/qobject.cpp:1219
#12 0x01028fdc in QApplicationPrivate::notify_helper (this=0x8163db8, receiver=0x83173d0, e=0x9e4e6508) at kernel/qapplication.cpp:4396
#13 0x0102f04e in QApplication::notify (this=0xbfffea68, receiver=0x83173d0, e=0x9e4e6508) at kernel/qapplication.cpp:3798
#14 0x00338f7a in KApplication::notify (this=0xbfffea68, receiver=0x83173d0, event=0x9e4e6508) at ../../kdeui/kernel/kapplication.cpp:311
#15 0x01dd0b3b in QCoreApplication::notifyInternal (this=0xbfffea68, receiver=0x83173d0, event=0x9e4e6508) at kernel/qcoreapplication.cpp:732
#16 0x01dd3d8b in sendEvent (receiver=0x0, event_type=0, data=0x8065178) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#17 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x8065178) at kernel/qcoreapplication.cpp:1373
#18 0x01dd3f4d in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at kernel/qcoreapplication.cpp:1266
#19 0x01dffa74 in sendPostedEvents (s=0x8167b08) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#20 postEventSourceDispatch (s=0x8167b08) at kernel/qeventdispatcher_glib.cpp:277
#21 0x033a5855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#22 0x033a9668 in ?? () from /lib/libglib-2.0.so.0
#23 0x033a9848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#24 0x01dff565 in QEventDispatcherGlib::processEvents (this=0x8064c28, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#25 0x010eabe5 in QGuiEventDispatcherGlib::processEvents (this=0x8064c28, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#26 0x01dcf609 in QEventLoop::processEvents (this=0xbfffe9c4, flags=DWARF-2 expression error: DW_OP_reg operations must be used either alone or in conjuction with DW_OP_piece or DW_OP_bit_piece.
) at kernel/qeventloop.cpp:149
#27 0x01dcfa8a in QEventLoop::exec (this=0xbfffe9c4, flags=...) at kernel/qeventloop.cpp:201
#28 0x01dd400f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#29 0x01027e07 in QApplication::exec () at kernel/qapplication.cpp:3672
#30 0x08050e75 in main (argc=3, argv=0xbffff424) at ../../src/main.cpp:268
(gdb) up 7
#7  0x06aff4a1 in Phonon::Xine::MediaObject::handleStateChange (this=0x83173d0, newstate=Phonon::PlayingState, oldstate=Phonon::LoadingState)
    at ../../xine/mediaobject.cpp:235
235	../../xine/mediaobject.cpp: No such file or directory.
	in ../../xine/mediaobject.cpp
(gdb) p *this
$1 = {<QObject> = {_vptr.QObject = 0x6b2ce88, static staticMetaObject = {d = {superdata = 0x0, stringdata = 0x1e98d80 "QObject", data = 0x1e98e20, 
        extradata = 0x1efe240}}, d_ptr = {d = 0x8316968}, static staticQtMetaObject = {d = {superdata = 0x0, stringdata = 0x1ea18c0 "Qt", data = 0x1ea5000, 
        extradata = 0x0}}}, <Phonon::MediaObjectInterface> = {_vptr.MediaObjectInterface = 0x6b2cf28}, <Phonon::AddonInterface> = {
    _vptr.AddonInterface = 0x6b2cf8c}, <Phonon::Xine::SourceNode> = {_vptr.SourceNode = 0x6b2cfa4, m_threadSafeObject = {d = 0x836d800}, m_sinks = {q_hash = {
        {d = 0x836cd28, e = 0x836cd28}}}}, static staticMetaObject = {d = {superdata = 0x1efe230, stringdata = 0x6b271e0 "Phonon::Xine::MediaObject", 
      data = 0x6b27820, extradata = 0x0}}, m_state = Phonon::LoadingState, m_stream = 0x836d7f8, m_tickInterval = 100, m_bytestream = {o = 0x0}, 
  m_currentTimeOverride = 7274612, m_mediaSource = {d = {d = 0x8c4c2a8}}, m_titles = {{p = {static shared_null = {ref = {_q_value = 1}, alloc = 0, begin = 0, 
          end = 0, sharable = 1, array = {0x0}}, d = 0x805b0d0}, d = 0x805b0d0}}, m_mediaDevice = {static shared_null = {ref = {_q_value = 1}, alloc = 0, 
      size = 0, data = 0x805b110 "", array = ""}, static shared_empty = {ref = {_q_value = 139}, alloc = 0, size = 0, data = 0x1f043b8 "", array = ""}, 
    d = 0x805b100}, m_currentTitle = 1, m_prefinishMark = 2000, m_transitionTime = 0, m_autoplayTitles = true, m_waitingForNextSource = false}
(gdb) 

It seems like phonon backend is switched to playing state before it could initialize itself up
Comment 8 Slava Sysoltsev 2011-02-24 13:37:46 UTC
Oh, forgot to mention, the last two times I caught this issue were when the amarok just started after laptop boot. The original issue has happened just playing music nevertheless, but I couldn't catch it anymore (has some update this week, maybe tied together). I'll let you know if I can reproduce the issue not just after amarok starts as well.
Comment 9 Slava Sysoltsev 2011-02-24 13:43:26 UTC
One more notice: I'm actually running gnome desktop, maybe phonon-xine backend starts first with amarok and thus require some time to get up
Comment 10 Myriam Schweingruber 2011-02-25 10:55:40 UTC
This is indeed a duplicate of a Phonon backend xine problem. Could you please try with either Phonon gstreamer backend (gstreamer is default for the Gnome desktop) or the vlc backend?

*** This bug has been marked as a duplicate of bug 219241 ***