| Summary: | Plasma crashes after Mopidy start | ||
|---|---|---|---|
| Product: | [Plasma] plasmashell | Reporter: | Dmitry Novikov <dmitry> |
| Component: | general | Assignee: | David Edmundson <kde> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | CC: | bshah, kde, lixun.dlut, plasma-bugs-null |
| Priority: | NOR | Keywords: | drkonqi |
| Version First Reported In: | 5.8.5 | ||
| Target Milestone: | 1.0 | ||
| Platform: | Arch Linux | ||
| OS: | Linux | ||
| Latest Commit: | https://commits.kde.org/plasma-workspace/03374b185f9bd3bc4f70726ae641014a33278fdd | Version Fixed/Implemented In: | 5.8.6 |
| Sentry Crash Report: | |||
|
Description
Dmitry Novikov
2017-01-04 11:56:48 UTC
Confirmed, starting mopidy with mopidy-mpris installed crashes plasmashell and has it refuse to restart until you quit mopidy. Crashes in mpris data engine: Thread 1 "plasmashell" received signal SIGSEGV, Segmentation fault. 0x00000000036484f0 in ?? () (gdb) bt #0 0x00000000036484f0 in ?? () #1 0x00007fffeee36305 in _dbus_type_reader_recurse () from /lib/x86_64-linux-gnu/libdbus-1.so.3 #2 0x00007ffff7f8b472 in QDBusArgument::operator>>(QDBusVariant&) const () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5 #3 0x00007ffff7f8b5b7 in operator>>(QDBusArgument const&, QVariant&) () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5 #4 0x00007fff33003e6b in QDBusArgument const& operator>><QString, QVariant>(QDBusArgument const&, QMap<QString, QVariant>&) () from /usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/dataengine/plasma_engine_mpris2.so #5 0x00007fff32ffff64 in PlayerContainer::copyProperty(QString const&, QVariant const&, QVariant::Type, PlayerContainer::UpdateType) () from /usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/dataengine/plasma_engine_mpris2.so #6 0x00007fff3300130b in PlayerContainer::updateFromMap(QMap<QString, QVariant> const&, PlayerContainer::UpdateType) () from /usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/dataengine/plasma_engine_mpris2.so #7 0x00007fff33001ac9 in PlayerContainer::getPropsFinished(QDBusPendingCallWatcher*) () from /usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/dataengine/plasma_engine_mpris2.so #8 0x00007fff330061e3 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QDBusPendingCallWatcher*>, void, void (PlayerContainer::*)(QDBusPendingCallWatcher*)>::call(void (PlayerContainer::*)(QDBusPendingCallWatcher*), PlayerContainer*, void**) () from /usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/dataengine/plasma_engine_mpris2.so #9 0x00007fff33005e33 in void QtPrivate::FunctionPointer<void (PlayerContainer::*)(QDBusPendingCallWatcher*)>::call<QtPrivate::List<QDBusPendingCallWatcher*>, void>(void (PlayerContainer::*)(QDBusPendingCallWatcher*), PlayerContainer*, void**) () from /usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/dataengine/plasma_engine_mpris2.so #10 0x00007fff33005681 in QtPrivate::QSlotObject<void (PlayerContainer::*)(QDBusPendingCallWatcher*), QtPrivate::List<QDBusPendingCallWatcher*>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) () from /usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/dataengine/plasma_engine_mpris2.so #11 0x00007ffff2e03e76 in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #12 0x00007ffff7f9778f in QDBusPendingCallWatcher::finished(QDBusPendingCallWatcher*) () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5 #13 0x00007ffff7f97888 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5 #14 0x00007ffff2e04a19 in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #15 0x00007ffff36c489c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #16 0x00007ffff36cc296 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 #17 0x00007ffff2dd8cf8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #18 0x00007ffff2ddb3bb in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #19 0x00007ffff2e2be13 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #20 0x00007fffee0fb1a7 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #21 0x00007fffee0fb400 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #22 0x00007fffee0fb4ac in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #23 0x00007ffff2e2c21f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 #24 0x00007ffff2dd6cea in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 Git commit 03374b185f9bd3bc4f70726ae641014a33278fdd by Kai Uwe Broulik.
Committed on 04/01/2017 at 13:17.
Pushed by broulik into branch 'Plasma/5.8'.
[MPRIS Data Engine] Don't crash if "Metadata" is a map but of wrong type
QDBusArgument MapType fits all kinds of maps but when we try to stream a map of type
other than a{sv} (which the MRPIS spec requires) into a QVariantMap we would crash.
Explicitly check signature to avoid this.
FIXED-IN: 5.8.6
M +3 -1 dataengines/mpris2/playercontainer.cpp
https://commits.kde.org/plasma-workspace/03374b185f9bd3bc4f70726ae641014a33278fdd
*** Bug 352008 has been marked as a duplicate of this bug. *** |