Summary: | Crashes when enabling Last.fm on a fresh installation [@ Amarok2ConfigDialog::~Amarok2ConfigDialog] | ||
---|---|---|---|
Product: | [Applications] amarok | Reporter: | Emils Solmanis <vasjapupkins> |
Component: | Services/Last.fm | Assignee: | Amarok Developers <amarok-bugs-dist> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | andrew, arne, dvratil, kretschmann, matej, rocstipe, sam, vasjapupkins |
Priority: | NOR | ||
Version: | 2.6-git | ||
Target Milestone: | 2.7 | ||
Platform: | Fedora RPMs | ||
OS: | Linux | ||
Latest Commit: | http://commits.kde.org/amarok/d9a72268a5cfe5f53d84f8fd57c5f8611f54fd76 | Version Fixed In: | 2.7 |
Description
Emils Solmanis
2012-09-01 14:03:21 UTC
*** Bug 308702 has been marked as a duplicate of this bug. *** Got the same crash on 2.6-git today: Thread 1 (Thread 0x7fb67af5e780 (LWP 1835)): [KCrash Handler] #6 0x00007fb67a059692 in Amarok2ConfigDialog::updateSettings (this=0x9019f80) at /home/myriam/kde/src/amarok/src/configdialog/ConfigDialog.cpp:141 #7 0x00007fb67861cf5f in QMetaObject::activate (sender=0x9019f80, m=<optimized out>, local_signal_index=<optimized out>, argv=0x0) at kernel/qobject.cpp:3547 #8 0x00007fb67a99ffe8 in KDialog::slotButtonClicked (this=0x9019f80, button=4) at ../../kdeui/dialogs/kdialog.cpp:884 #9 0x00007fb67a9a0414 in qt_static_metacall (_a=<optimized out>, _id=<optimized out>, _o=<optimized out>, _c=<optimized out>) at ./kdialog.moc:167 #10 KDialog::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ./kdialog.moc:127 #11 0x00007fb67861cf5f in QMetaObject::activate (sender=0x902a080, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fffeadceb80) at kernel/qobject.cpp:3547 #12 0x00007fb678622e2e in QSignalMapper::mapped (this=this@entry=0x902a080, _t1=4) at .moc/release-shared/moc_qsignalmapper.cpp:115 #13 0x00007fb678623035 in QSignalMapper::map (this=0x902a080, sender=0x5833260) at kernel/qsignalmapper.cpp:266 #14 0x00007fb67861cf5f in QMetaObject::activate (sender=0x5833260, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fffeadced10) at kernel/qobject.cpp:3547 #15 0x00007fb679653422 in QAbstractButton::clicked (this=<optimized out>, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:220 #16 0x00007fb6793a6d2e in QAbstractButtonPrivate::emitClicked (this=this@entry=0x68dc6b0) at widgets/qabstractbutton.cpp:548 #17 0x00007fb6793a7560 in QAbstractButtonPrivate::click (this=this@entry=0x68dc6b0) at widgets/qabstractbutton.cpp:541 #18 0x00007fb6793a77cc in QAbstractButton::mouseReleaseEvent (this=0x5833260, e=0x7fffeadcf5b0) at widgets/qabstractbutton.cpp:1123 #19 0x00007fb679038850 in QWidget::event (this=0x5833260, event=0x7fffeadcf5b0) at kernel/qwidget.cpp:8371 #20 0x00007fb678fe8e9c in QApplicationPrivate::notify_helper (this=this@entry=0x1a36680, receiver=receiver@entry=0x5833260, e=e@entry=0x7fffeadcf5b0) at kernel/qapplication.cpp:4562 #21 0x00007fb678fedb6b in QApplication::notify (this=<optimized out>, receiver=0x5833260, e=0x7fffeadcf5b0) at kernel/qapplication.cpp:4105 #22 0x00007fb67aa3f1d6 in KApplication::notify (this=0x7fffeadd25c0, receiver=0x5833260, event=0x7fffeadcf5b0) at ../../kdeui/kernel/kapplication.cpp:311 #23 0x00007fb67860756e in QCoreApplication::notifyInternal (this=0x7fffeadd25c0, receiver=0x5833260, event=0x7fffeadcf5b0) at kernel/qcoreapplication.cpp:915 #24 0x00007fb678fe9cd3 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231 #25 QApplicationPrivate::sendMouseEvent (receiver=0x5833260, event=0x7fffeadcf5b0, alienWidget=0x5833260, nativeWidget=0x51fc2a0, buttonDown=0x7fb679ac5308 <qt_button_down>, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3173 #26 0x00007fb679067554 in QETWidget::translateMouseEvent (this=this@entry=0x51fc2a0, event=event@entry=0x7fffeadcfd30) at kernel/qapplication_x11.cpp:4622 #27 0x00007fb67906644f in QApplication::x11ProcessEvent (this=0x7fffeadd25c0, event=0x7fffeadcfd30) at kernel/qapplication_x11.cpp:3737 #28 0x00007fb67908dfa2 in x11EventSourceDispatch (s=s@entry=0x1a35900, callback=0x0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146 #29 0x00007fb671638ab5 in g_main_dispatch (context=0x1a3b330) at /build/buildd/glib2.0-2.34.0/./glib/gmain.c:2715 #30 g_main_context_dispatch (context=context@entry=0x1a3b330) at /build/buildd/glib2.0-2.34.0/./glib/gmain.c:3219 #31 0x00007fb671638de8 in g_main_context_iterate (context=context@entry=0x1a3b330, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at /build/buildd/glib2.0-2.34.0/./glib/gmain.c:3290 #32 0x00007fb671638ea4 in g_main_context_iteration (context=0x1a3b330, may_block=1) at /build/buildd/glib2.0-2.34.0/./glib/gmain.c:3351 #33 0x00007fb678635bf6 in QEventDispatcherGlib::processEvents (this=0x18c4ad0, flags=...) at kernel/qeventdispatcher_glib.cpp:424 #34 0x00007fb67908dc1e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204 #35 0x00007fb6786062bf in QEventLoop::processEvents (this=this@entry=0x7fffeadd0100, flags=...) at kernel/qeventloop.cpp:149 #36 0x00007fb678606548 in QEventLoop::exec (this=0x7fffeadd0100, flags=...) at kernel/qeventloop.cpp:204 #37 0x00007fb67860b708 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1187 #38 0x000000000040cd32 in main (argc=3, argv=0x7fffeadd2708) at /home/myriam/kde/src/amarok/src/main.cpp:330 Reproducible with any fresh install and whatever Internet Service one does configure, not related to last.fm. I had it with the Gpodder configuration. Using Amarok 2.6 on Kubuntu 12.10 with KDE 4.9.3. I can confirm Amarok crashes with last.fm enabled. When started from the console this error is output before the crash. QMetaObject::invokeMethod: No such method App::onWsError(lastfm::ws::Error) " Invalid API key - You must be granted a valid key by last.fm " 10 "<?xml version="1.0" encoding="utf-8"?> <lfm status="failed"> <error code="10"> Invalid API key - You must be granted a valid key by last.fm </error> </lfm> If i disable last.fm in ~/.kde/share/config/amarokrc then Amarok start with no problem *** Bug 310680 has been marked as a duplicate of this bug. *** *** Bug 311281 has been marked as a duplicate of this bug. *** Reassigning back to Last.fm. While more services may suffer from the similar error (whose cause is now clear to me), the code is not shared, so it needs to be reported for each service individually. The fix for Last.fm should land any time now. Git commit d9a72268a5cfe5f53d84f8fd57c5f8611f54fd76 by Matěj Laitl. Committed on 12/12/2012 at 23:31. Pushed by laitl into branch 'master'. Last.fm plugin: major rework of configuration and more This work started as an attempt to fix bug 306134. I figured out that the synchronous KWallet API is simply dangerous, and the async one must be used. But that meant to make LastFmServiceConfig a "living" object with updated() signal, which triggered refactoring of all its usage. Users of LastFmServiceConfig now watch for its changes and should act appropriately. The LastFmServiceConfig now has only one instance shared between LastFmService and LastFmServiceSettings - I had to introduce another shared library because KCM modules use separate library, silly. Moreover, some extremely ugly things in Last.fm plugin got reworked to me clean and maintainable, reducing code duplication. Patrick, please tests whether this still builds on Windows, I hope I've done KDE_EXPORT/KDE_IMPORT right, but I cannot test under Linux. CHANGES: * When configuring Last.fm plug-in, the changes are now applied immediately in most places. BUGFIXES: * Fix suboptimal KWallet usage in Last.fm plugin. * Fix crash in Last.fm plugin caused by sloppy KWallet usage. Related: bug 311331, bug 292096 FIXED-IN: 2.7 DIGEST: Last.fm plugin configuration reworked for smoother experience CCMAIL: Patrick von Reth <vonreth@kde.org> M +4 -0 ChangeLog M +15 -2 src/services/lastfm/CMakeLists.txt M +166 -147 src/services/lastfm/LastFmService.cpp M +9 -5 src/services/lastfm/LastFmService.h M +5 -7 src/services/lastfm/LastFmServiceCollection.cpp M +1 -2 src/services/lastfm/LastFmServiceCollection.h M +160 -110 src/services/lastfm/LastFmServiceConfig.cpp M +50 -24 src/services/lastfm/LastFmServiceConfig.h M +37 -41 src/services/lastfm/LastFmServiceSettings.cpp M +3 -1 src/services/lastfm/LastFmServiceSettings.h M +4 -4 src/services/lastfm/LastFmTreeModel.cpp M +1 -2 src/services/lastfm/LastFmTreeModel.h M +3 -4 src/services/lastfm/ScrobblerAdapter.cpp M +3 -2 src/services/lastfm/ScrobblerAdapter.h M +5 -6 src/services/lastfm/SynchronizationAdapter.cpp M +3 -2 src/services/lastfm/SynchronizationAdapter.h C +16 -35 src/services/lastfm/amarok_lastfm_shared_export.h [from: src/services/lastfm/LastFmServiceSettings.h - 058% similarity] M +0 -9 src/services/lastfm/meta/LastFmMeta.cpp M +1 -1 src/services/lastfm/meta/LastFmMeta.h http://commits.kde.org/amarok/d9a72268a5cfe5f53d84f8fd57c5f8611f54fd76 |