Bug 112917 - Juk crashes after you delete a folder it references
Summary: Juk crashes after you delete a folder it references
Status: RESOLVED FIXED
Alias: None
Product: juk
Classification: Applications
Component: general (show other bugs)
Version: 2.2
Platform: unspecified Linux
: NOR crash (vote)
Target Milestone: ---
Assignee: Michael Pyne
URL:
Keywords:
: 111243 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-09-20 02:00 UTC by Nelson Jovel
Modified: 2005-10-21 22:46 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nelson Jovel 2005-09-20 02:00:06 UTC
Version:           2.2 (using KDE 3.4.0 Level "b" , SUSE 9.3)
Compiler:          gcc version 3.3.5 20050117 (prerelease) (SUSE Linux)
OS:                Linux (i686) release 2.6.11.4-21.9-default

After deleting a folder through the konqueror window I was unable to start Juk.  The folder I deleted had been a folder referenced in the Juk folder list ( the list of folders in which to search for music).  When attempting to start Juk, I received a dialog box with the following error: The file or folder /home/joveln/Documents/test folder does not exist.  Closing that box presented me with the KDE Crash Handler box.  It read “The application Juk (juk) crashed and caused the signal 11 (SIGSEGV).  Juk stopped loading, and I was returned to the desktop.  Someone previously submitted a report similar to this.  They had reorganized their audiobook collection, moving folders around and deleting some files.  The status on that report is "Resolved", with the last comment being "not enough information to fix this error".


Here is what I did to work around the error.  I navigated to HOME/.kde/share/apps/juk  and renamed the cache file to cache-old.  I started Jukbox again.  It gave me an error message “folder does not exist” but this time the program loaded successfully.  I then removed the folder in question from the jukebox folder list.  I closed Juk.  I renamed cache-old to cache.  And finally I restarted Juk, it worked correctly and loaded all of my music.
Comment 1 Tim Hutt 2005-09-25 19:33:33 UTC
Yep. Same problem. Here is a backtrace:

[KCrash handler]
#4  0x08105f0e in PlaylistCollection::stop ()
#5  0x080e8317 in PlayerManager::stop ()
#6  0x080e9615 in PlayerManager::qt_invoke ()
#7  0xb695b067 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#8  0xb695aeae in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#9  0xb7138dcb in KAction::activated () from /usr/lib/libkdeui.so.4
#10 0xb713853a in KAction::slotActivated () from /usr/lib/libkdeui.so.4
#11 0xb71384ec in KAction::activate () from /usr/lib/libkdeui.so.4
#12 0x080d7f96 in JuK::queryExit ()
#13 0xb7196039 in KMainWindow::shuttingDown () from /usr/lib/libkdeui.so.4
#14 0xb7196b04 in KMainWindow::qt_invoke () from /usr/lib/libkdeui.so.4
#15 0x080d8602 in JuK::qt_invoke ()
#16 0xb695b067 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#17 0xb695aeae in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#18 0xb6e99e8e in KApplication::shutDown () from /usr/lib/libkdecore.so.4
#19 0xb6e9a125 in KApplication::qt_emit () from /usr/lib/libkdecore.so.4
#20 0xb6f31cad in KUniqueApplication::qt_emit () from /usr/lib/libkdecore.so.4
#21 0xb695b015 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#22 0xb695aeae in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#23 0xb6c6efbc in QApplication::aboutToQuit () from /usr/lib/libqt-mt.so.3
#24 0xb691471d in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#25 0xb69035d3 in QApplication::enter_loop () from /usr/lib/libqt-mt.so.3
#26 0xb6ad520c in QDialog::exec () from /usr/lib/libqt-mt.so.3
#27 0xb71c1184 in KDialogQueue::slotShowQueuedDialog ()
   from /usr/lib/libkdeui.so.4
