Bug 187384

Summary: listAllEngines() sometimes returns empty list [crash @ ~ContextView]
Product: [Applications] amarok Reporter: Mark Kretschmann <kretschmann>
Component: generalAssignee: Amarok Developers <amarok-bugs-dist>
Status: RESOLVED FIXED    
Severity: crash CC: amarok-bugs-dist, antoine.gaillard13, GeoBaltz, kretschmann, unnamedrambler
Priority: HI    
Version: 2.1-SVN   
Target Milestone: ---   
Platform: unspecified   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: debug log of entire amarok session up to crash

Description Mark Kretschmann 2009-03-17 10:10:12 UTC
Version:           2.1-SVN (using 4.2.1 (KDE 4.2.1), Kubuntu packages)
Compiler:          cc
OS:                Linux (i686) release 2.6.27-13-server

This bug has been around for ages, but we could never really pinpoint it.

Symptoms: Amarok will randomly (perhaps 1 out of 10 times) crash on exit, in the destructor of ContextObserver.


Debug output:

amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView()                                                                                                                    
amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 0.00042s                                                                                                    
amarok: END__: void ServiceBrowser::removeService(const QString&) - Took 0.088s                                                                                                     
amarok: BEGIN: void ScriptManager::scriptFinished(QString)                                                                                                                          
amarok: BEGIN: virtual ScriptableServiceScript::~ScriptableServiceScript()                                                                                                          
amarok: END__: virtual ScriptableServiceScript::~ScriptableServiceScript() - Took 0.00014s                                                                                          
amarok: END__: void ScriptManager::scriptFinished(QString) - Took 0.0021s                                                                                                           
amarok: END__: void ScriptManager::slotStopScript(QString) - Took 0.091s                                                                                                            
amarok: BEGIN: void ScriptManager::slotStopScript(QString)                                                                                                                          
amarok: BEGIN: void ServiceBrowser::removeService(const QString&)                                                                                                                   
amarok:          removing service:  "Librivox.org"                                                                                                                                  
amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView()                                                                                                                    
amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 0.00024s                                                                                                    
amarok: END__: void ServiceBrowser::removeService(const QString&) - Took 0.0012s                                                                                                    
amarok: BEGIN: void ScriptManager::scriptFinished(QString)                                                                                                                          
amarok: BEGIN: virtual ScriptableServiceScript::~ScriptableServiceScript()                                                                                                          
amarok: END__: virtual ScriptableServiceScript::~ScriptableServiceScript() - Took 0.00019s                                                                                          
amarok: END__: void ScriptManager::scriptFinished(QString) - Took 0.016s                                                                                                            
amarok: END__: void ScriptManager::slotStopScript(QString) - Took 0.018s                                                                                                            
amarok: BEGIN: void ScriptManager::slotStopScript(QString)                                                                                                                          
amarok: BEGIN: void ScriptManager::scriptFinished(QString)                                                                                                                          
amarok: BEGIN: virtual ScriptableServiceScript::~ScriptableServiceScript()                                                                                                          
amarok: END__: virtual ScriptableServiceScript::~ScriptableServiceScript() - Took 0.00019s                                                                                          
amarok: END__: void ScriptManager::scriptFinished(QString) - Took 0.0059s                                                                                                           
amarok: END__: void ScriptManager::slotStopScript(QString) - Took 0.0063s                                                                                                           
amarok: END__: virtual ScriptManager::~ScriptManager() - Took 0.12s                                                                                                                 
amarok: BEGIN: virtual OSDWidget::~OSDWidget()                                                                                                                                      
amarok: END__: virtual OSDWidget::~OSDWidget() - Took 0.00012s                                                                                                                      
amarok: BEGIN: void SideBar::deleteBrowsers()                                                                                                                                       
amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView()                                                                                                                    
amarok: BEGIN: virtual CollectionTreeItemModel::~CollectionTreeItemModel()                                                                                                          
amarok: END__: virtual CollectionTreeItemModel::~CollectionTreeItemModel() - Took 0.00014s                                                                                          
amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 0.00041s                                                                                                    
amarok: BEGIN: virtual ServiceBrowser::~ServiceBrowser()                                                                                                                            
amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView()                                                                                                                    
amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 0.0038s                                                                                                     
amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView()                                                                                                                    
amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 9.5e-05s                                                                                                    
amarok: BEGIN: virtual LastFmService::~LastFmService()                                                                                                                              
amarok: END__: virtual LastFmService::~LastFmService() - Took 0.0035s                                                                                                               
amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView()                                                                                                                    
amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 8e-05s                                                                                                      
amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView()                                                                                                                    
amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 5.2e-05s                                                                                                    
amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView()                                                                                                                    
amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 5.2e-05s                                                                                                    
amarok: END__: virtual ServiceBrowser::~ServiceBrowser() - Took 0.031s                                                                                                              
amarok: BEGIN: virtual ScriptableServiceManager::~ScriptableServiceManager()                                                                                                        
amarok: END__: virtual ScriptableServiceManager::~ScriptableServiceManager() - Took 5.2e-05s                                                                                        
amarok: BEGIN: virtual FileBrowser::Widget::~Widget()                                                                                                                               
amarok: BEGIN: void FileBrowser::Widget::writeConfig()                                                                                                                              
amarok: END__: void FileBrowser::Widget::writeConfig() - Took 0.00021s                                                                                                              
amarok: END__: virtual FileBrowser::Widget::~Widget() - Took 0.00034s                                                                                                               
amarok: BEGIN: virtual MyDirLister::~MyDirLister()                                                                                                                                  
amarok: END__: virtual MyDirLister::~MyDirLister() - Took 0.0001s                                                                                                                   
amarok: END__: void SideBar::deleteBrowsers() - Took 0.093s                                                                                                                         
amarok: BEGIN: virtual MainWindow::~MainWindow()                                                                                                                                    
amarok: BEGIN: virtual PlaylistFileProvider::~PlaylistFileProvider()                                                                                                                
amarok:        0  Playlists loaded                                                                                                                                                  
amarok: END__: virtual PlaylistFileProvider::~PlaylistFileProvider() - Took 0.0065s                                                                                                 
amarok: BEGIN: virtual Context::ContextView::~ContextView()                                                                                                                         
amarok: BEGIN: void Context::ContextView::clear(const Context::ContextState&)                                                                                                       
amarok(19093) Context::ContextView::clear: "        " Line:  129                                                                                                                    
amarok: BEGIN: virtual void Context::VerticalAppletLayout::saveToConfig(KConfigGroup&)                                                                                              
amarok:            saving applet "Current Track"                                                                                                                                    
amarok:            saving applet "Wikipedia"                                                                                                                                        
amarok:            saving applet "Lyrics"                                                                                                                                           
amarok: END__: virtual void Context::VerticalAppletLayout::saveToConfig(KConfigGroup&) - Took 0.00024s                                                                              
amarok: BEGIN: virtual QSizeF LyricsApplet::sizeHint(Qt::SizeHint, const QSizeF&) const                                                                                             
amarok: END__: virtual QSizeF LyricsApplet::sizeHint(Qt::SizeHint, const QSizeF&) const - Took 9.9e-05s                                                                             
amarok: END__: void Context::ContextView::clear(const Context::ContextState&) - Took 0.029s                                                                                         
amarok: END__: virtual Context::ContextView::~ContextView() - Took 0.032s
amarok: BEGIN: virtual ContextSubject::~ContextSubject()
amarok: END__: virtual ContextSubject::~ContextSubject() - Took 3.9e-05s
amarok: BEGIN: virtual Context::ContextScene::~ContextScene()
amarok: END__: virtual Context::ContextScene::~ContextScene() - Took 9.4e-05s
amarok: BEGIN: virtual Context::Containment::~Containment()
amarok: END__: virtual Context::Containment::~Containment() - Took 4.1e-05s
amarok: BEGIN: virtual Amarok::Splitter::~Splitter()
amarok: END__: virtual Amarok::Splitter::~Splitter() - Took 7.3e-05s
amarok: BEGIN: virtual SideBar::~SideBar()
amarok: END__: virtual SideBar::~SideBar() - Took 9.7e-05s
amarok: BEGIN: virtual SideBarWidget::~SideBarWidget()
amarok: END__: virtual SideBarWidget::~SideBarWidget() - Took 0.0046s
amarok: BEGIN: virtual StatusBar::~StatusBar()
amarok: BEGIN: virtual CompoundProgressBar::~CompoundProgressBar()
amarok: BEGIN: virtual PopupWidget::~PopupWidget()
amarok: END__: virtual PopupWidget::~PopupWidget() - Took 4.1e-05s
amarok: END__: virtual CompoundProgressBar::~CompoundProgressBar() - Took 0.00018s
amarok: END__: virtual StatusBar::~StatusBar() - Took 0.0004s
amarok: BEGIN: virtual MainToolbar::~MainToolbar()
amarok: END__: virtual MainToolbar::~MainToolbar() - Took 6.2e-05s
amarok: BEGIN: virtual SvgHandler::~SvgHandler()
amarok: END__: virtual SvgHandler::~SvgHandler() - Took 0.0082s
amarok: BEGIN: virtual PaletteHandler::~PaletteHandler()
amarok: END__: virtual PaletteHandler::~PaletteHandler() - Took 4.3e-05s
amarok: END__: virtual MainWindow::~MainWindow() - Took 0.066s
amarok: BEGIN: virtual StarManager::~StarManager()
amarok: END__: virtual StarManager::~StarManager() - Took 0.00012s
amarok: BEGIN: virtual CollectionManager::~CollectionManager()
amarok: BEGIN: virtual MySqlEmbeddedCollection::~MySqlEmbeddedCollection()
amarok: END__: virtual MySqlEmbeddedCollection::~MySqlEmbeddedCollection() - Took 0.00014s
amarok: END__: virtual CollectionManager::~CollectionManager() - Took 0.0024s
amarok: BEGIN: virtual MountPointManager::~MountPointManager()
amarok: END__: virtual MountPointManager::~MountPointManager() - Took 0.00015s
amarok: BEGIN: virtual Playlist::Actions::~Actions()
amarok: END__: virtual Playlist::Actions::~Actions() - Took 0.00022s
amarok: BEGIN: virtual Playlist::Model::~Model()
amarok: BEGIN: bool PlaylistManager::exportPlaylist(Meta::TrackList, const QString&)
amarok: BEGIN: Meta::XSPFPlaylist::XSPFPlaylist(Meta::TrackList)
amarok: BEGIN: virtual void Meta::XSPFPlaylist::setTrackList(Meta::TrackList, bool)
amarok: END__: virtual void Meta::XSPFPlaylist::setTrackList(Meta::TrackList, bool) - Took 0.00023s
amarok: END__: Meta::XSPFPlaylist::XSPFPlaylist(Meta::TrackList) - Took 0.00057s
amarok: BEGIN: virtual bool Meta::XSPFPlaylist::save(const QString&, bool)
amarok: END__: virtual bool Meta::XSPFPlaylist::save(const QString&, bool) - Took 0.002s
amarok: END__: bool PlaylistManager::exportPlaylist(Meta::TrackList, const QString&) - Took 0.0032s
amarok: END__: virtual Playlist::Model::~Model() - Took 0.0035s
amarok: BEGIN: virtual EngineController::~EngineController()
amarok: END__: virtual EngineController::~EngineController() - Took 0.022s
amarok: END__: virtual App::~App() - Took 0.47s
amarok:  Deinitialized thread, count== 4
amarok: BEGIN: virtual ContextObserver::~ContextObserver()
amarok: BEGIN: void ContextSubject::detach(ContextObserver*)
QSocketNotifier: Invalid socket 41 and type 'Read', disabling...
KCrash: Application 'amarok' crashing...
Comment 1 Mark Kretschmann 2009-03-17 10:35:42 UTC
SVN commit 940326 by markey:

