Bug 98389 - loading a m3u playlist hangs Amarok, and fails
Summary: loading a m3u playlist hangs Amarok, and fails
Status: RESOLVED FIXED
Alias: None
Product: amarok
Classification: Applications
Component: general (show other bugs)
Version: 1.2-beta4
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Amarok Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-02-02 09:20 UTC by Nick Steeves
Modified: 2006-06-11 12:32 UTC (History)
0 users

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 Nick Steeves 2005-02-02 09:20:48 UTC
Version:           1.2-beta4 (using KDE KDE 3.3.2)
Installed from:    Compiled From Sources
Compiler:          GCC-3.3.4 
OS:                Linux

1. Start Amarok
2. Select Playlist Tab
3. Clear main-view Playlist, if not already empty
4. Double click desired m3u playlist (or drag'n'drop)
5. Amarok fails to display ID3 tags, OGG-Vorbis tags, FLAC tags, etc.
6. When Play is clicked, Amarok hangs.

Here is a backtrace captured during a hang, as described above:

Program received signal SIGINT, Interrupt.
0xffffe410 in ?? ()
(gdb) bt
#0  0xffffe410 in ?? ()
#1  0xbfff9c78 in ?? ()
#2  0x00000002 in ?? ()
#3  0x00000000 in ?? ()
#4  0xb675bd2e in __pthread_cleanup_upto () from /lib/libpthread.so.0
#5  0xb4db09f6 in gst_thread_get_current ()
   from /usr/lib/./libgstreamer-0.8.so.1
#6  0xb4d91020 in gst_element_set_state ()
   from /usr/lib/./libgstreamer-0.8.so.1
#7  0xb4d845c7 in gst_bin_set_state () from /usr/lib/./libgstreamer-0.8.so.1
#8  0xb4d90dbf in gst_element_set_state ()
   from /usr/lib/./libgstreamer-0.8.so.1
#9  0xb4e9777f in InputPipeline::~InputPipeline ()
   from /usr/lib/kde3/libamarok_gstengine_plugin.so
#10 0xb4e9904f in QPtrList<InputPipeline>::deleteItem ()
   from /usr/lib/kde3/libamarok_gstengine_plugin.so
#11 0xb6fe52dc in QGList::remove () from /usr/lib/./libqt-mt.so.3
#12 0xb4e92efb in GstEngine::destroyInput ()
   from /usr/lib/kde3/libamarok_gstengine_plugin.so
#13 0xb4e86106 in GstEngine::play ()
   from /usr/lib/kde3/libamarok_gstengine_plugin.so
