Bug 76471 - freezes with shoutcast playlists
Summary: freezes with shoutcast playlists
Status: RESOLVED FIXED
Alias: None
Product: amarok
Classification: Applications
Component: general (show other bugs)
Version: 0.9-beta3
Platform: openSUSE Linux
: NOR crash
Target Milestone: ---
Assignee: Amarok Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-03-01 01:39 UTC by Henrik Nordhus
Modified: 2006-06-11 12:32 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Henrik Nordhus 2004-03-01 01:39:59 UTC
Version:           0.9-beta3 (using KDE KDE 3.2.0)
Installed from:    SuSE RPMs
Compiler:          gcc 3.3.2 
OS:          Linux

I have configured KDE to use amaroK for mimetype audio/x-scpls (shoutcast playlists).
Instead of starting playback, amaroK freezes and must then be killed.
I get no error-messages in the console when this happens.
(PS, I compiled the application myself from source against the SuSE KDE 3.2 rpms)
Comment 1 Henrik Nordhus 2004-03-01 01:41:07 UTC
Forgot to say, though don't know if it matters. This happens on both live365.com and shoutcast.com, so seems to be a general problem with shoutcast playlists...
Comment 2 Max Howell 2004-03-01 02:04:12 UTC
Hi, thanks for the report. Can you attach a playlist file that causes amaroK to freeze please? Cheers.
Comment 3 Mark Kretschmann 2004-03-01 04:44:28 UTC
Please try to disable "Display shoutcast metadata (Title Streaming)" in the playback settings menu. Does it help?
Comment 4 Henrik Nordhus 2004-03-01 10:58:05 UTC
Disabling the metadata does not help. For some reason the app does not freeze anymore (with or without title streaming) but crashes "cleanly" after my ~/.kde directory has been remade. The "error message" displayed when amaroK goes down is the following:

Short Description
The application amaroK (amarokapp) crashed and caused the signal 6 (SIGABRT).

Running a "Backtrace" gives:

Backtrace:
[New Thread 16384 (LWP 2372)]
[New Thread 32769 (LWP 2374)]
0x42048006 in waitpid () from /lib/libpthread.so.0
#0  0x42048006 in waitpid () from /lib/libpthread.so.0
#1  0x41377b63 in KCrash::defaultCrashHandler(int) ()
   from /opt/kde3/lib/libkdecore.so.4
#2  0x42046bb1 in __pthread_sighandler () from /lib/libpthread.so.0
#3  <signal handler called>
#4  0x422becc1 in kill () from /lib/libc.so.6
#5  0x42043011 in pthread_kill () from /lib/libpthread.so.0
#6  0x4204338b in raise () from /lib/libpthread.so.0
#7  0x422bea54 in raise () from /lib/libc.so.6
#8  0x422bffcc in abort () from /lib/libc.so.6
#9  0x41e4d175 in __cxxabiv1::__terminate(void (*)()) ()
   from /usr/lib/libstdc++.so.5
#10 0x41e4d1b2 in std::terminate() () from /usr/lib/libstdc++.so.5
#11 0x41e4d686 in __cxa_pure_virtual () from /usr/lib/libstdc++.so.5
#12 0x400a2538 in KDE::PlayObjectCreator::slotMimeType(QString const&) ()
   from /opt/kde3/lib/libartskde.so.1
#13 0x400a1362 in KDE::PlayObjectCreator::qt_invoke(int, QUObject*) ()
   from /opt/kde3/lib/libartskde.so.1
#14 0x417b18bb in QObject::activate_signal(QConnectionList*, QUObject*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#15 0x417b1d7a in QObject::activate_signal(int, QString) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#16 0x40082810 in Arts::KIOInputStream_impl::mimeTypeFound(QString const&) ()
   from /opt/kde3/lib/libartskde.so.1
#17 0x40083774 in Arts::KIOInputStream_impl::slotResult(KIO::Job*) ()
   from /opt/kde3/lib/libartskde.so.1
#18 0x400828f4 in Arts::KIOInputStream_impl::qt_invoke(int, QUObject*) ()
   from /opt/kde3/lib/libartskde.so.1
