Summary: | Amarok fails to start with Dynamic Playlists enabled [@ ~BiasedPlaylist] | ||
---|---|---|---|
Product: | [Applications] amarok | Reporter: | Ryan Rix <ry> |
Component: | Playlists/Dynamic Playlists | Assignee: | Amarok Developers <amarok-bugs-dist> |
Status: | RESOLVED FIXED | ||
Severity: | grave | CC: | ashl1future, contact, kosslerj, lfranchi, mfraz74+kde, mikko.cal, p.garcifer, ralf-engels, rdieter, s.hs, s7mon, yzhernand |
Priority: | NOR | Keywords: | release_blocker |
Version: | 2.3.2 | ||
Target Milestone: | 2.4.0 | ||
Platform: | unspecified | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 2.4 |
Description
Ryan Rix
2010-05-01 20:29:27 UTC
I should say; it's not dying, it's simply freezing. http://pastebin.com/nVCjZdam And here we are, taken after a fresh reboot (not after X crashed) I had the exact same problem a few days ago. "solved" the same way as Ryan, otherwise amarok would not startup, just freeze. Also reproducable here, as soon as i close amarok with dynamic mode = true it doesn't start up any more. All i see when running in gdb is: Traceback (most recent call last): File "/usr/share/gdb/auto-load/usr/lib64/libgobject-2.0.so.0.2200.5-gdb.py", line 9, in <module> from gobject import register File "/usr/share/glib-2.0/gdb/gobject.py", line 3, in <module> import gdb.backtrace ImportError: No module named backtrace <unknown program name>(32105)/: KUniqueApplication: Can't setup D-Bus service. Probably already running. Program exited with code 0377. It just happened again here. Amarok simply froze immediately. Starting it with gdb seems to blame dbus! But modifying amarokrc to Dynamic=false also fixes it. amarok(2871)/kdecore (KSycoca) KSycocaPrivate::openDatabase: Trying to open ksycoca from "/var/tmp/kdecache-mikkocdV2Cn/ksycoca4" add aout default add aout dummy add aout alsa add aout aout_sdl add aout aout_file amarok(2871) Phonon::KdePlatformPlugin::createBackend: using backend: "VLC" amarok(2871)/kdecore (KSycoca) KSycocaPrivate::openDatabase: Trying to open ksycoca from "/var/tmp/kdecache-mikkocdV2Cn/ksycoca4" kmimetype filetype guessing failed for /home/mikko/ kmimetype filetype guessing failed for /home/mikko/ kmimetype filetype guessing failed for /home/mikko/ kmimetype filetype guessing failed for /home/mikko/ kmimetype filetype guessing failed for /home/mikko/ kmimetype filetype guessing failed for /home/mikko/ amarok(2871)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing "/usr/share/mime/magic" amarok(2871)/kdecore (services) KMimeTypeFactory::parseMagic: Now parsing "/home/mikko/.local/share/mime/magic" kmimetype filetype guessing failed for /usr/lib64/libvlc.so.5.0.0 kmimetype filetype guessing failed for /usr/lib64/libvlc.so.5.0.0 QStringList Solid::Backends::KUPnP::KUPnPManager::findDeviceByDeviceInterface(Solid::DeviceInterface::Type) error: "org.freedesktop.DBus.Error.ServiceUnknown" QStringList Solid::Backends::KUPnP::KUPnPManager::findDeviceByDeviceInterface(Solid::DeviceInterface::Type) error: "org.freedesktop.DBus.Error.ServiceUnknown" QStringList Solid::Backends::KUPnP::KUPnPManager::findDeviceByDeviceInterface(Solid::DeviceInterface::Type) error: "org.freedesktop.DBus.Error.ServiceUnknown" virtual QStringList Solid::Backends::KUPnP::KUPnPManager::allDevices() error: "org.freedesktop.DBus.Error.ServiceUnknown" QStringList Solid::Backends::KUPnP::KUPnPManager::findDeviceByDeviceInterface(Solid::DeviceInterface::Type) error: "org.freedesktop.DBus.Error.ServiceUnknown" QStringList Solid::Backends::KUPnP::KUPnPManager::findDeviceByDeviceInterface(Solid::DeviceInterface::Type) error: "org.freedesktop.DBus.Error.ServiceUnknown" QStringList Solid::Backends::KUPnP::KUPnPManager::findDeviceByDeviceInterface(Solid::DeviceInterface::Type) error: "org.freedesktop.DBus.Error.ServiceUnknown" virtual QStringList Solid::Backends::KUPnP::KUPnPManager::allDevices() error: "org.freedesktop.DBus.Error.ServiceUnknown" Calling appendChild() on a null node does nothing. Object::disconnect: Unexpected null parameter bt ^C Program received signal SIGINT, Interrupt. 0x00007ffff4d894b8 in poll () from /lib/libc.so.6 (gdb) bt #0 0x00007ffff4d894b8 in poll () from /lib/libc.so.6 #1 0x00007fffebda9030 in socket_do_iteration () from /usr/lib/libdbus-1.so.3 #2 0x00007fffebda6587 in _dbus_transport_do_iteration () from /usr/lib/libdbus-1.so.3 #3 0x00007fffebd882ce in _dbus_connection_do_iteration_unlocked () from /usr/lib/libdbus-1.so.3 #4 0x00007fffebd8cb40 in _dbus_connection_block_pending_call () from /usr/lib/libdbus-1.so.3 #5 0x00007fffebd8b8aa in dbus_connection_send_with_reply_and_block () from /usr/lib/libdbus-1.so.3 #6 0x00007ffff26b337c in QDBusConnectionPrivate::sendWithReply(QDBusMessage const&, int, int) () from /usr/lib64/qt4/libQtDBus.so.4 #7 0x00007ffff269f3e3 in QDBusConnection::call(QDBusMessage const&, QDBus::CallMode, int) const () from /usr/lib64/qt4/libQtDBus.so.4 #8 0x00007ffff26bcdfd in QDBusAbstractInterface::callWithArgumentList(QDBus::CallMode, QString const&, QList<QVariant> const&) () from /usr/lib64/qt4/libQtDBus.so.4 #9 0x00007ffff26bfe95 in QDBusAbstractInterface::call(QDBus::CallMode, QString const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&) () from /usr/lib64/qt4/libQtDBus.so.4 #10 0x00007ffff26c00f1 in QDBusAbstractInterface::call(QString const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&, QVariant const&) () from /usr/lib64/qt4/libQtDBus.so.4 #11 0x00007ffff79880e8 in KUniqueApplication::start (flags=<value optimized out>) at /var/tmp/paludis/kde-base-kdelibs-9999/work/kdelibs-9999/kdeui/kernel/kuniqueapplication.cpp:299 #12 0x000000000040ac85 in main (argc=1, argv=0x7fffffffdcb8) at /home/mikko/amarok/src/main.cpp:219 (gdb) Bug 242146 is probably a dupe of this one too. I can confirm everything you posted, it’s happening here too. Basti, what exact version are you reproducing this with? Just a "me too" is not useful with at least the version information... Problem exist in Amarok 2.3.1 Maybe it is because "Last Dynamic Mode" in section "[General Options]" in amarokrc have non English value (russian now)? It means "random". [General Options] Dynamic Mode=true Favor Tracks=LessRecentlyPlayed Last Dynamic Mode=Случайный Track Progression=RandomTrack I doubt that it has to do with the locale, the other reports do not have a Russian system. Yes. It's not due this string. I report about this because don't know what does "Last Dynamic Mode" mean. Now I found the description about this entry. Setting severity correctly as this is not a crash. *** Bug 242146 has been marked as a duplicate of this bug. *** (In reply to comment #7) > Basti, what exact version are you reproducing this with? Just a "me too" is not > useful with at least the version information... Sorry for the long time in between. I use and used Amarok 2.3.1 with(out) following features compiled: lastfm linguas_de opengl player semantic-desktop utils -cdda -daap -debug -embedded -ipod -kdeenablefinal -mp3tunes -mtp In time between this bug happened again, just after the hole machine crashed. After this crash Amarok didn’t start till I copied an amarokrc from my backup hdd. If it happens again I will do a diff for the amarokrc’s. To reproduce (at least for me it works): Run Amarok in Dynamic Playlist mode. Kill it with SIGKILL while playing. Now try to run it again, it doesn’t start. diff of my Backup amarokrc vs the one in my home directory says the only difference is “Dynamic Mode=true”. My terminal says bas89@laptop ~ :) % amarok Calling appendChild() on a null node does nothing. Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString) amarok(6243)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig: amarok(6243)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig: amarok(6243)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig: QGraphicsLinearLayout::removeAt: invalid index 1 amarok(6243)/kdecore (KConfigSkeleton) KCoreConfigSkeleton::writeConfig: <unknown program name>(6242)/: Communication problem with "amarok" , it probably crashed. Error message was: "org.freedesktop.DBus.Error.NoReply" : " "Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken." " bas89@laptop ~ :( % amarok --debug Amarok is already running! ^C I have a similar problem in Amarok 2.3.2. If I switch back to the default (random) dynamic playlist in ~/.kde4/share/apps/amarok/dynamic.xml, I can start amarok flawlessly. Switching back to a custom dynamic playlist in Amarok sometimes leads to an instant crash, but every time I restart amarok, the crash will always occur. I updated Qt to version 4.7.0, and suddently it works. This might indeed be a bug in Qt 4.6.3. Johannes, yours is a slightly different bug: # 236518 Just to let you know: the Qt update didn't fix the problem. Yesterday, the bug came back even with Qt 4.7. I don't know what made you believe (you might well be right) that it's #236518, so I just wanted to clarify that to be sure. Johannes, I am pretty sure it is the same bug, see this comment: https://bugs.kde.org/show_bug.cgi?id=236518#c6 I just had this problem too, and I was also using dynamic playlists. I edited the configuration file and set « Dynamic Mode » to false, it worked. Here is the beggining of a backtrace (i don't know the size of the whole backtrace, but it's enormous, a went to #18269 last time) : #0 0xb6da5214 in ?? () from /usr/lib/libQtGui.so.4 #1 0xb6da52f4 in ?? () from /usr/lib/libQtGui.so.4 #2 0xb6da9908 in ?? () from /usr/lib/libQtGui.so.4 #3 0xb6daa138 in ?? () from /usr/lib/libQtGui.so.4 #4 0xb6dab5f4 in QSortFilterProxyModel::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libQtGui.so.4 #5 0xb743432a in ?? () from /usr/lib/libamaroklib.so.1 #6 0xb744c252 in ?? () from /usr/lib/libamaroklib.so.1 #7 0xb62d2c2a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4 #8 0xb62e2a7f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #9 0xb632e9a9 in QAbstractItemModel::dataChanged(QModelIndex const&, QModelIndex const&) () from /usr/lib/libQtCore.so.4 #10 0xb72c1f1c in Playlist::Model::setStateOfItem(Playlist::Item*, int, Playlist::Item::State) () from /usr/lib/libamaroklib.so.1 #11 0xb72c2054 in Playlist::Model::setActiveRow(int) () from /usr/lib/libamaroklib.so.1 #12 0xb729759d in Playlist::Actions::restoreDefaultPlaylist() () from /usr/lib/libamaroklib.so.1 #13 0xb7297b4c in Playlist::Actions::Actions() () from /usr/lib/libamaroklib.so.1 #14 0xb7297bf1 in Playlist::Actions::instance() () from /usr/lib/libamaroklib.so.1 #15 0xb72d0bb2 in Playlist::Model::removeTracksCommand(QList<QPair<KSharedPtr<Meta::Track>, int> > const&) () from /usr/lib/libamaroklib.so.1 #16 0xb732135b in ?? () from /usr/lib/libamaroklib.so.1 #17 0xb6e734f5 in QUndoStack::push(QUndoCommand*) () from /usr/lib/libQtGui.so.4 #18 0xb72b100b in Playlist::Controller::removeRows(QList<int>&) () from /usr/lib/libamaroklib.so.1 #19 0xb72b18fa in Playlist::Controller::removeRows(int, int) () from /usr/lib/libamaroklib.so.1 #20 0xb737d462 in ?? () from /usr/lib/libamaroklib.so.1 #21 0xb71d38a2 in ?? () from /usr/lib/libamaroklib.so.1 #22 0xb62d2c2a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4 #23 0xb62e2a7f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #24 0xb743429f in ?? () from /usr/lib/libamaroklib.so.1 #25 0xb7434354 in ?? () from /usr/lib/libamaroklib.so.1 #26 0xb71c075a in ?? () from /usr/lib/libamaroklib.so.1 #27 0xb62d2c2a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4 #28 0xb62e2a7f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 ---Type <return> to continue, or q <return> to quit--- #29 0xb743429f in ?? () from /usr/lib/libamaroklib.so.1 #30 0xb7434354 in ?? () from /usr/lib/libamaroklib.so.1 #31 0xb71c0712 in ?? () from /usr/lib/libamaroklib.so.1 #32 0xb62d2c2a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4 #33 0xb62e2a7f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #34 0xb743429f in ?? () from /usr/lib/libamaroklib.so.1 #35 0xb7434354 in ?? () from /usr/lib/libamaroklib.so.1 #36 0xb744c252 in ?? () from /usr/lib/libamaroklib.so.1 #37 0xb62d2c2a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4 #38 0xb62e2a7f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #39 0xb71c417f in Playlist::Model::activeTrackChanged(unsigned long long) () from /usr/lib/libamaroklib.so.1 #40 0xb72c2077 in Playlist::Model::setActiveRow(int) () from /usr/lib/libamaroklib.so.1 #41 0xb729759d in Playlist::Actions::restoreDefaultPlaylist() () from /usr/lib/libamaroklib.so.1 #42 0xb7297b4c in Playlist::Actions::Actions() () from /usr/lib/libamaroklib.so.1 #43 0xb7297bf1 in Playlist::Actions::instance() () from /usr/lib/libamaroklib.so.1 #44 0xb72d0bb2 in Playlist::Model::removeTracksCommand(QList<QPair<KSharedPtr<Meta::Track>, int> > const&) () from /usr/lib/libamaroklib.so.1 #45 0xb732135b in ?? () from /usr/lib/libamaroklib.so.1 #46 0xb6e734f5 in QUndoStack::push(QUndoCommand*) () from /usr/lib/libQtGui.so.4 #47 0xb72b100b in Playlist::Controller::removeRows(QList<int>&) () from /usr/lib/libamaroklib.so.1 #48 0xb72b18fa in Playlist::Controller::removeRows(int, int) () from /usr/lib/libamaroklib.so.1 #49 0xb737d462 in ?? () from /usr/lib/libamaroklib.so.1 #50 0xb71d38a2 in ?? () from /usr/lib/libamaroklib.so.1 #51 0xb62d2c2a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4 #52 0xb62e2a7f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #53 0xb743429f in ?? () from /usr/lib/libamaroklib.so.1 #54 0xb7434354 in ?? () from /usr/lib/libamaroklib.so.1 #55 0xb71c075a in ?? () from /usr/lib/libamaroklib.so.1 #56 0xb62d2c2a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4 #57 0xb62e2a7f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 ---Type <return> to continue, or q <return> to quit--- #58 0xb743429f in ?? () from /usr/lib/libamaroklib.so.1 #59 0xb7434354 in ?? () from /usr/lib/libamaroklib.so.1 #60 0xb71c0712 in ?? () from /usr/lib/libamaroklib.so.1 #61 0xb62d2c2a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4 #62 0xb62e2a7f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #63 0xb743429f in ?? () from /usr/lib/libamaroklib.so.1 #64 0xb7434354 in ?? () from /usr/lib/libamaroklib.so.1 #65 0xb744c252 in ?? () from /usr/lib/libamaroklib.so.1 #66 0xb62d2c2a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4 #67 0xb62e2a7f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #68 0xb71c417f in Playlist::Model::activeTrackChanged(unsigned long long) () from /usr/lib/libamaroklib.so.1 #69 0xb72c2077 in Playlist::Model::setActiveRow(int) () from /usr/lib/libamaroklib.so.1 #70 0xb729759d in Playlist::Actions::restoreDefaultPlaylist() () from /usr/lib/libamaroklib.so.1 #71 0xb7297b4c in Playlist::Actions::Actions() () from /usr/lib/libamaroklib.so.1 #72 0xb7297bf1 in Playlist::Actions::instance() () from /usr/lib/libamaroklib.so.1 #73 0xb72d0bb2 in Playlist::Model::removeTracksCommand(QList<QPair<KSharedPtr<Meta::Track>, int> > const&) () from /usr/lib/libamaroklib.so.1 #74 0xb732135b in ?? () from /usr/lib/libamaroklib.so.1 #75 0xb6e734f5 in QUndoStack::push(QUndoCommand*) () from /usr/lib/libQtGui.so.4 #76 0xb72b100b in Playlist::Controller::removeRows(QList<int>&) () from /usr/lib/libamaroklib.so.1 #77 0xb72b18fa in Playlist::Controller::removeRows(int, int) () from /usr/lib/libamaroklib.so.1 #78 0xb737d462 in ?? () from /usr/lib/libamaroklib.so.1 #79 0xb71d38a2 in ?? () from /usr/lib/libamaroklib.so.1 #80 0xb62d2c2a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4 #81 0xb62e2a7f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #82 0xb743429f in ?? () from /usr/lib/libamaroklib.so.1 #83 0xb7434354 in ?? () from /usr/lib/libamaroklib.so.1 #84 0xb71c075a in ?? () from /usr/lib/libamaroklib.so.1 #85 0xb62d2c2a in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4 #86 0xb62e2a7f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 ---Type <return> to continue, or q <return> to quit---q Quit Palkeo: could you please state which Amarok version, KDE version and distribution you are talking about and get a better backtrace? You don't have debugging symbols installed. Normally you should get a backtrace from Dr. Konqi, no need for gdb. FWIW: if you do not run a version higher than 2.3.2 no need to confirm this report, it alredy is :) Palkeo, can you give me a longer trace. I would like to see where this is comming from. It seem to me that the dynamic playlist is deleting old tracks at a state where the playlist is not yet initialized. I will also try to reproduce it. I have not kept the trace, and I can't to reproduce the bug :/ And I don't had a backtrace from Dr Konqi because like it was said, amarok is just freezing, not crashing. I'm using amarok 2.3.2-3, and kde 4.5.5-1, from archlinux. If I am able to reproduce the bug I will give you a better backtrace. But I have remarked that the stacktrace seem to be always repeating. If you search for the lines : Playlist::Model::removeTracksCommand(QList<QPair<KSharedPtr<Meta::Track>, int> In the stacktrace, you'll see that between them, it seem that the same functions are called again and again (like infinite recursion ?). I tried to reproduce it but couldn't. Since I am developing it happens quite frequent that I kill Amarok with some stupid segmentation fault. I hadn't had any real issues bringing up Amarok again. But the recursion hint is a good one. It really seems to be in a loop. Will look at that again. It seems to be fixed. See git blame src/playlist/PlaylistActions.cpp 049daccf (Ralf Engels 2010-10-30 23:30:17 +0200 58) s_instance->init(); // prevent infinite recursion by using the playlist actions only after setting the instance. I am pretty sure that the last trace does not have the fix in it or we would see a call to init. |