#14 0x080f2921 in QVBox::metaObject ()
#15 0x0811a1ac in QToolButton::metaObject ()
#16 0x08119b83 in QToolButton::metaObject ()
#17 0x0812440a in QToolButton::metaObject ()
#18 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#19 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#20 0x080f3cc0 in QVBox::metaObject ()
#21 0x080f2a5d in QVBox::metaObject ()
#22 0x0811a1ac in QToolButton::metaObject ()
#23 0x08119b83 in QToolButton::metaObject ()
#24 0x0812440a in QToolButton::metaObject ()
#25 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#26 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#27 0x080f3cc0 in QVBox::metaObject ()
#28 0x080f2a5d in QVBox::metaObject ()
#29 0x0811a1ac in QToolButton::metaObject ()
#30 0x08119b83 in QToolButton::metaObject ()
#31 0x0812440a in QToolButton::metaObject ()
#32 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#33 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#34 0x080f3cc0 in QVBox::metaObject ()
#35 0x080f2a5d in QVBox::metaObject ()
#36 0x0811a1ac in QToolButton::metaObject ()
#37 0x08119b83 in QToolButton::metaObject ()
#38 0x0812440a in QToolButton::metaObject ()
#39 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#40 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#41 0x080f3cc0 in QVBox::metaObject ()
#42 0x080f2a5d in QVBox::metaObject ()
#43 0x0811a1ac in QToolButton::metaObject ()
#44 0x08119b83 in QToolButton::metaObject ()
#45 0x0812440a in QToolButton::metaObject ()
#46 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#47 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#48 0x080f3cc0 in QVBox::metaObject ()
#49 0x080f2a5d in QVBox::metaObject ()
#50 0x0811a1ac in QToolButton::metaObject ()
#51 0x08119b83 in QToolButton::metaObject ()
#52 0x0812440a in QToolButton::metaObject ()
#53 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#54 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#55 0x080f3cc0 in QVBox::metaObject ()
#56 0x080f2a5d in QVBox::metaObject ()
#57 0x0811a1ac in QToolButton::metaObject ()
#58 0x08119b83 in QToolButton::metaObject ()
#59 0x0812440a in QToolButton::metaObject ()
#60 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#61 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#62 0x080f3cc0 in QVBox::metaObject ()
#63 0x080f2a5d in QVBox::metaObject ()
#64 0x0811a1ac in QToolButton::metaObject ()
#65 0x08119b83 in QToolButton::metaObject ()
#66 0x0812440a in QToolButton::metaObject ()
#67 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#68 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#69 0x080f3cc0 in QVBox::metaObject ()
#70 0x080f2a5d in QVBox::metaObject ()
#71 0x0811a1ac in QToolButton::metaObject ()
#72 0x08119b83 in QToolButton::metaObject ()
#73 0x0812440a in QToolButton::metaObject ()
#74 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#75 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#76 0x080f3cc0 in QVBox::metaObject ()
#77 0x080f2a5d in QVBox::metaObject ()
#78 0x0811a1ac in QToolButton::metaObject ()
#79 0x08119b83 in QToolButton::metaObject ()
#80 0x0812440a in QToolButton::metaObject ()
#81 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#82 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#83 0x080f3cc0 in QVBox::metaObject ()
#84 0x080f2a5d in QVBox::metaObject ()
#85 0x0811a1ac in QToolButton::metaObject ()
#86 0x08119b83 in QToolButton::metaObject ()
#87 0x0812440a in QToolButton::metaObject ()
#88 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#89 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#90 0x080f3cc0 in QVBox::metaObject ()
#91 0x080f2a5d in QVBox::metaObject ()
#92 0x0811a1ac in QToolButton::metaObject ()
#93 0x08119b83 in QToolButton::metaObject ()
#94 0x0812440a in QToolButton::metaObject ()
#95 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#96 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#97 0x080f3cc0 in QVBox::metaObject ()
#98 0x080f2a5d in QVBox::metaObject ()
#99 0x0811a1ac in QToolButton::metaObject ()
#100 0x08119b83 in QToolButton::metaObject ()
#101 0x0812440a in QToolButton::metaObject ()
#102 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#103 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#104 0x080f3cc0 in QVBox::metaObject ()
#105 0x080f2a5d in QVBox::metaObject ()
#106 0x0811a1ac in QToolButton::metaObject ()
#107 0x08119b83 in QToolButton::metaObject ()
#108 0x0812440a in QToolButton::metaObject ()
#109 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#110 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#111 0x080f3cc0 in QVBox::metaObject ()
#112 0x080f2a5d in QVBox::metaObject ()
#113 0x0811a1ac in QToolButton::metaObject ()
#114 0x08119b83 in QToolButton::metaObject ()
#115 0x0812440a in QToolButton::metaObject ()
#116 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#117 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#118 0x080f3cc0 in QVBox::metaObject ()
#119 0x080f2a5d in QVBox::metaObject ()
#120 0x0811a1ac in QToolButton::metaObject ()
#121 0x08119b83 in QToolButton::metaObject ()
#122 0x0812440a in QToolButton::metaObject ()
#123 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#124 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#125 0x080f3cc0 in QVBox::metaObject ()
#126 0x080f2a5d in QVBox::metaObject ()
#127 0x0811a1ac in QToolButton::metaObject ()
#128 0x08119b83 in QToolButton::metaObject ()
#129 0x0812440a in QToolButton::metaObject ()
#130 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#131 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#132 0x080f3cc0 in QVBox::metaObject ()
#133 0x080f2a5d in QVBox::metaObject ()
#134 0x0811a1ac in QToolButton::metaObject ()
#135 0x08119b83 in QToolButton::metaObject ()
#136 0x0812440a in QToolButton::metaObject ()
#137 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#138 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#139 0x080f3cc0 in QVBox::metaObject ()
#140 0x080f2a5d in QVBox::metaObject ()
#141 0x0811a1ac in QToolButton::metaObject ()
#142 0x08119b83 in QToolButton::metaObject ()
#143 0x0812440a in QToolButton::metaObject ()
#144 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#145 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#146 0x080f3cc0 in QVBox::metaObject ()
#147 0x080f2a5d in QVBox::metaObject ()
#148 0x0811a1ac in QToolButton::metaObject ()
#149 0x08119b83 in QToolButton::metaObject ()
#150 0x0812440a in QToolButton::metaObject ()
#151 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#152 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#153 0x080f3cc0 in QVBox::metaObject ()
#154 0x080f2a5d in QVBox::metaObject ()
#155 0x0811a1ac in QToolButton::metaObject ()
#156 0x08119b83 in QToolButton::metaObject ()
#157 0x0812440a in QToolButton::metaObject ()
#158 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#159 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#160 0x080f3cc0 in QVBox::metaObject ()
#161 0x080f2a5d in QVBox::metaObject ()
#162 0x0811a1ac in QToolButton::metaObject ()
#163 0x08119b83 in QToolButton::metaObject ()
#164 0x0812440a in QToolButton::metaObject ()
#165 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#166 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#167 0x080f3cc0 in QVBox::metaObject ()
#168 0x080f2a5d in QVBox::metaObject ()
#169 0x0811a1ac in QToolButton::metaObject ()
#170 0x08119b83 in QToolButton::metaObject ()
#171 0x0812440a in QToolButton::metaObject ()
#172 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#173 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#174 0x080f3cc0 in QVBox::metaObject ()
#175 0x080f2a5d in QVBox::metaObject ()
#176 0x0811a1ac in QToolButton::metaObject ()
#177 0x08119b83 in QToolButton::metaObject ()
#178 0x0812440a in QToolButton::metaObject ()
#179 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#180 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#181 0x080f3cc0 in QVBox::metaObject ()
#182 0x080f2a5d in QVBox::metaObject ()
#183 0x0811a1ac in QToolButton::metaObject ()
#184 0x08119b83 in QToolButton::metaObject ()
#185 0x0812440a in QToolButton::metaObject ()
#186 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#187 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#188 0x080f3cc0 in QVBox::metaObject ()
#189 0x080f2a5d in QVBox::metaObject ()
#190 0x0811a1ac in QToolButton::metaObject ()
#191 0x08119b83 in QToolButton::metaObject ()
#192 0x0811a081 in QToolButton::metaObject ()
#193 0x081243fd in QToolButton::metaObject ()
#194 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#195 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#196 0x080f3c8e in QVBox::metaObject ()
#197 0x080f3da4 in QVBox::metaObject ()
#198 0xb6d30e4c in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#199 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#200 0xb75eaecb in KAction::activated () from /usr/lib/./libkdeui.so.4
#201 0xb75ea89f in KAction::slotActivated () from /usr/lib/./libkdeui.so.4
#202 0xb75eb0d1 in KAction::qt_invoke () from /usr/lib/./libkdeui.so.4
#203 0xb6d30dc6 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#204 0xb6d30c74 in QObject::activate_signal () from /usr/lib/./libqt-mt.so.3
#205 0xb70730ae in QButton::clicked () from /usr/lib/./libqt-mt.so.3
#206 0xb6dc319a in QButton::mouseReleaseEvent () from /usr/lib/./libqt-mt.so.3
#207 0xb6d66f47 in QWidget::event () from /usr/lib/./libqt-mt.so.3
#208 0xb6cd47cf in QApplication::internalNotify ()
   from /usr/lib/./libqt-mt.so.3