Make ContextObserver's ctor and dtor protected instead of public.

There's no use case in Amarok for creating a standalone ContextObserver
anywhere.

CCBUG: 187384

 M  +4 -3      ContextObserver.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=940326
Comment 2 Mark Kretschmann 2009-03-17 10:38:50 UTC
For comparison, debug output of _normal_ session, when Amarok does not crash on exit:


amarok: BEGIN: virtual void MetaStream::Track::unsubscribe(Meta::Observer*)                                                                                                         
amarok:      Removing observer:  0x8b65e20                                                                                                                                          
amarok: END__: virtual void MetaStream::Track::unsubscribe(Meta::Observer*) - Took 0.00011s                                                                                         
amarok: BEGIN: virtual OSDWidget::~OSDWidget()                                                                                                                                      
amarok: END__: virtual OSDWidget::~OSDWidget() - Took 3.5e-05s                                                                                                                      
amarok: BEGIN: void SideBar::deleteBrowsers()                                                                                                                                       
amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView()                                                                                                                    
amarok: BEGIN: virtual CollectionTreeItemModel::~CollectionTreeItemModel()                                                                                                          
amarok: END__: virtual CollectionTreeItemModel::~CollectionTreeItemModel() - Took 0.00011s                                                                                          
amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 0.00028s                                                                                                    
amarok: BEGIN: virtual ServiceBrowser::~ServiceBrowser()                                                                                                                            
amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView()                                                                                                                    
amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 0.00012s                                                                                                    
amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView()                                                                                                                    
amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 5.3e-05s                                                                                                    
amarok: BEGIN: virtual LastFmService::~LastFmService()                                                                                                                              
amarok: END__: virtual LastFmService::~LastFmService() - Took 0.0031s                                                                                                               
amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView()                                                                                                                    
amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 5.5e-05s                                                                                                    
amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView()                                                                                                                    
amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 4.4e-05s                                                                                                    
amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView()                                                                                                                    
amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 4.4e-05s                                                                                                    
amarok: END__: virtual ServiceBrowser::~ServiceBrowser() - Took 0.0058s                                                                                                             
amarok: BEGIN: virtual ScriptableServiceManager::~ScriptableServiceManager()                                                                                                        
amarok: END__: virtual ScriptableServiceManager::~ScriptableServiceManager() - Took 4.3e-05s                                                                                        
amarok: BEGIN: virtual FileBrowser::Widget::~Widget()                                                                                                                               
amarok: BEGIN: void FileBrowser::Widget::writeConfig()                                                                                                                              
amarok: END__: void FileBrowser::Widget::writeConfig() - Took 0.00017s                                                                                                              
amarok: END__: virtual FileBrowser::Widget::~Widget() - Took 0.00031s                                                                                                               
amarok: BEGIN: virtual MyDirLister::~MyDirLister()                                                                                                                                  
amarok: END__: virtual MyDirLister::~MyDirLister() - Took 9.7e-05s                                                                                                                  
amarok: END__: void SideBar::deleteBrowsers() - Took 0.088s                                                                                                                         
amarok: BEGIN: virtual MainWindow::~MainWindow()                                                                                                                                    
amarok: BEGIN: virtual PlaylistFileProvider::~PlaylistFileProvider()                                                                                                                
amarok:        0  Playlists loaded                                                                                                                                                  
amarok: END__: virtual PlaylistFileProvider::~PlaylistFileProvider() - Took 0.001s                                                                                                  
amarok: BEGIN: virtual Context::ContextView::~ContextView()                                                                                                                         
amarok:        Unloading plasma engine:  "amarok-current"                                                                                                                           
amarok: BEGIN: virtual CurrentEngine::~CurrentEngine()                                                                                                                              
amarok: END__: virtual CurrentEngine::~CurrentEngine() - Took 4.5e-05s                                                                                                              
amarok: BEGIN: virtual void MetaStream::Track::unsubscribe(Meta::Observer*)                                                                                                         
amarok:          Removing observer:  0x8d51684                                                                                                                                      
amarok: END__: virtual void MetaStream::Track::unsubscribe(Meta::Observer*) - Took 6.3e-05s                                                                                         
amarok: BEGIN: virtual ContextObserver::~ContextObserver()                                                                                                                          
amarok: BEGIN: void ContextSubject::detach(ContextObserver*)                                                                                                                        
amarok: END__: void ContextSubject::detach(ContextObserver*) - Took 3.6e-05s                                                                                                        
amarok: END__: virtual ContextObserver::~ContextObserver() - Took 9.8e-05s                                                                                                          
amarok:        Unloading plasma engine:  "amarok-service"                                                                                                                           
amarok:        Unloading plasma engine:  "amarok-wikipedia"                                                                                                                         
amarok: BEGIN: virtual WikipediaEngine::~WikipediaEngine()                                                                                                                          
amarok: END__: virtual WikipediaEngine::~WikipediaEngine() - Took 3.9e-05s                                                                                                          
amarok: BEGIN: virtual void MetaStream::Track::unsubscribe(Meta::Observer*)                                                                                                         
amarok:          Removing observer:  0x8d3813c                                                                                                                                      
amarok: END__: virtual void MetaStream::Track::unsubscribe(Meta::Observer*) - Took 7e-05s                                                                                           
amarok: BEGIN: virtual ContextObserver::~ContextObserver()                                                                                                                          
amarok: BEGIN: void ContextSubject::detach(ContextObserver*)                                                                                                                        
amarok: END__: void ContextSubject::detach(ContextObserver*) - Took 0.00063s                                                                                                        
amarok: END__: virtual ContextObserver::~ContextObserver() - Took 0.00084s                                                                                                          
amarok:        Unloading plasma engine:  "amarok-lyrics"                                                                                                                            
amarok: BEGIN: virtual void MetaStream::Track::unsubscribe(Meta::Observer*)                                                                                                         
amarok:          Removing observer:  0x8eb59fc                                                                                                                                      
amarok: END__: virtual void MetaStream::Track::unsubscribe(Meta::Observer*) - Took 0.00021s                                                                                         
amarok: BEGIN: virtual ContextObserver::~ContextObserver()                                                                                                                          
amarok: BEGIN: void ContextSubject::detach(ContextObserver*)                                                                                                                        
amarok: END__: void ContextSubject::detach(ContextObserver*) - Took 0.00011s                                                                                                        
amarok: END__: virtual ContextObserver::~ContextObserver() - Took 0.00032s                                                                                                          
amarok: BEGIN: void Context::ContextView::clear(const Context::ContextState&)                                                                                                       
amarok(26820) Context::ContextView::clear: "        " Line:  129                                                                                                                    
amarok: BEGIN: virtual void Context::VerticalAppletLayout::saveToConfig(KConfigGroup&)                                                                                              
amarok:            saving applet "Current Track"                                                                                                                                    
amarok:            saving applet "Wikipedia"                                                                                                                                        
amarok:            saving applet "Lyrics"                                                                                                                                           
amarok: END__: virtual void Context::VerticalAppletLayout::saveToConfig(KConfigGroup&) - Took 0.00056s                                                                              
amarok: BEGIN: virtual QSizeF LyricsApplet::sizeHint(Qt::SizeHint, const QSizeF&) const                                                                                             
amarok: END__: virtual QSizeF LyricsApplet::sizeHint(Qt::SizeHint, const QSizeF&) const - Took 0.00019s                                                                             
amarok: END__: void Context::ContextView::clear(const Context::ContextState&) - Took 0.005s                                                                                         
amarok: END__: virtual Context::ContextView::~ContextView() - Took 0.0098s                                                                                                          
amarok: BEGIN: virtual ContextSubject::~ContextSubject()                                                                                                                            
amarok: END__: virtual ContextSubject::~ContextSubject() - Took 0.00011s                                                                                                            
amarok: BEGIN: virtual Context::ContextScene::~ContextScene()                                                                                                                       
amarok: END__: virtual Context::ContextScene::~ContextScene() - Took 0.00025s
amarok: BEGIN: virtual Context::Containment::~Containment()
amarok: END__: virtual Context::Containment::~Containment() - Took 0.00011s
amarok: BEGIN: virtual Amarok::Splitter::~Splitter()
amarok: END__: virtual Amarok::Splitter::~Splitter() - Took 0.00021s
amarok: BEGIN: virtual SideBar::~SideBar()
amarok: END__: virtual SideBar::~SideBar() - Took 0.00024s
amarok: BEGIN: virtual SideBarWidget::~SideBarWidget()
amarok: END__: virtual SideBarWidget::~SideBarWidget() - Took 0.0021s
amarok: BEGIN: virtual StatusBar::~StatusBar()
amarok: BEGIN: virtual CompoundProgressBar::~CompoundProgressBar()
amarok: BEGIN: virtual PopupWidget::~PopupWidget()
amarok: END__: virtual PopupWidget::~PopupWidget() - Took 0.00011s
amarok: END__: virtual CompoundProgressBar::~CompoundProgressBar() - Took 0.0004s
amarok: END__: virtual StatusBar::~StatusBar() - Took 0.00085s
amarok: BEGIN: virtual void MetaStream::Track::unsubscribe(Meta::Observer*)
amarok:        Removing observer:  0x89bdf00
amarok: END__: virtual void MetaStream::Track::unsubscribe(Meta::Observer*) - Took 0.00021s
amarok: BEGIN: virtual MainToolbar::~MainToolbar()
amarok: END__: virtual MainToolbar::~MainToolbar() - Took 0.00018s
amarok: BEGIN: virtual SvgHandler::~SvgHandler()
amarok: END__: virtual SvgHandler::~SvgHandler() - Took 0.0075s
amarok: BEGIN: virtual PaletteHandler::~PaletteHandler()
amarok: END__: virtual PaletteHandler::~PaletteHandler() - Took 3.9e-05s
amarok: END__: virtual MainWindow::~MainWindow() - Took 0.1s
amarok: BEGIN: virtual void MetaStream::Track::unsubscribe(Meta::Observer*)
amarok:      Removing observer:  0x87ae450
amarok: END__: virtual void MetaStream::Track::unsubscribe(Meta::Observer*) - Took 6.1e-05s
amarok: BEGIN: virtual CollectionManager::~CollectionManager()
amarok: BEGIN: virtual MySqlEmbeddedCollection::~MySqlEmbeddedCollection()
amarok: END__: virtual MySqlEmbeddedCollection::~MySqlEmbeddedCollection() - Took 0.00012s
amarok: END__: virtual CollectionManager::~CollectionManager() - Took 0.0011s
amarok: BEGIN: virtual MountPointManager::~MountPointManager()
amarok: END__: virtual MountPointManager::~MountPointManager() - Took 4.7e-05s
amarok: BEGIN: virtual Playlist::Actions::~Actions()
amarok: END__: virtual Playlist::Actions::~Actions() - Took 4.3e-05s
amarok: BEGIN: virtual Playlist::Model::~Model()
amarok: BEGIN: bool PlaylistManager::exportPlaylist(Meta::TrackList, const QString&)
amarok: BEGIN: Meta::XSPFPlaylist::XSPFPlaylist(Meta::TrackList)
amarok: BEGIN: virtual void Meta::XSPFPlaylist::setTrackList(Meta::TrackList, bool)
amarok: END__: virtual void Meta::XSPFPlaylist::setTrackList(Meta::TrackList, bool) - Took 0.00011s
amarok: END__: Meta::XSPFPlaylist::XSPFPlaylist(Meta::TrackList) - Took 0.0002s
amarok: BEGIN: virtual bool Meta::XSPFPlaylist::save(const QString&, bool)
amarok: END__: virtual bool Meta::XSPFPlaylist::save(const QString&, bool) - Took 0.00095s
amarok: END__: bool PlaylistManager::exportPlaylist(Meta::TrackList, const QString&) - Took 0.0013s
amarok: END__: virtual Playlist::Model::~Model() - Took 0.0014s
amarok: BEGIN: virtual void MetaStream::Track::unsubscribe(Meta::Observer*)
amarok:      Removing observer:  0x89cf378
amarok: END__: virtual void MetaStream::Track::unsubscribe(Meta::Observer*) - Took 6.1e-05s
amarok: BEGIN: virtual EngineController::~EngineController()
amarok: END__: virtual EngineController::~EngineController() - Took 0.041s
amarok: END__: virtual App::~App() - Took 0.34s
amarok:  Deinitialized thread, count== 4
Comment 3 Mark Kretschmann 2009-03-17 11:35:04 UTC
SVN commit 940354 by markey:

