Version: (using KDE KDE 3.3.2) Installed from: Debian testing/unstable Packages Compiler: gcc (GCC) 3.3.5 (Debian 1:3.3.5-12) OS: Linux When I'm using gstreamer and the stream starves/rebuffering occurs, amarok starts eating memory at a rate of >= 1MB/s. At this point also the GUI usually freezes while memory consumption keeps rising. I've reproduced this with 1.2.1 (from Debian), 1.2.2 (.debs from kalypso) and 1.2-CVS. I've first noticed this problem after upgrading to libgstreamer 0.8.9 and libgstreamer-plugins 0.8.8. The xine engine doesn't seem to have this problem. To reproduce, I listen to an MP3 stream and then start a bandwidth hog like bittorrent. Also it happens when first connecting to a stream that is itself flaky (last.fm). I previously filed a report against gstreamer/Debian here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=299931 Here is a log from a session where I started streaming from last.fm, got their 'static' stream and started streaming again (this is when the gui stopped responding and memory consumption went way up, so i killed amarokapp after 30 secs): chrissi@homer:/home/chrissi$ amarok amaroK: [Loader] Starting amarokapp.. amaroK: [Loader] Don't run gdb, valgrind, etc. against this binary! Use amarokapp. amarok: BEGIN: App::App() amarok: BEGIN: EngineBase* EngineController::loadEngine(const QString&) amarok: [PluginManager] Plugin trader constraint: [X-KDE-amaroK-framework-version] == 5 and [X-KDE-amaroK-plugintype] == 'engine' and [X-KDE-amaroK-name] != 'void-engine' and [X-KDE-amaroK-rank] > 0 amarok: [PluginManager] Plugin trader constraint: [X-KDE-amaroK-framework-version] == 5 and [X-KDE-amaroK-plugintype] == 'engine' and [X-KDE-amaroK-name] == 'void-engine' and [X-KDE-amaroK-rank] > 0 amarok: [PluginManager] Trying to load: libamarok_void-engine_plugin amarok: amarok: PluginManager Service Info: amarok: --------------------------- amarok: name : Kein Treiber amarok: library : libamarok_void-engine_plugin amarok: desktopEntryPath : amarok_void-engine_plugin.desktop amarok: X-KDE-amaroK-plugintype : engine amarok: X-KDE-amaroK-name : void-engine amarok: X-KDE-amaroK-authors : (Max Howell,Mark Kretschmann) amarok: X-KDE-amaroK-rank : 1 amarok: X-KDE-amaroK-version : 1 amarok: X-KDE-amaroK-framework-version: 5 amarok: QObject::connect: Cannot connect Engine::Base::statusText( const QString& ) to (null)::shortMessage( const QString& ) QObject::connect: Cannot connect Engine::Base::infoMessage( const QString& ) to (null)::longMessage( const QString& ) amarok: END__: EngineBase* EngineController::loadEngine(const QString&) - Took 0.03s amarok: BEGIN: CollectionDB::CollectionDB() amarok: [CollectionDB] Available db connections: 1 amarok: [CollectionDB] Available db connections: 5 amarok: END__: CollectionDB::CollectionDB() - Took 0.05s QLayout: Adding KToolBar/mainToolBar (child of QVBox/unnamed) to layout for PlaylistWindow/PlaylistWindow amarok: Creating browsers. Please report long start times! amarok: BEGIN: ContextBrowser amarok: [void ContextBrowser::setStyleSheet()] amarok: BEGIN: amaroK::Color::Color(const QColor&) amarok: [ContextBrowser] Initial Color Properties: s:137 v:255 amarok: [ContextBrowser] Unapplied Contrast: 23 amarok: [ContextBrowser] Over-compensation: 23 amarok: [ContextBrowser] Final Colour Properties: s:30 v:255 amarok: END__: amaroK::Color::Color(const QColor&) - Took 0s amarok: END__: ContextBrowser - Took 0.11s amarok: BEGIN: CollectionBrowser amarok: [CollectionView::CollectionView(CollectionBrowser*)] amarok: [void CollectionView::renderView()] amarok: END__: CollectionBrowser - Took 0.3s amarok: BEGIN: PlaylistBrowser amarok: END__: PlaylistBrowser - Took 0.48s amarok: BEGIN: MediaBrowser amarok: END__: MediaBrowser - Took 0.03s amarok: BEGIN: FileBrowser amarok: [StatusBar] KSqueezedTextLabel, mainTextLabel: 18: 0 amarok: [StatusBar] QHBox, progressBox: 26: 0 amarok: [StatusBar] QLabel, unnamed: 18: 0 amarok: [StatusBar] QWidget, positionBox: 26: 0 amarok: [StatusBar] QWidget, unnamed: 16: 0 amarok: END__: FileBrowser - Took 0.06s amarok: BEGIN: UrlLoader amarok: BEGIN: UrlLoader::UrlLoader(const KURL::List&, QListViewItem*, bool) amarok: [KDE::ProgressBar::ProgressBar(QWidget*, QLabel*)] amarok: [StatusBar] Creating timer for: 1updateProgressAppearance() amarok: END__: UrlLoader::UrlLoader(const KURL::List&, QListViewItem*, bool) - Took 0.01s amarok: BEGIN: void App::applySettings(bool) amarok: BEGIN: void App::applyColorScheme() amarok: END__: void App::applyColorScheme() - Took 0s amarok: [void ContextBrowser::setStyleSheet()] amarok: BEGIN: amaroK::Color::Color(const QColor&) amarok: [ContextBrowser] Initial Color Properties: s:137 v:255 amarok: [ContextBrowser] Unapplied Contrast: 23 amarok: [ContextBrowser] Over-compensation: 23 amarok: [ContextBrowser] Final Colour Properties: s:30 v:255 amarok: END__: amaroK::Color::Color(const QColor&) - Took 0s amarok: [Scrobbler] Handshake url: http://post.audioscrobbler.com/?hs=true&p=1.1&c=ark&v=0.1&u=henzenmann amarok: [virtual bool BrowserBar::event(QEvent*)] Line: 182 amarok: [virtual void BrowserBar::polish()] amarok: BEGIN: void ContextBrowser::showHome() amarok: END__: void ContextBrowser::showHome() - Took 0.84s amarok: [BlockAnalyzer] FallTime: 300 amarok: [BlockAnalyzer] FallTime: 360 amarok: [ThreadWeaver] Job completed: PlaylistReader. Jobs pending: 0 amarok: [ThreadWeaver] Job completed: UrlLoader. Jobs pending: 0 amarok: END__: UrlLoader - Took 1.02s amarok: [StatusBar] Creating timer for: 1hideMainProgressBar() amarok: [StatusBar] 1updateProgressAppearance() amarok: BEGIN: EngineBase* EngineController::loadEngine() amarok: BEGIN: EngineBase* EngineController::loadEngine(const QString&) amarok: [PluginManager] Plugin trader constraint: [X-KDE-amaroK-framework-version] == 5 and [X-KDE-amaroK-plugintype] == 'engine' and [X-KDE-amaroK-name] != 'gst-engine' and [X-KDE-amaroK-rank] > 0 amarok: [PluginManager] Plugin trader constraint: [X-KDE-amaroK-framework-version] == 5 and [X-KDE-amaroK-plugintype] == 'engine' and [X-KDE-amaroK-name] == 'gst-engine' and [X-KDE-amaroK-rank] > 0 amarok: [PluginManager] Trying to load: libamarok_gstengine_plugin amarok: [GstEngine::GstEngine()] amarok: amarok: PluginManager Service Info: amarok: --------------------------- amarok: name : Gstreamer-Treiber amarok: library : libamarok_gstengine_plugin amarok: desktopEntryPath : amarok_gstengine_plugin.desktop amarok: X-KDE-amaroK-plugintype : engine amarok: X-KDE-amaroK-name : gst-engine amarok: X-KDE-amaroK-authors : (Mark Kretschmann) amarok: X-KDE-amaroK-rank : 255 amarok: X-KDE-amaroK-version : 1 amarok: X-KDE-amaroK-framework-version: 5 amarok: amarok: BEGIN: virtual bool GstEngine::init() amarok: BEGIN: bool GstEngine::createPipeline() amarok: [Gst-Engine] Thread scheduling priority: 2 amarok: [Gst-Engine] Sound output method: alsasink amarok: [Gst-Engine] CustomSoundDevice: false amarok: [Gst-Engine] Sound Device: amarok: [Gst-Engine] CustomOutputParams: false amarok: [Gst-Engine] Output Params: amarok: [void gst_equalizer_base_init(void*)] amarok: [void gst_equalizer_class_init(GstEqualizerClass*)] amarok: [void gst_equalizer_init(GstEqualizer*)] amarok: [GstPadLinkReturn gst_equalizer_link(GstPad*, const GstCaps*)] amarok: END__: bool GstEngine::createPipeline() - Took 0.29s amarok: END__: virtual bool GstEngine::init() - Took 0.66s amarok: END__: EngineBase* EngineController::loadEngine(const QString&) - Took 0.68s amarok: END__: EngineBase* EngineController::loadEngine() - Took 0.68s amarok: [void CollectionView::renderView()] amarok: END__: void App::applySettings(bool) - Took 2.12s chrissi@homer:/home/chrissi$ amarok: END__: App::App() - Took 3.54s amarok: [virtual KDE::ProgressBar::~ProgressBar()] amarok: [StatusBar] 1hideMainProgressBar() amarok: [static void GstEngine::candecode_handoff_cb(GstElement*, GstBuffer*, void*)] amarok: [static void GstEngine::candecode_handoff_cb(GstElement*, GstBuffer*, void*)] amarok: WARNING: Pixmap not found for mimetype audio/wav amarok: WARNING: Pixmap not found for mimetype audio/wav amarok: WARNING: Pixmap not found for mimetype audio/wav amarok: WARNING: Pixmap not found for mimetype audio/wav amarok: WARNING: Pixmap not found for mimetype audio/wav amarok: WARNING: Pixmap not found for mimetype audio/wav amarok: WARNING: Pixmap not found for mimetype audio/wav amarok: WARNING: Pixmap not found for mimetype audio/wav amarok: WARNING: Pixmap not found for mimetype audio/wav amarok: WARNING: Pixmap not found for mimetype audio/wav amarok: WARNING: Pixmap not found for mimetype audio/wav amarok: WARNING: Pixmap not found for mimetype audio/wav amarok: WARNING: Pixmap not found for mimetype audio/wav amarok: [Scrobbler] Handshake result parsed: challenge=CDC11C792F34EE4CF0D38A8CC0D1509B, submitUrl=http://post.audioscrobbler.com:80/protocol_1.1 amarok: BEGIN: virtual void amaroK::DcopPlayerHandler::transferCliArgs(QStringList) amarok: Startup ID: amarok: Extracted: -a amarok: Extracted: /tmp/playlist-18.m3u amarok: BEGIN: UrlLoader amarok: BEGIN: UrlLoader::UrlLoader(const KURL::List&, QListViewItem*, bool) amarok: [KDE::ProgressBar::ProgressBar(QWidget*, QLabel*)] amarok: END__: UrlLoader::UrlLoader(const KURL::List&, QListViewItem*, bool) - Took 0s amarok: END__: virtual void amaroK::DcopPlayerHandler::transferCliArgs(QStringList) - Took 0.04s amarok: [StatusBar] 1updateProgressAppearance() amarok: [ThreadWeaver] Job completed: UrlLoader. Jobs pending: 0 amarok: END__: UrlLoader - Took 0.05s amarok: [virtual KDE::ProgressBar::~ProgressBar()] amarok: [StatusBar] 1hideMainProgressBar() amarok: [controller] Loading URL: http://moses.last.fm/last.mp3?Session=7d0dc0e92afa550a0637a8a1bafb41ec amarok: [StatusBar] Creating timer for: 1resetMainText() amarok: [controller] Detected mimetype: audio/x-mp3 amarok: BEGIN: amaroK::StreamProvider::StreamProvider(KURL, const QString&) amarok: BEGIN: void amaroK::StreamProvider::connectToHost() amarok: END__: void amaroK::StreamProvider::connectToHost() - Took 0.01s amarok: END__: amaroK::StreamProvider::StreamProvider(KURL, const QString&) - Took 0.01s amarok: BEGIN: virtual bool GstEngine::load(const KURL&, bool) amarok: [Gst-Engine] Loading url: http://127.0.0.1 amarok: BEGIN: InputPipeline::InputPipeline() amarok: END__: InputPipeline::InputPipeline() - Took 0.02s amarok: [void gst_streamsrc_base_init(void*)] amarok: [void gst_streamsrc_class_init(GstStreamSrcClass*)] amarok: [void gst_streamsrc_init(GstStreamSrc*)] amarok: END__: virtual bool GstEngine::load(const KURL&, bool) - Took 0.1s amarok: BEGIN: virtual bool GstEngine::play(unsigned int) amarok: BEGIN: void EngineSubject::stateChangedNotify(Engine::State) amarok: [virtual void amaroK::StatusBar::engineStateChanged(Engine::State)] Line: 123 amarok: BEGIN: virtual void ContextBrowser::engineStateChanged(Engine::State) amarok: END__: virtual void ContextBrowser::engineStateChanged(Engine::State) - Took 0s amarok: END__: void EngineSubject::stateChangedNotify(Engine::State) - Took 0.02s amarok: END__: virtual bool GstEngine::play(unsigned int) - Took 0.04s QObject::connect: No such signal EngineController::orderNext() QObject::connect: (sender name: 'unnamed') QObject::connect: (receiver name: 'unnamed') amarok: BEGIN: void EngineSubject::newMetaDataNotify(const MetaBundle&, bool) amarok: [296x48] amarok: 7 amarok: 45 amarok: END__: void EngineSubject::newMetaDataNotify(const MetaBundle&, bool) - Took 0.05s amarok: [Gst-Engine] Fade-in finished. amarok: BEGIN: virtual bool CurrentTrackJob::doJob() amarok: END__: virtual bool CurrentTrackJob::doJob() - Took 0s amarok: [ThreadWeaver] Job completed: CurrentTrackJob. Jobs pending: 0 amarok: BEGIN: void amaroK::StreamProvider::sendRequest() amarok: [StreamProvider] Sending request: amarok: GET /last.mp3?Session=7d0dc0e92afa550a0637a8a1bafb41ec HTTP/1.0 Host: moses.last.fm User-Agent: amaroK/1.2 Accept: */* Icy-MetaData:1 amarok: amarok: END__: void amaroK::StreamProvider::sendRequest() - Took 0s amarok: BEGIN: bool amaroK::StreamProvider::processHeader(Q_LONG&, long int) amarok: [StreamProvider] Got shoutcast header: 'ICY 200 OK Server: lastserver Content-Type: audio/mpeg x-audiocast-location: Vienna AU x-audiocast-server-url: http://www.last.fm x-audiocast-name: Last.fm x-audiocast-description:n/a x-audiocast-url: http://www.last.fm x-audiocast-genre: n/a x-audiocast-bitrate: 128 x-audiocast-public: 1 amarok: ' amarok: [StreamProvider] Stream does not support Shoutcast Icy-MetaData. Restarting in non-Metadata mode. amarok: BEGIN: void amaroK::StreamProvider::connectToHost() amarok: END__: void amaroK::StreamProvider::connectToHost() - Took 0s amarok: END__: bool amaroK::StreamProvider::processHeader(Q_LONG&, long int) - Took 0s amarok: BEGIN: void amaroK::StreamProvider::sendRequest() amarok: [StreamProvider] Sending request: amarok: GET /last.mp3?Session=7d0dc0e92afa550a0637a8a1bafb41ec HTTP/1.0 Host: moses.last.fm User-Agent: amaroK/1.2 Accept: */* amarok: amarok: END__: void amaroK::StreamProvider::sendRequest() - Took 0s amarok: BEGIN: bool amaroK::StreamProvider::processHeader(Q_LONG&, long int) amarok: [StreamProvider] Got shoutcast header: 'HTTP/1.1 200 OK Date: Mon Mar 21 06:20:21 GMT 2005 Server: Last.fm Connection: Keep-Alive Cache-control: no-cache Accept-Ranges: bytes Content-Type: audio/mpeg amarok: ' amarok: BEGIN: void amaroK::StreamProvider::transmitData(const QString&) amarok: [StreamProvider] Received MetaData: amarok: BEGIN: void EngineSubject::newMetaDataNotify(const MetaBundle&, bool) amarok: [96x48] amarok: 22 amarok: 45 amarok: END__: void EngineSubject::newMetaDataNotify(const MetaBundle&, bool) - Took 0.03s amarok: END__: void amaroK::StreamProvider::transmitData(const QString&) - Took 0.03s amarok: END__: bool amaroK::StreamProvider::processHeader(Q_LONG&, long int) - Took 0.03s amarok: BEGIN: virtual bool CurrentTrackJob::doJob() amarok: END__: virtual bool CurrentTrackJob::doJob() - Took 0s amarok: [ThreadWeaver] Job completed: CurrentTrackJob. Jobs pending: 0 amarok: [StatusBar] 1resetMainText() amarok: [StreamSrc] Buffer underflow. Rebuffering. amarok: BEGIN: static void GstEngine::newPad_cb(GstElement*, GstPad*, int, InputPipeline*) (process:8793): GStreamer-WARNING **: pads don't accept old caps. We assume they did though (process:8793): GStreamer-WARNING **: pads don't accept old caps. We assume they did though amarok: END__: static void GstEngine::newPad_cb(GstElement*, GstPad*, int, InputPipeline*) - Took 0.24s amarok: BEGIN: static void GstEngine::found_tag_cb(GstElement*, GstElement*, GstTagList*, void*) amarok: END__: static void GstEngine::found_tag_cb(GstElement*, GstElement*, GstTagList*, void*) - Took 0s amarok: [StatusBar] 1resetMainText() amarok: [ThreadWeaver] Job aborted: CollectionReader. Jobs pending: 0 amarok: BEGIN: virtual void amaroK::DcopPlayerHandler::transferCliArgs(QStringList) amarok: Startup ID: amarok: Extracted: -a amarok: Extracted: /tmp/playlist-19.m3u amarok: BEGIN: UrlLoader amarok: BEGIN: UrlLoader::UrlLoader(const KURL::List&, QListViewItem*, bool) amarok: [KDE::ProgressBar::ProgressBar(QWidget*, QLabel*)] amarok: END__: UrlLoader::UrlLoader(const KURL::List&, QListViewItem*, bool) - Took 0s amarok: END__: virtual void amaroK::DcopPlayerHandler::transferCliArgs(QStringList) - Took 0.04s amarok: [StatusBar] 1updateProgressAppearance() amarok: [ThreadWeaver] Job completed: UrlLoader. Jobs pending: 0 amarok: END__: UrlLoader - Took 0.11s amarok: [controller] Loading URL: http://moses.last.fm/last.mp3?Session=7d0dc0e92afa550a0637a8a1bafb41ec amarok: [virtual amaroK::StreamProvider::~StreamProvider()] amarok: [virtual KDE::ProgressBar::~ProgressBar()] amarok: [StatusBar] 1hideMainProgressBar() amarok: [controller] Detected mimetype: audio/x-mp3 amarok: BEGIN: amaroK::StreamProvider::StreamProvider(KURL, const QString&) amarok: BEGIN: void amaroK::StreamProvider::connectToHost() amarok: END__: void amaroK::StreamProvider::connectToHost() - Took 0.01s amarok: END__: amaroK::StreamProvider::StreamProvider(KURL, const QString&) - Took 0.01s amarok: BEGIN: virtual bool GstEngine::load(const KURL&, bool) amarok: [Gst-Engine] Loading url: http://127.0.0.1 amarok: BEGIN: InputPipeline::InputPipeline() amarok: END__: InputPipeline::InputPipeline() - Took 0s amarok: [void gst_streamsrc_init(GstStreamSrc*)] amarok: END__: virtual bool GstEngine::load(const KURL&, bool) - Took 0.08s amarok: BEGIN: virtual bool GstEngine::play(unsigned int) amarok: BEGIN: void EngineSubject::stateChangedNotify(Engine::State) amarok: [virtual void amaroK::StatusBar::engineStateChanged(Engine::State)] Line: 123 amarok: BEGIN: virtual void ContextBrowser::engineStateChanged(Engine::State) amarok: END__: virtual void ContextBrowser::engineStateChanged(Engine::State) - Took 0s amarok: END__: void EngineSubject::stateChangedNotify(Engine::State) - Took 0.02s amarok: END__: virtual bool GstEngine::play(unsigned int) - Took 0.15s QObject::connect: No such signal EngineController::orderNext() QObject::connect: (sender name: 'unnamed') QObject::connect: (receiver name: 'unnamed') amarok: BEGIN: void EngineSubject::newMetaDataNotify(const MetaBundle&, bool) amarok: [296x48] amarok: 7 amarok: 45 amarok: END__: void EngineSubject::newMetaDataNotify(const MetaBundle&, bool) - Took 0.07s amarok: BEGIN: void amaroK::StreamProvider::sendRequest() amarok: [StreamProvider] Sending request: amarok: GET /last.mp3?Session=7d0dc0e92afa550a0637a8a1bafb41ec HTTP/1.0 Host: moses.last.fm User-Agent: amaroK/1.2 Accept: */* Icy-MetaData:1 amarok: amarok: END__: void amaroK::StreamProvider::sendRequest() - Took 0s amarok: [Gst-Engine] XFade-in finished. amarok: BEGIN: void GstEngine::destroyInput(InputPipeline*) amarok: [Gst-Engine] Destroying input pipeline. amarok: BEGIN: InputPipeline::~InputPipeline() amarok: [Gst-Engine] Destroying input bin. amarok: BEGIN: virtual bool CurrentTrackJob::doJob() amarok: END__: virtual bool CurrentTrackJob::doJob() - Took 0s
from what you describe, it sounds very similar to bug #102047. i would say its a dup, but i don't have the priviledge and the knowledge of how to do that in bugzilla.
Leo is correct. *** This bug has been marked as a duplicate of 102047 ***