#28 0xb71c16f8 in KDialogQueue::qt_invoke () from /usr/lib/libkdeui.so.4
#29 0xb695b067 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#30 0xb6c761a5 in QSignal::signal () from /usr/lib/libqt-mt.so.3
#31 0xb6973ca9 in QSignal::activate () from /usr/lib/libqt-mt.so.3
#32 0xb697ad71 in QSingleShotTimer::event () from /usr/lib/libqt-mt.so.3
#33 0xb6903370 in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#34 0xb69029d4 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#35 0xb6e878a5 in KApplication::notify () from /usr/lib/libkdecore.so.4
#36 0xb68f3858 in QEventLoop::activateTimers () from /usr/lib/libqt-mt.so.3
#37 0xb68af95f in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#38 0xb69147d3 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#39 0xb69034bc in QApplication::processEvents () from /usr/lib/libqt-mt.so.3
#40 0xb6903485 in QApplication::processEvents () from /usr/lib/libqt-mt.so.3
#41 0x0811c1fd in SplashScreen::processEvents ()
#42 0x0811b5ab in SplashScreen::increment ()
#43 0x080a8ebb in CollectionListItem::CollectionListItem ()
#44 0x080a52dd in CollectionList::initialize ()
#45 0x080fed73 in PlaylistBox::PlaylistBox ()
#46 0x08114ce0 in PlaylistSplitter::setupLayout ()
#47 0x081147a8 in PlaylistSplitter::PlaylistSplitter ()
#48 0x080d45dc in JuK::setupLayout ()
#49 0x080d42e7 in JuK::JuK ()
#50 0x080e03c0 in main ()
Comment 2 Michael Pyne 2005-09-26 03:16:26 UTC
Confirmed, will try to fix before 3.5.
Comment 3 Michael Pyne 2005-09-26 03:32:56 UTC
SVN commit 464006 by mpyne:

Don't allow KDirLister to throw up its own error messages.  This seems to prevent JuK from
crashing during startup when adding its folder list to KDirLister when a folder has gone
away in the interim.

CCBUG:112917


 M  +5 -0      playlistcollection.cpp  


--- branches/KDE/3.5/kdemultimedia/juk/playlistcollection.cpp #464005:464006
@@ -67,6 +67,11 @@
 {
     m_actionHandler = new ActionHandler(this);
     PlayerManager::instance()->setPlaylistInterface(this);
+
+    // KDirLister's auto error handling seems to crash JuK during startup in
+    // readConfig().
+
+    m_dirLister.setAutoErrorHandlingEnabled(false, playlistStack);
     readConfig();
 }
 
Comment 4 Michael Pyne 2005-09-26 03:36:20 UTC
SVN commit 464008 by mpyne:

Backport potential crasher fix to KDE 3.4, involving KDirLister and calling openURL on
non-existant directories during JuK startup.

If this doesn't fix the bug please re-open.

BUG:112917


 M  +5 -0      playlistcollection.cpp  


--- branches/KDE/3.4/kdemultimedia/juk/playlistcollection.cpp #464007:464008
@@ -66,6 +66,11 @@
 {
     m_actionHandler = new ActionHandler(this);
     PlayerManager::instance()->setPlaylistInterface(this);
+
+    // KDirLister's auto error handling seems to crash JuK during startup in
+    // readConfig().
+
+    m_dirLister.setAutoErrorHandlingEnabled(false, playlistStack);
     readConfig();
 }
 
Comment 5 Michael Pyne 2005-10-04 04:10:52 UTC
*** Bug 111243 has been marked as a duplicate of this bug. ***
Comment 6 Chani 2005-10-21 08:00:09 UTC
what version is this fixed in? I'm using juk 2.2.1 on kde 3.4.2 and I got the same problem (easy to fix when you know where the config files are, though).
Comment 7 Michael Pyne 2005-10-21 22:46:58 UTC
It might be in 3.4.3 if I backported in time.  If not you can either build Subversion kdemultimedia from branches/KDE/3.4 or use KDE 3.5 Beta 2 which has the fix, or wait for the 3.5 release.