Use X-KDE-ParentApp for identifying Amarok's plasma engines, instead of
the hack we used before.

(This is the way the Plasma docs recommend to do it).

PS: You may need to run "kbuildsycoca4" once, or suffer from horrible
crashes and skin diseases.

CCBUG: 187384

 M  +5 -8      ContextView.cpp  
 M  +1 -0      engines/current/amarok-data-engine-current.desktop  
 M  +2 -0      engines/lyrics/amarok-data-engine-lyrics.desktop  
 M  +1 -0      engines/service/amarok-data-engine-service.desktop  
 M  +2 -0      engines/wikipedia/amarok-data-engine-wikipedia.desktop  


WebSVN link: http://websvn.kde.org/?view=rev&revision=940354
Comment 4 Mark Kretschmann 2009-03-17 12:14:55 UTC
Wondering if my last commit fixed this bug.. I can't currently reproduce it any more (but this could be coincidence).

@All: Please keep an eye on this too :)
Comment 5 tamara 2009-03-17 19:24:33 UTC
hey 
can you help me 
i have a problem with my pc and i must anythinf wiht bugs report but i dont now what i must make .
  

mfg tamara
Comment 6 Mark Kretschmann 2009-03-18 13:42:11 UTC
Closing report for now, as I can't reproduce the problem any more. Please reopen if it happens again.
Comment 7 Mark Kretschmann 2009-03-18 13:49:12 UTC
Args, it just happened again.. reopening.
Comment 8 Mark Kretschmann 2009-03-22 11:28:56 UTC
SVN commit 942633 by markey:

