Summary: | Plasma crashes when switching activities after unpinning a launcher specific to an activity | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | AGui <audardg> |
Component: | Task Manager and Icons-Only Task Manager | Assignee: | Eike Hein <hein> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | acquirement, ivan.cukic, javaquemarti, plasma-bugs |
Priority: | NOR | ||
Version: | 5.9.0 | ||
Target Milestone: | 1.0 | ||
Platform: | Neon | ||
OS: | Linux | ||
See Also: | https://bugs.kde.org/show_bug.cgi?id=381006 | ||
Latest Commit: | https://commits.kde.org/plasma-workspace/05826bd5ba25f6ed7be94ff8d760d6c8372f148c | Version Fixed In: | |
Sentry Crash Report: | |||
Attachments: |
plasmashell output
gdb plasmashell output Backtrace in KCrash |
Description
AGui
2017-02-05 15:05:17 UTC
Backtrace? Created attachment 103881 [details]
plasmashell output
I don't get any dialog when plasmashell crashes, just a black screen. I have to start it again through KRunner. I killed plasma manually, started it from Konsole and did the steps described below. Here is the complete output.
Comment on attachment 103881 [details]
plasmashell output
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
org.kde.kcoreaddons: Expected JSON property "X-Plasma-ContainmentCategories" to be a string list. Treating it as a list with a single entry: "panel" org.kde.plasma.desktop.emptyPanel
org.kde.kcoreaddons: Expected JSON property "X-Plasma-ContainmentCategories" to be a string list. Treating it as a list with a single entry: "panel" org.kde.plasma.desktop.appmenubar
org.kde.kcoreaddons: Expected JSON property "X-Plasma-ContainmentCategories" to be a string list. Treating it as a list with a single entry: "panel" org.kde.plasma.desktop.defaultPanel
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
No metadata file in the package, expected it at: "/home/agui/Images/"
No metadata file in the package, expected it at: "/home/agui/Images/"
No metadata file in the package, expected it at: "/home/agui/Images/"
Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString)
file:///usr/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/main.qml:112:20: Unable to assign [undefined] to int
Trying to use rootObject before initialization is completed, whilst using setInitializationDelayed. Forcing completion
file:///usr/share/plasma/plasmoids/org.kde.plasma.digitalclock/contents/ui/main.qml:78:27: Unable to assign [undefined] to QStringList
file:///usr/share/plasma/plasmoids/org.kde.plasma.digitalclock/contents/ui/main.qml:37: TypeError: Cannot read property 'DateTime' of undefined
Both point size and pixel size set. Using pixel size.
Both point size and pixel size set. Using pixel size.
Both point size and pixel size set. Using pixel size.
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
libkcups: Create-Printer-Subscriptions last error: 0 successful-ok
libkcups: Get-Jobs last error: 0 successful-ok
libkcups: Get-Jobs last error: 0 successful-ok
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
kf5.kcoreaddons.desktopparser: Could not locate service type file kservicetypes5/plasma-popupapplet.desktop, tried ("/home/agui/.local/share", "/usr/share/usr/share/xsessions/plasma", "/usr/local/share", "/usr/share", "/var/lib/snapd/desktop")
Trying to use rootObject before initialization is completed, whilst using setInitializationDelayed. Forcing completion
Notifications service registered
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/share/plasma/plasmoids/org.kde.plasma.clipboard/contents/ui/clipboard.qml:32: TypeError: Cannot read property 'empty' of undefined
file:///usr/share/plasma/plasmoids/org.kde.plasma.clipboard/contents/ui/clipboard.qml:34: TypeError: Cannot read property 'empty' of undefined
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
Plasma Shell startup completed
libkcups: 0
libkcups: 0
libkcups: Get-Jobs last error: 0 successful-ok
libkcups: Get-Jobs last error: 0 successful-ok
Both point size and pixel size set. Using pixel size.
networkmanager-qt: void NetworkManager::NetworkManagerPrivate::propertiesChanged(const QVariantMap&) Unhandled property "AllDevices"
networkmanager-qt: void NetworkManager::NetworkManagerPrivate::propertiesChanged(const QVariantMap&) Unhandled property "Devices"
networkmanager-qt: void NetworkManager::NetworkManagerPrivate::propertiesChanged(const QVariantMap&) Unhandled property "GlobalDnsConfiguration"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "LldpNeighbors"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "Real"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "LldpNeighbors"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "Real"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "S390Subchannels"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "LldpNeighbors"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "Real"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "LldpNeighbors"
networkmanager-qt: virtual void NetworkManager::DevicePrivate::propertyChanged(const QString&, const QVariant&) Unhandled property "Real"
libkcups: 0
libkcups: 0
QXcbConnection: XCB error: 2 (BadValue), sequence: 1529, resource id: 65011740, major code: 142 (Unknown), minor code: 3
trying to show an empty dialog
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
Cannot creat accessible child interface for object: PlacesView(0x2789960) index: 18
kf5.kio.core: KSambaShare: Could not find smb.conf!
QXcbConnection: XCB error: 2 (BadValue), sequence: 2913, resource id: 6291496, major code: 142 (Unknown), minor code: 3
KActivities: Database connection: "kactivities_db_resources_140363698260160_readonly"
query_only: QVariant(qlonglong, 1)
journal_mode: QVariant(QString, "wal")
wal_autocheckpoint: QVariant(qlonglong, 100)
synchronous: QVariant(qlonglong, 0)
Closing SQL connection: "kactivities_db_resources_140363698260160_readonly"
QXcbConnection: XCB error: 2 (BadValue), sequence: 3867, resource id: 73400325, major code: 142 (Unknown), minor code: 3
QXcbConnection: XCB error: 2 (BadValue), sequence: 3946, resource id: 65011740, major code: 142 (Unknown), minor code: 3
QXcbConnection: XCB error: 2 (BadValue), sequence: 3977, resource id: 6291496, major code: 142 (Unknown), minor code: 3
KActivities: Database connection: "kactivities_db_resources_140363698260160_readonly"
query_only: QVariant(qlonglong, 1)
journal_mode: QVariant(QString, "wal")
wal_autocheckpoint: QVariant(qlonglong, 100)
synchronous: QVariant(qlonglong, 0)
Closing SQL connection: "kactivities_db_resources_140363698260160_readonly"
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/Task.qml:44:32: Unable to assign [undefined] to int
file:///usr/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/Task.qml:44:32: Unable to assign [undefined] to int
file:///usr/share/plasma/plasmoids/org.kde.desktopcontainment/contents/ui/FolderView.qml:855:17: QML Connections: Cannot assign to non-existent property "onIconSizesChanged"
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/ScrollView.qml:353: TypeError: Cannot read property 'padding' of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/ScrollView.qml:352: TypeError: Cannot read property 'padding' of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/ScrollView.qml:351: TypeError: Cannot read property 'padding' of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/ScrollView.qml:350: TypeError: Cannot read property 'padding' of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/TextArea.qml:905: TypeError: Cannot read property '__selectionHandle' of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/TextArea.qml:941: TypeError: Cannot read property '__cursorHandle' of null
kf5.kio.core: KSambaShare: Could not find smb.conf!
KActivities: Database connection: "kactivities_db_resources_140363698260160_readonly"
query_only: QVariant(qlonglong, 1)
journal_mode: QVariant(QString, "wal")
wal_autocheckpoint: QVariant(qlonglong, 100)
synchronous: QVariant(qlonglong, 0)
Closing SQL connection: "kactivities_db_resources_140363698260160_readonly"
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/Task.qml:44:32: Unable to assign [undefined] to int
file:///usr/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/Task.qml:327: Unable to assign [undefined] to QString
file:///usr/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/Task.qml:303: Unable to assign [undefined] to int
file:///usr/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/Task.qml:44:32: Unable to assign [undefined] to int
file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:166: TypeError: Cannot read property 'showingDialog' of null
KActivities: Database connection: "kactivities_db_resources_140363698260160_readonly"
query_only: QVariant(qlonglong, 1)
journal_mode: QVariant(QString, "wal")
wal_autocheckpoint: QVariant(qlonglong, 100)
synchronous: QVariant(qlonglong, 0)
Closing SQL connection: "kactivities_db_resources_140363698260160_readonly"
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/Task.qml:44:32: Unable to assign [undefined] to int
file:///usr/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/Task.qml:303: Unable to assign [undefined] to int
file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:166: TypeError: Cannot read property 'showingDialog' of null
file:///usr/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/Task.qml:44:32: Unable to assign [undefined] to int
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/lib/x86_64-linux-gnu/qt5/qml/QtQuick/Controls/Button.qml:99: TypeError: Cannot read property of null
file:///usr/share/plasma/shells/org.kde.plasma.desktop/contents/views/Desktop.qml:166: TypeError: Cannot read property 'showingDialog' of null
file:///usr/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/Task.qml:44:32: Unable to assign [undefined] to int
file:///usr/share/plasma/plasmoids/org.kde.plasma.taskmanager/contents/ui/Task.qml:44:32: Unable to assign [undefined] to int
KCrash: crashing... crashRecursionCounter = 2
KCrash: Application Name = plasmashell path = /usr/bin pid = 2485
KCrash: Arguments: /usr/bin/plasmashell
Erreur de segmentation
Thank you! But unfortunately shell output isn't a backtrace ... the shell output indicates that the crash handler is starting, are you sure you don't get a tray icon for it after restarting plasmashell? You can click on the tray icon to get the crash dialog and the backtrace. No, nothing in the systray. Should any specific packages be installed for it to work ? Isn't there a log file somewhere that I can send you ? If the crash dialogue does not appear, nor the crash icon in the tray, you could try using gdb directly: gdb plasmashell It will load the plasmashell binary and give you an output. Just type run and it will start plasma. When it crashes, just type where and copy the output you got here. Created attachment 104020 [details]
gdb plasmashell output
Created attachment 104021 [details]
Backtrace in KCrash
Ok, good news. I have got a KCrash icon in the systray today after starting again plasmashell. I attached both the backtrace from KCrash (which says it is not very useful...) and the output of gdb plasmashell, which seems to give a different information. Hope this helps. You'll need to install the packages which contain the debugging information. This is unfortunately not helpful: [KCrash Handler] #6 0x00007f0d790a2336 in ?? () #7 0x0000000002befb90 in ?? () #8 0x00007f0e2ad6af1c in QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5 Ah sorry for that. I installed libqt5qml5-dbgsym, libkf5plasma5-dbgsym, plasma-framework-dbgsym, libkf5plasma5-dbgsym. Are any other needed ? I updated to Plasma 5.9.2 today. The bug is still there, but unfortunately, I haven't manage to get a KCrash window again... I noticed that gdb has a "backtrace" command, I can provide its output if needed. Also, I am surprised that you can't reproduce the bug with the steps I included in my first report. I tried it on the KDE Neon User Edition Live CD (20170209) in a virtual machine and the bugs is triggered by following exactly these steps, so it doesn't seem to be related to my setup. I can sort of reproduce it now, including the "double Konsole launcher" thing. Here's a backtrace from one of my crashes, not quite the steps from the report, but in that ballpark: #0 0x00007ffff0bdf7ef in __memmove_avx_unaligned_erms () at /lib64/libc.so.6 #1 0x00007ffff1945dd0 in QVector<int>::erase(int*, int*) (aend=<optimized out>, abegin=<optimized out>, this=0xedee30) at ../../include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvector.h:766 #2 0x00007ffff1945dd0 in QVector<int>::remove(int, int) (n=<optimized out>, i=5, this=0xedee30) at ../../include/QtCore/../../../../qt5/qtbase/src/corelib/tools/qvector.h:450 #3 0x00007ffff1945dd0 in QSortFilterProxyModelPrivate::remove_proxy_interval(QVector<int>&, QVector<int>&, int, int, QModelIndex const&, Qt::Orientation, bool) (emit_signal=true, orient=Qt::Vertical, proxy_parent=..., proxy_end=<optimized out>, proxy_start=5, proxy_to_source=..., source_to_proxy=..., this=0xeec670) at /home/eike/devel/src/qt5/qtbase/src/corelib/itemmodels/qsortfilterproxymodel.cpp:592 #4 0x00007ffff1945dd0 in QSortFilterProxyModelPrivate::remove_source_items(QVector<int>&, QVector<int>&, QVector<int> const&, QModelIndex const&, Qt::Orientation, bool) (this=this@entry=0xeec670, source_to_proxy=..., proxy_to_source=..., source_items=..., source_parent=..., orient=orient@entry=Qt::Vertical, emit_signal=true) at /home/eike/devel/src/qt5/qtbase/src/corelib/itemmodels/qsortfilterproxymodel.cpp:568 #5 0x00007ffff1947474 in QSortFilterProxyModelPrivate::handle_filter_changed(QVector<int>&, QVector<int>&, QModelIndex const&, Qt::Orientation) (orient=Qt::Vertical, source_parent=..., proxy_to_source=..., source_to_proxy=..., this=0xeec670) at /home/eike/devel/src/qt5/qtbase/src/corelib/itemmodels/qsortfilterproxymodel.cpp:1152 #6 0x00007ffff1947474 in QSortFilterProxyModelPrivate::filter_changed(QModelIndex const&) (this=0xeec670, source_parent=...) at /home/eike/devel/src/qt5/qtbase/src/corelib/itemmodels/qsortfilterproxymodel.cpp:1084 #7 0x00007ffff1947cd1 in QSortFilterProxyModel::invalidateFilter() (this=<optimized out>) at /home/eike/devel/src/qt5/qtbase/src/corelib/itemmodels/qsortfilterproxymodel.cpp:2591 #8 0x00007fff2ee73dd8 in TaskManager::TaskFilterProxyModel::setActivity(QString const&) (this=0xeebb80, activity=...) at /home/eike/devel/src/kde/workspace/plasma-workspace/libtaskmanager/taskfilterproxymodel.cpp:118 #9 0x00007fff2ee84b29 in TaskManager::TasksModel::setActivity(QString const&) (this=0xed39f0, activity=...) at /home/eike/devel/src/kde/workspace/plasma-workspace/libtaskmanager/tasksmodel.cpp:919 #10 0x00007fff2eeb13d1 in TaskManager::TasksModel::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=0xed39f0, _c=QMetaObject::WriteProperty, _id=6, _a=0x7fffffffa390) at /home/eike/devel/build/kde/workspace/plasma-workspace/libtaskmanager/moc_tasksmodel.cpp:613 #11 0x00007ffff4c736ef in QQmlPropertyData::writeProperty(QObject*, void*, QFlags<QQmlPropertyData::WriteFlag>) const (flags=..., value=0x7fffffffa360, target=<optimized out>, this=0x7fffc4448478) at /home/eike/devel/src/qt5-build/qtbase/include/QtQml/5.8.1/QtQml/private/../../../../../../../qt5/qtdeclarative/src/qml/qml/qqmlpropertycache_p.h:320 #12 0x00007ffff4c736ef in GenericBinding<10>::doStore<QString>(QString, QQmlPropertyData const*, QFlags<QQmlPropertyData::WriteFlag>) const (flags=..., pd=0x7fffc4448478, value=..., this=0xee8400) at /home/eike/devel/src/qt5/qtdeclarative/src/qml/qml/qqmlbinding.cpp:295 #13 0x00007ffff4c736ef in GenericBinding<10>::write(QV4::Value const&, bool, QFlags<QQmlPropertyData::WriteFlag>) (this=0xee8400, result=..., isUndefined=<optimized out>, flags=...) at /home/eike/devel/src/qt5/qtdeclarative/src/qml/qml/qqmlbinding.cpp:276 #14 0x00007ffff4c74110 in QQmlNonbindingBinding::doUpdate(QQmlJavaScriptExpression::DeleteWatcher const&, QFlags<QQmlPropertyData::WriteFlag>, QV4::Scope&) (this=0xee8400, watcher=..., flags=..., scope=...) at /home/eike/devel/src/qt5/qtdeclarative/src/qml/qml/qqmlbinding.cpp:210 #15 0x00007ffff4c713eb in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) (this=0xee8400, flags=..., flags@entry=...) at /home/eike/devel/src/qt5/qtdeclarative/src/qml/qml/qqmlbinding.cpp:167 #16 0x00007ffff4c7163e in QQmlBinding::refresh() (this=<optimized out>) at /home/eike/devel/src/qt5/qtdeclarative/src/qml/qml/qqmlbinding.cpp:439 I think I roughly know what's happening, fix could be a bit tricky, we'll see. Patch under review: https://phabricator.kde.org/D4631 Git commit 05826bd5ba25f6ed7be94ff8d760d6c8372f148c by Eike Hein. Committed on 16/02/2017 at 12:57. Pushed by hein into branch 'Plasma/5.8'. Fix crash when switching activities. Summary: What happens: * Activity switch calls invalidateFilter on TaskFilterProxyModel, which may remove rows in response. * Up the proxy chain, TasksModel may ask LauncherTasksModel to emit dataChanged for its contents in response to the row removal, to cause its own filtering to re-evaluate the launchers for the life cycle logic. * This can cause TFPM to do more filtering before invalidateFilter has actually returned, causing trip-ups such as duplicated rows in the proxy. * Eventually the corrupted maps cause a memory corruption crash. This patch changes step 2 to "find the launchers in the TFPM (the direct source model) and ask for a dataChanged for each". This costs us a loop and accesses to IsLauncher, but on the other hand fixes the crash and avoids a lot of filtering and mapping work between LTM and up to and including TFPM. It's also just better code to ask for the dataChanged only from the model we need it from. Reviewers: #plasma, davidedmundson Subscribers: plasma-devel Tags: #plasma Differential Revision: https://phabricator.kde.org/D4631 M +7 -3 libtaskmanager/tasksmodel.cpp https://commits.kde.org/plasma-workspace/05826bd5ba25f6ed7be94ff8d760d6c8372f148c *** Bug 376255 has been marked as a duplicate of this bug. *** |