Version: (using KDE KDE 3.4.0) Installed from: Gentoo Packages OS: Linux Hi, Just compiled kdemultimedia 3.4, and juk freezes when you change the output method (arts, akode, gstreamer) more than once. If you kill/start it again and change to each method they all seem to work, just changing between them causes the crash.
Yeah, I've got the same here. I'm not sure exactly why it happens, but it seems ugly. The couple of times that I tried to catch it in gdb it seemed like a race condition or something of the sort.
I have same problem here with KDE and Juk from SVN. This is what I get on AMD64 system after runing gdb, attach, where (if it is of any help at all): #0 0x00002aaaae9bf354 in QGList::next (this=0x859f50) at qglist.cpp:869 #1 0x00002aaaae6b06c3 in QPtrList<TimerInfo>::next (this=0x859f50) at qptrlist.h:111 #2 0x00002aaaae6aef4f in insertTimer (ti=0x11b4040) at qeventloop_unix.cpp:178 #3 0x00002aaaae6af595 in qStartTimer (interval=50, obj=0x1ad1b60) at qeventloop_unix.cpp:301 #4 0x00002aaaae71bb0f in QObject::startTimer (this=0x1ad1b60, interval=50) at qobject.cpp:999 #5 0x00002aaaae740146 in QTimer::start (this=0x1ad1b60, msec=50, sshot=false) at qtimer.cpp:172 #6 0x00002aaaae22273d in QTimeWatch (this=0x1ad8920, milliseconds=50, notify=0x1a77cd0) at /home/kdedev/src/kde/arts/qtmcop/qiomanager.cc:89 #7 0x00002aaaae22331d in Arts::QIOManager::addTimer (this=0x859f50, milliseconds=50, notify=0x1a77cd0) at stl_list.h:785 #8 0x00002aaaae223636 in Arts::HandleNotificationsStartup::startup (this=0x2aaaae325ab0) at dispatcher.h:108 #9 0x00002aaab134e1dd in Arts::StartupManager::startup () at stl_list.h:131 #10 0x00002aaab1336022 in Dispatcher (this=0x1abe4c0, ioManager=0x1acea80, startServer=4293380336) at /home/kdedev/src/kde/arts/mcop/dispatcher.cc:221 #11 0x00002aaaac99c95c in KArtsDispatcher (this=0x2aaaacad1788, parent=0x11b4058, name=0x859f50 "ĐăÖŽŞ*") at /home/kdedev/src/kde/kdelibs/arts/kde/kartsdispatcher.cc:42 #12 0x000000000046f89a in ArtsPlayer::setupPlayer (this=0x1ac0560) at /home/kdedev/src/kde/kdemultimedia/juk/artsplayer.cpp:250 #13 0x000000000046f9a4 in ArtsPlayer (this=0x1ac0560) at /home/kdedev/src/kde/kdemultimedia/juk/artsplayer.cpp:53 #14 0x00000000004b2adb in createPlayer (system=8757072) at /home/kdedev/src/kde/kdemultimedia/juk/playermanager.cpp:72 #15 0x00000000004b37c2 in PlayerManager::setOutput (this=0x8777a0, system=@0x7fffffe7cb90) at /home/kdedev/src/kde/kdemultimedia/juk/playermanager.cpp:541 #16 0x00000000004b4375 in PlayerManager::setup (this=0x8777a0) at /home/kdedev/src/kde/kdemultimedia/juk/playermanager.cpp:626 #17 0x00000000004b51f5 in PlayerManager::qt_invoke (this=0x8777a0, _id=22, _o=0x7fffffe7cca0) at qucom_p.h:449 #18 0x00002aaaae71e074 in QObject::activate_signal (this=0x88a640, clist=0x9285d0, o=0x7fffffe7cca0) at qobject.cpp:2379 #19 0x00002aaaae71e614 in QObject::activate_signal (this=0x88a640, signal=6, param= {static null = {static null = <same as static member of an already seen type>, d = 0x6889e0, static shared_null = 0x6889e0}, d = 0x88ab40, static shared_null = 0x6889e0}) at qobject.cpp:2450 #20 0x00002aaaad167fc7 in KSelectAction::activated (this=0x88a640, t0=@0x11b4058) at qmetaobject.h:261 #21 0x00002aaaad16818a in KSelectAction::slotActivated (this=0x88a640) at /home/kdedev/src/kde/kdelibs/kdeui/kactionclasses.cpp:800 #22 0x00002aaaad16846f in KSelectAction::qt_invoke (this=0x88a640, _id=25, _o=0x7fffffe7cec0) at kactionclasses.moc:357 #23 0x00002aaaae71df3f in QObject::activate_signal (this=0x9145c0, clist=0xa28270, o=0x7fffffe7cec0) at qobject.cpp:2355 #24 0x00002aaaaea4080e in QSignal::signal (this=0x9145c0, t0=@0x914610) at moc_qsignal.cpp:100 #25 0x00002aaaae739857 in QSignal::activate (this=0x9145c0) at qsignal.cpp:212 #26 0x00002aaaae7404e8 in QSingleShotTimer::event (this=0x914570) at qtimer.cpp:286 #27 0x00002aaaae6c0a5c in QApplication::internalNotify (this=0x7fffffe7d650, receiver=0x914570, e=0x7fffffe7d270) at qapplication.cpp:2635 #28 0x00002aaaae6c0079 in QApplication::notify (this=0x7fffffe7d650, receiver=0x914570, e=0x7fffffe7d270) at qapplication.cpp:2358 #29 0x00002aaaad74cd61 in KApplication::notify (this=0x7fffffe7d650, receiver=0x914570, event=0x7fffffe7d270) at /home/kdedev/src/kde/kdelibs/kdecore/kapplication.cpp:549 #30 0x00002aaaae65655e in QApplication::sendEvent (receiver=0x914570, event=0x7fffffe7d270) at qapplication.h:491 #31 0x00002aaaae6b02fb in QEventLoop::activateTimers (this=0x7e62a0) at qeventloop_unix.cpp:556 #32 0x00002aaaae66931d in QEventLoop::processEvents (this=0x7e62a0, flags=4) at qeventloop_x11.cpp:389 #33 0x00002aaaae6d398c in QEventLoop::enterLoop (this=0x7e62a0) at qeventloop.cpp:198 #34 0x00002aaaae6d3889 in QEventLoop::exec (this=0x7e62a0) at qeventloop.cpp:145 #35 0x00002aaaae6c0b74 in QApplication::exec (this=0x7fffffe7d650) at qapplication.cpp:2758 #36 0x00000000004abdb1 in main (argc=8822448, argv=0x7fffffe7d968) at /home/kdedev/src/kde/kdemultimedia/juk/main.cpp:93
SVN commit 462306 by wheeler: Make sure that we don't call setup twice since it causes some bad-and-a-half things to happen. (Basically an endless loop.) BUG:106038 M +6 -1 playermanager.cpp --- branches/KDE/3.5/kdemultimedia/juk/playermanager.cpp #462305:462306 @@ -92,7 +92,8 @@ m_player(0), m_timer(0), m_noSeek(false), - m_muted(false) + m_muted(false), + m_setup(false) { // This class is the first thing constructed during program startup, and // therefore has no access to the widgets needed by the setup() method. @@ -600,6 +601,10 @@ return; } + if(m_setup) + return; + m_setup = true; + // initialize action states action("pause")->setEnabled(false);