Add assert on unloading plasma engines, checking if any engines are
loaded at all.

Apparently sometimes Amarok thinks that no
engines have been loaded, which leads to a crash. I'm trying to trace
down if this is a LibPlasma or Amarok bug.

CCBUG: 187384

 M  +4 -0      ContextView.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=942633
Comment 9 Mark Kretschmann 2009-03-23 16:25:11 UTC
Ok, so I just got this:

amarok: BEGIN: virtual Context::ContextView::~ContextView()

ASSERT failure in Listing loaded Plasma engines: "List is empty (no engines loaded!?)", file /home/mark/kde/src/amarok/src/context/ContextView.cpp, line 98

I think this makes it sound more and more likely that we're dealing with a bug in LibPlasma :)
Comment 10 Seb Ruiz 2009-03-24 13:05:49 UTC
*** Bug 187994 has been marked as a duplicate of this bug. ***
Comment 11 Mark Kretschmann 2009-03-25 11:12:19 UTC
I've opened a fresh bug report for libPlasma, as this one here got too confusing. It's here:

BUG 188064
Comment 12 Mark Kretschmann 2009-03-25 16:12:51 UTC
Might as well close this one now. Please the Plasma bug report for updates.
Comment 13 Casey Link 2010-02-17 02:59:26 UTC
I've been getting this crash recently.. not every time.

