<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>106038</bug_id>
          
          <creation_ts>2005-05-20 21:53:37 +0000</creation_ts>
          <short_desc>freeze when changing output method</short_desc>
          <delta_ts>2005-09-20 18:51:12 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>2</classification_id>
          <classification>Applications</classification>
          <product>juk</product>
          <component>general</component>
          <version>unspecified</version>
          <rep_platform>Gentoo Packages</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Hutt">tdhutt</reporter>
          <assigned_to name="Scott Wheeler">wheeler</assigned_to>
          <cc>jlp</cc>
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>343894</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Hutt">tdhutt</who>
    <bug_when>2005-05-20 21:53:37 +0000</bug_when>
    <thetext>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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350586</commentid>
    <comment_count>1</comment_count>
    <who name="Scott Wheeler">wheeler</who>
    <bug_when>2005-06-15 15:37:28 +0000</bug_when>
    <thetext>Yeah, I&apos;ve got the same here.  I&apos;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.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359503</commentid>
    <comment_count>2</comment_count>
    <who name="Jure Repinc">jlp</who>
    <bug_when>2005-07-22 01:10:50 +0000</bug_when>
    <thetext>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&lt;TimerInfo&gt;::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 &quot;ĐăÖŽŞ*&quot;)
    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 = &lt;same as static member of an already seen type&gt;, 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</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374428</commentid>
    <comment_count>3</comment_count>
    <who name="Scott Wheeler">wheeler</who>
    <bug_when>2005-09-20 18:51:12 +0000</bug_when>
    <thetext>SVN commit 462306 by wheeler:

Make sure that we don&apos;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(&quot;pause&quot;)-&gt;setEnabled(false);
</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>