#209 0xb6cd3c40 in QApplication::notify () from /usr/lib/./libqt-mt.so.3
#210 0xb7319eb3 in KApplication::notify () from /usr/lib/./libkdecore.so.4
#211 0xb6c68311 in QETWidget::translateMouseEvent ()
   from /usr/lib/./libqt-mt.so.3
#212 0xb6c65ec6 in QApplication::x11ProcessEvent ()
   from /usr/lib/./libqt-mt.so.3
#213 0xb6c7d844 in QEventLoop::processEvents () from /usr/lib/./libqt-mt.so.3
#214 0xb6ce6b28 in QEventLoop::enterLoop () from /usr/lib/./libqt-mt.so.3
#215 0xb6ce69d8 in QEventLoop::exec () from /usr/lib/./libqt-mt.so.3
#216 0xb6cd4a21 in QApplication::exec () from /usr/lib/./libqt-mt.so.3
#217 0x0819a59b in QWizard::setFinish ()
#218 0xb64ac3f0 in __libc_start_main () from /lib/libc.so.6
#219 0x08081a41 in ?? ()
(gdb)
Comment 1 Max Howell 2005-02-02 09:49:55 UTC
How many items in this playlist? I believe the hang would be temporary.
Comment 2 Max Howell 2005-02-02 09:52:44 UTC
CVS commit by mhowell: 

Don't hang if user loads a playlist containing 3-4000 non existant URLs
BUG: 98389


  M +7 -2      enginecontroller.cpp   1.112


--- kdeextragear-1/amarok/src/enginecontroller.cpp  #1.111:1.112
@@ -328,8 +328,13 @@ void EngineController::play( const MetaB
     else
     some_kind_of_failure:
+        //NOTE now we don't do next() at all
+        // say the user has a 4000 item playlist with all URLs in that playlist
+        // being bad, amaroK will appear to freeze. We need to either stat files in
+        // the background or not call next() more than 5 times in a row
         //don't do for repeatPlaylist() as it can produce a freeze
         //FIXME -> mxcl
-        if ( !AmarokConfig::repeatPlaylist() )
-            next();
+        //if ( !AmarokConfig::repeatPlaylist() )
+        //    next()
+                ;
 }
 


Comment 3 Nick Steeves 2005-02-02 10:20:35 UTC
It's just a normal m3u playlist with 71 items.  The hang isn't permanent--20 sec or so.  It is impossible to play any music from a playlist loaded from disk, where the files reside on disk.  That is why I said "hangs and fails", rather then "hangs indefinitely".
Comment 4 Mark Kretschmann 2005-02-02 11:27:48 UTC
I think this may be fixed now.
Comment 5 Mark Kretschmann 2005-02-02 18:49:53 UTC
Can you try again with CVS HEAD?
Comment 6 Nick Steeves 2005-02-02 20:31:56 UTC
This fixes the m3u playlist loading but, but somewhere in CVS HEAD, double clicking on "100 random songs" broke.  Dragging'n Dropping it to the playlist is ok, but double clicking isn't.  Weird eh?  If you don't think that the new "100 random songs" playlist bug is related to the recent m3u fixes then bug 98389 (this bug) is fixed!

Thanks.
Comment 7 Greg Meyer 2005-02-02 23:12:14 UTC
Yes, double-clicking currently does not work.  Thanks for responding, closing bug.