Thread 1 (Thread 0x7f13f50fb780 (LWP 12400)):
[KCrash Handler]
#5  0x00007f13f1ecf035 in raise () from /lib/libc.so.6
#6  0x00007f13f1ed0460 in abort () from /lib/libc.so.6
#7  0x00007f13f341d76f in qt_message_output(QtMsgType, char const*) () from /usr/lib/libQtCore.so.4
#8  0x00007f13f341d912 in ?? () from /usr/lib/libQtCore.so.4
#9  0x00007f13f341dac5 in qFatal(char const*, ...) () from /usr/lib/libQtCore.so.4
#10 0x00007f13f3ec3e1a in ~ContextView (this=0x336b450, __in_chrg=<value optimized out>) at /home/ramblurr/src/amarok/src/context/ContextView.cpp:118
#11 0x00007f13f42b26c9 in ~MainWindow (this=0x2972270, __in_chrg=<value optimized out>) at /home/ramblurr/src/amarok/src/MainWindow.cpp:214
#12 0x00007f13f4289070 in ~App (this=0x7fff75ad8280, __in_chrg=<value optimized out>) at /home/ramblurr/src/amarok/src/App.cpp:273
#13 0x000000000040af63 in main (argc=4, argv=0x7fff75ada1f8) at /home/ramblurr/src/amarok/src/main.cpp:237

