Skip to content

taskmanager: Don't crash if requesting the wrong window

Aleix Pol Gonzalez requested to merge work/apol/fix-crash-taskmanager into master

It keeps happening, it makes the QConcatenateProxyModel assert

BUG: 456501

* 0 __pthread_kill_implementation() at /home/apol/.debuginfod_client_cache/8bfe03f6bf9b6a6e2591babd0bbc266837d8f658/source* * usr* * src* * debug* * glibc* * glibc* * nptl* * pthread_kill.c:44
* 1 __pthread_kill_internal() at /home/apol/.debuginfod_client_cache/8bfe03f6bf9b6a6e2591babd0bbc266837d8f658/source* * usr* * src* * debug* * glibc* * glibc* * nptl* * pthread_kill.c:78
* 2 __GI_raise() at /home/apol/.debuginfod_client_cache/8bfe03f6bf9b6a6e2591babd0bbc266837d8f658/source* * usr* * src* * debug* * glibc* * glibc* * signal* * ..* * sysdeps* * posix* * raise.c:26
* 3 __GI_abort() at /home/apol/.debuginfod_client_cache/8bfe03f6bf9b6a6e2591babd0bbc266837d8f658/source* * usr* * src* * debug* * glibc* * glibc* * stdlib* * abort.c:79
* 4 qAbort() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/global/qglobal.cpp:161
* 5 qt_message_fatal<QString&>() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/global/qlogging.cpp:2.030
* 6 qt_message() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/global/qlogging.cpp:378
* 7 QMessageLogger::fatal() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/global/qlogging.cpp:901
* 8 qt_assert() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/global/qassert.cpp:68
* 9 QConcatenateTablesProxyModelPrivate::_q_slotDataChanged() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/itemmodels/qconcatenatetablesproxymodel.cpp:588
* 10 QConcatenateTablesProxyModel::qt_static_metacall() at /home/apol/build-devel/qt6/qtbase/src/corelib/Core_autogen/include/moc_qconcatenatetablesproxymodel.cpp:318
* 11 doActivate<false>() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/kernel/qobject.cpp:4.033
* 12 QMetaObject::activate() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/kernel/qobject.cpp:4.081
* 13 QAbstractItemModel::dataChanged() at /home/apol/build-devel/qt6/qtbase/src/corelib/Core_autogen/include/moc_qabstractitemmodel.cpp:1.322
* 14 QIdentityProxyModelPrivate::_q_sourceDataChanged() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/itemmodels/qidentityproxymodel.cpp:436
* 15 QIdentityProxyModel::qt_static_metacall() at /home/apol/build-devel/qt6/qtbase/src/corelib/Core_autogen/include/moc_qidentityproxymodel.cpp:355
* 16 doActivate<false>() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/kernel/qobject.cpp:4.033
* 17 QMetaObject::activate() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/kernel/qobject.cpp:4.081
* 18 QAbstractItemModel::dataChanged() at /home/apol/build-devel/qt6/qtbase/src/corelib/Core_autogen/include/moc_qabstractitemmodel.cpp:1.322
* 19 TaskManager::WaylandTasksModel::Private::dataChanged() at /home/apol/devel/frameworks6/plasma-workspace/libtaskmanager/waylandtasksmodel.cpp:761
* 20 TaskManager::WaylandTasksModel::Private::addWindow(TaskManager::PlasmaWindow*)::$_21::operator()() const() at /home/apol/devel/frameworks6/plasma-workspace/libtaskmanager/waylandtasksmodel.cpp:676
* 21 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, TaskManager::WaylandTasksModel::Private::addWindow(TaskManager::PlasmaWindow*)::$_21>::call(TaskManager::WaylandTasksModel::Private::addWindow(TaskManager::PlasmaWindow*)::$_21&, void**)() at /home/apol/devel/kde6/include/QtCore/qobjectdefs_impl.h:137
* 22 QtPrivate::Functor<TaskManager::WaylandTasksModel::Private::addWindow(TaskManager::PlasmaWindow*)::$_21, 0>::call<QtPrivate::List<>, void>(TaskManager::WaylandTasksModel::Private::addWindow(TaskManager::PlasmaWindow*)::$_21&, void*, void**)() at /home/apol/devel/kde6/include/QtCore/qobjectdefs_impl.h:339
* 23 QtPrivate::QCallableObject<TaskManager::WaylandTasksModel::Private::addWindow(TaskManager::PlasmaWindow*)::$_21, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)() at /home/apol/devel/kde6/include/QtCore/qobjectdefs_impl.h:522
* 24 QtPrivate::QSlotObjectBase::call() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:433
* 25 doActivate<false>() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/kernel/qobject.cpp:4.021
* 26 QMetaObject::activate() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/kernel/qobject.cpp:4.081
* 27 TaskManager::PlasmaWindow::geometryChanged() at /home/apol/build-devel/frameworks6/plasma-workspace/libtaskmanager/taskmanager_autogen/include/waylandtasksmodel.moc:792
* 28 TaskManager::PlasmaWindow::org_kde_plasma_window_geometry() at /home/apol/devel/frameworks6/plasma-workspace/libtaskmanager/waylandtasksmodel.cpp:263
* 29 QtWayland::org_kde_plasma_window::handle_geometry() at /home/apol/build-devel/frameworks6/plasma-workspace/libtaskmanager/qwayland-plasma-window-management.cpp:461
* 30 ffi_call_unix64() at /home/apol/.debuginfod_client_cache/5c6b22b6624dd486a0783dfe74fee085b626b573/source* * build* * libffi* * src* * libffi-3.4.4* * x86_64-pc-linux-gnu* * ..* * src* * x86* * unix64.S:104
* 31 ffi_call_int() at /build/libffi/src/libffi-3.4.4/src/x86/ffi64.c:673
* 32 ffi_call() at /build/libffi/src/libffi-3.4.4/src/x86/ffi64.c:710
* 33 wl_closure_invoke() at /home/apol/.debuginfod_client_cache/e4a011d41a1dcd03e700f1b6c88f84409ed2191b/source* * usr* * src* * debug* * wayland* * build* * ..* * wayland-1.22.0* * src* * connection.c:1.025
* 34 dispatch_event() at /home/apol/.debuginfod_client_cache/e4a011d41a1dcd03e700f1b6c88f84409ed2191b/source* * usr* * src* * debug* * wayland* * build* * ..* * wayland-1.22.0* * src* * wayland-client.c:1.631
* 35 dispatch_queue() at /home/apol/.debuginfod_client_cache/e4a011d41a1dcd03e700f1b6c88f84409ed2191b/source* * usr* * src* * debug* * wayland* * build* * ..* * wayland-1.22.0* * src* * wayland-client.c:1.777
* 36 wl_display_dispatch_queue_pending() at /home/apol/.debuginfod_client_cache/e4a011d41a1dcd03e700f1b6c88f84409ed2191b/source* * usr* * src* * debug* * wayland* * build* * ..* * wayland-1.22.0* * src* * wayland-client.c:2.019
* 37 QtWaylandClient::EventThread::dispatchQueuePending() at /home/apol/devel/frameworks/qt6/qtwayland/src/client/qwaylanddisplay.cpp:229
* 38 QtWaylandClient::EventThread::readAndDispatchEvents() at /home/apol/devel/frameworks/qt6/qtwayland/src/client/qwaylanddisplay.cpp:111
* 39 QtWaylandClient::QWaylandDisplay::flushRequests() at /home/apol/devel/frameworks/qt6/qtwayland/src/client/qwaylanddisplay.cpp:525
* 40 QtWaylandClient::QWaylandDisplay::qt_static_metacall() at /home/apol/build-devel/qt6/qtwayland/src/client/WaylandClient_autogen/include/moc_qwaylanddisplay_p.cpp:162
* 41 doActivate<false>() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/kernel/qobject.cpp:4.033
* 42 QMetaObject::activate() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/kernel/qobject.cpp:4.081
* 43 QAbstractEventDispatcher::awake() at /home/apol/build-devel/qt6/qtbase/src/corelib/Core_autogen/include/moc_qabstracteventdispatcher.cpp:183
* 44 QEventDispatcherGlib::processEvents() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:400
* 45 QPAEventDispatcherGlib::processEvents() at /home/apol/devel/frameworks/qt6/qtbase/src/gui/platform/unix/qeventdispatcher_glib.cpp:87
* 46 QEventLoop::processEvents() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/kernel/qeventloop.cpp:100
* 47 QEventLoop::exec() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/kernel/qeventloop.cpp:182
* 48 QCoreApplication::exec() at /home/apol/devel/frameworks/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1.440
* 49 QGuiApplication::exec() at /home/apol/devel/frameworks/qt6/qtbase/src/gui/kernel/qguiapplication.cpp:1.925
* 50 QApplication::exec() at /home/apol/devel/frameworks/qt6/qtbase/src/widgets/kernel/qapplication.cpp:2.574
* 51 main() at /home/apol/devel/frameworks6/plasma-workspace/shell/main.cpp:236
Edited by Aleix Pol Gonzalez

Merge request reports