#19 0x417b18bb in QObject::activate_signal(QConnectionList*, QUObject*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#20 0x40d7ff0a in KIO::Job::result(KIO::Job*) () from /opt/kde3/lib/libkio.so.4
#21 0x40d6c007 in KIO::Job::emitResult() () from /opt/kde3/lib/libkio.so.4
#22 0x40d6d416 in KIO::SimpleJob::slotFinished() ()
   from /opt/kde3/lib/libkio.so.4
#23 0x40d6fe4e in KIO::TransferJob::slotFinished() ()
   from /opt/kde3/lib/libkio.so.4
#24 0x40d80abd in KIO::SimpleJob::qt_invoke(int, QUObject*) ()
   from /opt/kde3/lib/libkio.so.4
#25 0x40d817d3 in KIO::TransferJob::qt_invoke(int, QUObject*) ()
   from /opt/kde3/lib/libkio.so.4
#26 0x417b18bb in QObject::activate_signal(QConnectionList*, QUObject*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#27 0x41af1d5a in QSignal::signal(QVariant const&) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#28 0x417cc648 in QSignal::activate() () from /usr/lib/qt3/lib/libqt-mt.so.3
#29 0x417d4093 in QSingleShotTimer::event(QEvent*) ()
#11 0x41e4d686 in __cxa_pure_virtual () from /usr/lib/libstdc++.so.5
#12 0x400a2538 in KDE::PlayObjectCreator::slotMimeType(QString const&) ()
   from /opt/kde3/lib/libartskde.so.1
#13 0x400a1362 in KDE::PlayObjectCreator::qt_invoke(int, QUObject*) ()
   from /opt/kde3/lib/libartskde.so.1
#14 0x417b18bb in QObject::activate_signal(QConnectionList*, QUObject*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#15 0x417b1d7a in QObject::activate_signal(int, QString) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#16 0x40082810 in Arts::KIOInputStream_impl::mimeTypeFound(QString const&) ()
   from /opt/kde3/lib/libartskde.so.1
#17 0x40083774 in Arts::KIOInputStream_impl::slotResult(KIO::Job*) ()
   from /opt/kde3/lib/libartskde.so.1
#18 0x400828f4 in Arts::KIOInputStream_impl::qt_invoke(int, QUObject*) ()
   from /opt/kde3/lib/libartskde.so.1
#19 0x417b18bb in QObject::activate_signal(QConnectionList*, QUObject*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#20 0x40d7ff0a in KIO::Job::result(KIO::Job*) () from /opt/kde3/lib/libkio.so.4
#21 0x40d6c007 in KIO::Job::emitResult() () from /opt/kde3/lib/libkio.so.4
#22 0x40d6d416 in KIO::SimpleJob::slotFinished() ()
   from /opt/kde3/lib/libkio.so.4
#23 0x40d6fe4e in KIO::TransferJob::slotFinished() ()
   from /opt/kde3/lib/libkio.so.4
#24 0x40d80abd in KIO::SimpleJob::qt_invoke(int, QUObject*) ()
   from /opt/kde3/lib/libkio.so.4
#25 0x40d817d3 in KIO::TransferJob::qt_invoke(int, QUObject*) ()
   from /opt/kde3/lib/libkio.so.4
#26 0x417b18bb in QObject::activate_signal(QConnectionList*, QUObject*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#27 0x41af1d5a in QSignal::signal(QVariant const&) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#28 0x417cc648 in QSignal::activate() () from /usr/lib/qt3/lib/libqt-mt.so.3
#29 0x417d4093 in QSingleShotTimer::event(QEvent*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#30 0x41750776 in QApplication::internalNotify(QObject*, QEvent*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#31 0x4174fa9e in QApplication::notify(QObject*, QEvent*) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#32 0x412f7554 in KApplication::notify(QObject*, QEvent*) ()
   from /opt/kde3/lib/libkdecore.so.4
#34 0x416f6ad7 in QEventLoop::processEvents(unsigned) ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#35 0x417631d0 in QEventLoop::enterLoop() ()
   from /usr/lib/qt3/lib/libqt-mt.so.3