/home/ramblurr/src/amarok/src/context/ContextView.cpp:118:

    // Assert added for tracing crash on exit, see BUG 187384
    Q_ASSERT_X( !engines.isEmpty(), "Listing loaded Plasma engines", "List is empty (no engines loaded!?)" );


so this isn't a libplasma issue... re opening the bug. 

crash on exits suck.
Comment 14 Casey Link 2010-02-17 03:00:44 UTC
Created attachment 40868 [details]
debug log of entire amarok session up to crash

attached is the debug log for the entire amarok session up until the crash
Comment 15 George Baltz 2010-03-15 19:37:02 UTC
*** Bug 230844 has been marked as a duplicate of this bug. ***
Comment 16 Mark Kretschmann 2010-04-11 12:58:42 UTC
@Casey: I'm sorry, but I fail to understand why you say it's not a Plasma issue. What's the rationale?

If this assert gets triggered, it proves that it's a Plasma bug, that's why I put it there.
Comment 17 George Baltz 2010-04-14 16:28:44 UTC
See Bug #234350 - problem is that kbuildsycoca4 is being run by somebody else (in my case YAST/updateapplet) without the amarok info.  Probably this bug only affects developers or anybody else running their own copy of amarok - any distro package manager will respect the SPOT (Single Point Of Truth) principal.

