I am using KDE 5.9.0 on KDE Neon User Edition. I started using the new feature of having different launchers in the task manager in different activities, but it made plasma crashing. The bug is not triggered every time, but I think I found a way to reproduce it. Steps to reproduce : 1. Setup two activities (Activity1 and Activity2), with no launchers in the task manager. 2. Go to Activity1, launch Dolphin, right click on its icon in the task manager and select 'Pin > On current activity'. 3. Close Dolphin and switch to Activity2 (I am using Meta + Tab) 4. Launch Konsole, , right click on its icon in the task manager and select 'Pin > On current activity'. 5. Close Konsole and swith to Activity1 (Meta + Tab) 6. Launch Dolphin through the launcher, right click on its icon and click on "Pin > Activity1" to unpin it. Leave Dolphin running, do not close it. 7. Use Meta + Tab to switch to Activity2. There should be 2 Konsole launchers in the Task manager instead of only one. 8. Switching again to Activity1 with Meta + Tab makes Plasma crash.
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. ***