#36 0x417630c6 in QEventLoop::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3
#37 0x41750a0f in QApplication::exec() () from /usr/lib/qt3/lib/libqt-mt.so.3
#38 0x080b6a93 in main ()
Comment 5 Henrik Nordhus 2004-03-01 11:02:49 UTC
@Max Howell:

The individual playlist does not seem to matter, this happens with any shoutcast playlist file as far as I can see, here is an example:

[playlist]
NumberOfEntries=1
File1=http://www.live365.com/play/294156?AuthType=NORMAL&SaneID=129.240.106.146-1078076196578&VisitCount=13&membername=5tgermain&bitrate=56&now=1078135555592&session=44BxjIpS1Ehyg
Comment 6 Max Howell 2004-03-01 11:52:03 UTC
Can confirm. Nasty crash. I also got the same backtrace.
Comment 7 Mark Kretschmann 2004-03-02 09:17:34 UTC
CVS commit by markey: 

Fix several streaming related issues. Hopefully no fresh regressions introduced.

CCMAIL: 76471-done@bugs.kde.org


  M +3 -9      playerapp.cpp   1.245
  M +3 -4      playerapp.h   1.108
  M +18 -12    playlistitem.cpp   1.58
  M +27 -23    engine/artsengine.cpp   1.43
  M +3 -1      engine/artsengine.h   1.26
  M +3 -1      titleproxy/titleproxy.cpp   1.23



Comment 8 Keith P 2004-03-12 17:06:13 UTC
From what I've seen on 0.9-beta3 is the ogg streams cause it to lock up.  If I turn off title streaming it's fine, or if I play regular mp3 streams it fine.  But title streaming ogg's will cause it to lock up every time.
Comment 9 wef 2004-06-03 14:50:50 UTC
amarok version 1.0-beta4.

When playing a password protected stream, amarok hangs hard. It helps if I disable "Display shoutcast metadata (Title Streaming)".
This is the output from amarok:

amarok: BEGIN [void TitleProxy::Proxy::sendRequest()]
amarok: END [void TitleProxy::Proxy::sendRequest()]
amarok: [bool TitleProxy::Proxy::processHeader(Q_LONG&, long int)] Got shoutcast header: 'HTTP/1.0 401 Unauthorized()
Server: Shoutcast DNAS
WWW-authenticate: basic realm="Digitally Imported"
Content-type: text/html

amarok: '
amarok: TitleProxy error. Restarting stream in non-metadata mode.
amarok: BEGIN [void TitleProxy::Proxy::sendRequest()]
amarok: [void ArtsEngine::connectPlayObject()]
amarok: END [void TitleProxy::Proxy::sendRequest()]
amarok: [bool TitleProxy::Proxy::processHeader(Q_LONG&, long int)] Got shoutcast header: 'HTTP/1.0 401 Unauthorized()
Server: Shoutcast DNAS
WWW-authenticate: basic realm="Digitally Imported"
Content-type: text/html

amarok: '



^^^ Here it hangs.

/Olof
Comment 10 Mark Kretschmann 2004-06-03 15:45:24 UTC
Olof:
Which engine are you using? (streaming does only work with aRts Engine currently).
Comment 11 wef 2004-06-03 19:08:33 UTC
Mark:
Yes, I'm using the aRts engine.
Note that streaming _does_ work, but not when title streaming is enabled.

It seems as amarok sends the user/password when getting the audio stream, but not when getting the title stream. When amarok gets the "401 Unauthorized" from the server, it gets out of sync waiting for more data from the server, but the server is done sending data.
Comment 12 Mark Kretschmann 2004-06-03 19:42:12 UTC
Ooops, sorry, I didn't notice you're talking about a password protected stream. 

Well, gotta say that I've never tested it with a non-free stream, I didn't even know such things exist. Therefore there's also not much motivation to fix, since I can't test it anyway. But if you got some hints for solving it, we're willing to accept patches/instructions.

Please submit a new wish for this topic then, because it's off topic in this report.