Summary: | freeze when changing output method | ||
---|---|---|---|
Product: | [Applications] juk | Reporter: | Tim Hutt <tdhutt> |
Component: | general | Assignee: | Scott Wheeler <wheeler> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | jlp |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Gentoo Packages | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Tim Hutt
2005-05-20 21:53:37 UTC
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); |