Version: 2.1-SVN (using KDE 4.2.0) OS: OS X Installed from: Unspecified on osx,with my large collection (28000 songs), it takes about 4-5 seconds for the "last played" etc info to load in the current applet, after i press stop. if i quit amarok during this time, it crashes. log and bt below: amarok: BEGIN: virtual void MainWindow::closeEvent(QCloseEvent*) amarok: END__: virtual void MainWindow::closeEvent(QCloseEvent*) - Took 0.027s amarok: BEGIN: virtual App::~App() amarok: BEGIN: virtual void SqlCollection::stopScan() amarok: BEGIN: virtual ScanManager::~ScanManager() amarok: BEGIN: void ScanManager::stopParser() amarok: END__: void ScanManager::stopParser() - Took 3.7e-05s amarok: END__: virtual ScanManager::~ScanManager() - Took 0.00011s amarok: END__: virtual void SqlCollection::stopScan() - Took 0.00032s amarok: BEGIN: virtual ScriptManager::~ScriptManager() amarok: BEGIN: void ScriptManager::slotStopScript(QString) amarok: BEGIN: void ServiceBrowser::removeService(const QString&) amarok: removing service: "Cool Streams" amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView() amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 0.00018s amarok: END__: void ServiceBrowser::removeService(const QString&) - Took 0.0014s amarok: BEGIN: void ScriptManager::scriptFinished(QString) amarok: BEGIN: virtual ScriptableServiceScript::~ScriptableServiceScript() amarok: END__: virtual ScriptableServiceScript::~ScriptableServiceScript() - Took 4e-05s amarok: END__: void ScriptManager::scriptFinished(QString) - Took 0.0006s amarok: END__: void ScriptManager::slotStopScript(QString) - Took 0.0022s 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 4e-05s amarok: END__: void ServiceBrowser::removeService(const QString&) - Took 0.00052s amarok: BEGIN: void ScriptManager::scriptFinished(QString) amarok: BEGIN: virtual ScriptableServiceScript::~ScriptableServiceScript() amarok: END__: virtual ScriptableServiceScript::~ScriptableServiceScript() - Took 3.8e-05s amarok: END__: void ScriptManager::scriptFinished(QString) - Took 0.019s amarok: END__: void ScriptManager::slotStopScript(QString) - Took 0.02s amarok: BEGIN: void ScriptManager::slotStopScript(QString) amarok: BEGIN: void ScriptManager::scriptFinished(QString) amarok: BEGIN: virtual ScriptableServiceScript::~ScriptableServiceScript() amarok: END__: virtual ScriptableServiceScript::~ScriptableServiceScript() - Took 3.7e-05s amarok: END__: void ScriptManager::scriptFinished(QString) - Took 0.0058s amarok: END__: void ScriptManager::slotStopScript(QString) - Took 0.0061s amarok: BEGIN: void ScriptManager::slotStopScript(QString) amarok: BEGIN: void ServiceBrowser::removeService(const QString&) amarok: removing service: "Seeqpod.com" amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView() amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 0.00017s amarok: END__: void ServiceBrowser::removeService(const QString&) - Took 0.0015s amarok: BEGIN: void ScriptManager::scriptFinished(QString) amarok: BEGIN: virtual ScriptableServiceScript::~ScriptableServiceScript() amarok: END__: virtual ScriptableServiceScript::~ScriptableServiceScript() - Took 4.5e-05s amarok: END__: void ScriptManager::scriptFinished(QString) - Took 0.019s amarok: END__: void ScriptManager::slotStopScript(QString) - Took 0.021s amarok: END__: virtual ScriptManager::~ScriptManager() - Took 0.15s amarok: BEGIN: virtual OSDWidget::~OSDWidget() amarok: END__: virtual OSDWidget::~OSDWidget() - Took 7.8e-05s amarok: BEGIN: void SideBar::deleteBrowsers() amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView() amarok: BEGIN: virtual CollectionTreeItemModel::~CollectionTreeItemModel() amarok: END__: virtual CollectionTreeItemModel::~CollectionTreeItemModel() - Took 0.00026s amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 0.0006s amarok: BEGIN: virtual ServiceBrowser::~ServiceBrowser() amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView() amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 0.00013s amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView() amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 4.1e-05s amarok: BEGIN: virtual LastFmService::~LastFmService() amarok: END__: virtual LastFmService::~LastFmService() - Took 0.0044s amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView() amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 0.00017s amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView() amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 0.00034s amarok: BEGIN: virtual CollectionTreeView::~CollectionTreeView() amarok: END__: virtual CollectionTreeView::~CollectionTreeView() - Took 0.00011s amarok: END__: virtual ServiceBrowser::~ServiceBrowser() - Took 0.015s amarok: BEGIN: virtual ScriptableServiceManager::~ScriptableServiceManager() amarok: END__: virtual ScriptableServiceManager::~ScriptableServiceManager() - Took 4.7e-05s amarok: BEGIN: virtual FileBrowser::Widget::~Widget() amarok: BEGIN: void FileBrowser::Widget::writeConfig() amarok: END__: void FileBrowser::Widget::writeConfig() - Took 0.00046s amarok: END__: virtual FileBrowser::Widget::~Widget() - Took 0.00057s amarok: BEGIN: virtual MyDirLister::~MyDirLister() amarok: END__: virtual MyDirLister::~MyDirLister() - Took 4.7e-05s amarok: END__: void SideBar::deleteBrowsers() - Took 0.042s amarok: BEGIN: virtual MainWindow::~MainWindow() amarok: BEGIN: virtual PlaylistFileProvider::~PlaylistFileProvider() amarok: 0 Playlists loaded amarok: END__: virtual PlaylistFileProvider::~PlaylistFileProvider() - Took 0.0033s amarok: BEGIN: virtual Context::ContextView::~ContextView() amarok: Unloading plasma engine: "amarok-lyrics" amarok: BEGIN: virtual ContextObserver::~ContextObserver() amarok: BEGIN: void ContextSubject::detach(ContextObserver*) amarok: END__: void ContextSubject::detach(ContextObserver*) - Took 0.00012s amarok: END__: virtual ContextObserver::~ContextObserver() - Took 0.0003s amarok: Unloading plasma engine: "amarok-service" amarok: Unloading plasma engine: "amarok-wikipedia" amarok: BEGIN: virtual WikipediaEngine::~WikipediaEngine() amarok: END__: virtual WikipediaEngine::~WikipediaEngine() - Took 4.4e-05s amarok: BEGIN: virtual ContextObserver::~ContextObserver() amarok: BEGIN: void ContextSubject::detach(ContextObserver*) amarok: END__: void ContextSubject::detach(ContextObserver*) - Took 4.2e-05s amarok: END__: virtual ContextObserver::~ContextObserver() - Took 0.00011s amarok: Unloading plasma engine: "amarok-current" amarok: BEGIN: virtual CurrentEngine::~CurrentEngine() amarok: END__: virtual CurrentEngine::~CurrentEngine() - Took 8e-05s amarok: BEGIN: virtual ContextObserver::~ContextObserver() amarok: BEGIN: void ContextSubject::detach(ContextObserver*) amarok: END__: void ContextSubject::detach(ContextObserver*) - Took 3.7e-05s amarok: END__: virtual ContextObserver::~ContextObserver() - Took 0.0001s amarok: BEGIN: void Context::ContextView::clear(const Context::ContextState&) amarok(66604) Context::ContextView::clear: " " Line: 126 amarok: BEGIN: virtual void Context::VerticalAppletLayout::saveToConfig(KConfigGroup&) amarok: saving applet "Current Track" amarok: saving applet "Lyrics" amarok: saving applet "Wikipedia" amarok: END__: virtual void Context::VerticalAppletLayout::saveToConfig(KConfigGroup&) - Took 0.00052s amarok: BEGIN: virtual QSizeF LyricsApplet::sizeHint(Qt::SizeHint, const QSizeF&) const amarok: END__: virtual QSizeF LyricsApplet::sizeHint(Qt::SizeHint, const QSizeF&) const - Took 4.4e-05s amarok: END__: void Context::ContextView::clear(const Context::ContextState&) - Took 0.015s amarok: END__: virtual Context::ContextView::~ContextView() - Took 0.017s amarok: BEGIN: virtual ContextSubject::~ContextSubject() amarok: END__: virtual ContextSubject::~ContextSubject() - Took 3.8e-05s amarok: BEGIN: virtual Context::ContextScene::~ContextScene() amarok: END__: virtual Context::ContextScene::~ContextScene() - Took 4.2e-05s amarok: BEGIN: virtual Context::Containment::~Containment() amarok: END__: virtual Context::Containment::~Containment() - Took 3.9e-05s amarok: BEGIN: virtual Amarok::Splitter::~Splitter() amarok: END__: virtual Amarok::Splitter::~Splitter() - Took 4.5e-05s amarok: BEGIN: virtual SideBar::~SideBar() amarok: END__: virtual SideBar::~SideBar() - Took 0.0003s amarok: BEGIN: virtual SideBarWidget::~SideBarWidget() amarok: END__: virtual SideBarWidget::~SideBarWidget() - Took 0.0042s amarok: BEGIN: virtual StatusBar::~StatusBar() amarok: BEGIN: virtual CompoundProgressBar::~CompoundProgressBar() amarok: BEGIN: virtual PopupWidget::~PopupWidget() amarok: END__: virtual PopupWidget::~PopupWidget() - Took 0.0001s amarok: END__: virtual CompoundProgressBar::~CompoundProgressBar() - Took 0.00044s amarok: END__: virtual StatusBar::~StatusBar() - Took 0.001s amarok: BEGIN: virtual MainToolbar::~MainToolbar() amarok: END__: virtual MainToolbar::~MainToolbar() - Took 4.4e-05s amarok: BEGIN: virtual SvgHandler::~SvgHandler() amarok: END__: virtual SvgHandler::~SvgHandler() - Took 0.67s amarok: BEGIN: virtual PaletteHandler::~PaletteHandler() amarok: END__: virtual PaletteHandler::~PaletteHandler() - Took 4e-05s amarok: END__: virtual MainWindow::~MainWindow() - Took 0.74s amarok: BEGIN: virtual CollectionManager::~CollectionManager() amarok: BEGIN: virtual MySqlEmbeddedCollection::~MySqlEmbeddedCollection() amarok: END__: virtual MySqlEmbeddedCollection::~MySqlEmbeddedCollection() - Took 0.00026s QMutex: cv destroy failure: Resource busy QMutex: mutex destroy failure: Resource busy amarok: END__: virtual CollectionManager::~CollectionManager() - Took 0.0057s amarok: BEGIN: virtual MountPointManager::~MountPointManager() Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_INVALID_ADDRESS at address: 0x30d1d9e2 [Switching to process 66604 thread 0xa907] 0x1e531a23 in evaluate_join_record () (gdb) bt #0 0x1e531a23 in evaluate_join_record () #1 0x1e537035 in sub_select () #2 0x1e531b74 in evaluate_join_record () #3 0x1e537035 in sub_select () #4 0x1e531b74 in evaluate_join_record () #5 0x1e537035 in sub_select () #6 0x1e531b74 in evaluate_join_record () #7 0x1e537035 in sub_select () #8 0x1e531b74 in evaluate_join_record () #9 0x1e537035 in sub_select () #10 0x1e531b74 in evaluate_join_record () #11 0x1e537035 in sub_select () #12 0x1e531b74 in evaluate_join_record () #13 0x1e537092 in sub_select () #14 0x1e53f5dc in do_select () #15 0x1e54b1f8 in JOIN::exec () #16 0x1e54d327 in mysql_select () #17 0x1e54d962 in handle_select () #18 0x1e50d08c in execute_sqlcom_select () #19 0x1e50e20a in mysql_execute_command () #20 0x1e513ef4 in mysql_parse () #21 0x1e515510 in dispatch_command () #22 0x1e47c6a3 in emb_advanced_command () #23 0x1e3a92e5 in mysql_send_query () #24 0x1e3a9360 in mysql_real_query () #25 0x1e480705 in mysql_query () b#26 0x1e21e7ff in MySqlEmbeddedCollection::query (this=0x1b8af5a0, statement=@0xb01bedfc) at /Users/leofranchi/kde/amarok/src/collection/sqlcollection/MySqlEmbeddedCollection.cpp:197 ^R #27 0x1e1f7a84 in SqlQueryMaker::runQuery (this=0x208a1490, query=@0xb01bedfc) at /Users/leofranchi/kde/amarok/src/collection/sqlcollection/SqlQueryMaker.cpp:664 #28 0x1e2011c1 in SqlWorkerThread::run (this=0x2fb53b80) at /Users/leofranchi/kde/amarok/src/collection/sqlcollection/SqlQueryMaker.cpp:55 #29 0x000f704c in ThreadWeaver::JobRunHelper::runTheJob () #30 0x000f75df in ThreadWeaver::Job::execute () #31 0x000f60f2 in ThreadWeaver::ThreadRunHelper::run () #32 0x000f66b4 in ThreadWeaver::Thread::run () #33 0x019a3e7b in QThreadPrivate::start () #34 0x9725b095 in _pthread_start () #35 0x9725af52 in thread_start ()
SVN commit 941003 by lfranchi: abort queries on destruction. supposed to fix the crash i'm working on, but doesn't. still good practice to clean up in destruction. CCBUG: 187510 M +9 -0 CurrentEngine.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=941003
Any news on this?
Leo, did you continue to work on this?
Adapted title...
I can't reproduce this with current Amarok 2.2-git. Leo, it says all platforms, but isn't this OS X specific?
i just reproduced on linux a week or so ago. basically I have to quit amarok in the last 1s or so before the query finishes. I have a large collection (38000 tracks) so the query is sorta slow, total time might be 3-5 seconds. if I quit in the last 1 or so of those, amarok crashes in mysqle code.
Changing target
Leo, is this still valid? I can't reproduce this here, Amarok 2.2-git Qt 4.5.2, KDE 4.3.3
Leo, any change to get this done for 2.2.2?
This could probably be fixed with a loop, checking for Job::isFinished(), and sleeping 100ms for each iteration. I could do that, but I couldn't test it (my collection is too small to trigger this bug). And really, why do I have to do all this shit :)
Adding keyword.
Changing target.
is this stil valid??
This is an automated message from the triager: Amarok 2.4.1 has been released on May 8 already. Could you please upgrade and test if you can still reproduce this bug? Without feedback within a month we will close this bug as resolved. Thank you for your understanding.
Closing for lack of feedback. Feel free to reopen if you can still reproduce this with Amarok 2.4.2 beta 1 or later and provide the necessary feedback. Assuming this is fixed.