One quick mitigation would be adding caveats to the info about building/running your own copy of amarok :-(.
Comment 18 Sven Krohlas 2010-04-15 23:56:18 UTC
*** Bug 234350 has been marked as a duplicate of this bug. ***
Comment 19 George Baltz 2010-04-16 02:15:55 UTC
Never mind.  After 2 successful attempts to reproduce this (with the auto updates), today the assert failed again without any install.

Allow me to slowly slink away, muttering quietly to myself "Correlation is not causation", "Correlation is not causation", ...
Comment 20 Mark Kretschmann 2010-04-16 09:15:23 UTC
At any rate, how is this an Amarok bug? If anything, it seems to be a KDE (or Plasma) bug.

I could remove the ASSERT, and then the code would still be buggy. That's not what we want, right?
Comment 21 Mark Kretschmann 2010-04-27 09:08:02 UTC
Could those of you who are affected by this bug please have a look at this comment?

https://bugs.kde.org/show_bug.cgi?id=188064#c5


I'd like to make sure once and for all if this is a real bug, or not.
Comment 22 George Baltz 2010-05-15 14:41:51 UTC
I put this line

export KDEDIRS=$HOME/kde

into ~/.kde4/env/myenv.sh about 10 days ago, and no crashes since then.  Looks like you got it...
Comment 23 Myriam Schweingruber 2010-05-29 15:39:14 UTC
Closing since it is not reproducible anymore.