Bug 464186 - Plasmashell crashes in X11Plugin::createWindowInfo() when using the close button in the Icons Only Task Manager tool tip
Summary: Plasmashell crashes in X11Plugin::createWindowInfo() when using the close but...
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Task Manager and Icons-Only Task Manager (show other bugs)
Version: 5.26.5
Platform: Arch Linux Linux
: HI crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: regression
: 464781 466976 466983 467113 467187 (view as bug list)
Depends on:
Blocks:
 
Reported: 2023-01-12 09:58 UTC by Synthetic451
Modified: 2023-03-13 20:21 UTC (History)
10 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.104


Attachments
Plasmashell crash trace logs (13.75 KB, text/plain)
2023-01-12 09:58 UTC, Synthetic451
Details
Video of crash behavior (1.87 MB, video/x-matroska)
2023-01-12 09:58 UTC, Synthetic451
Details
Backtrace with symbols (32.35 KB, text/plain)
2023-01-13 03:10 UTC, Synthetic451
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Synthetic451 2023-01-12 09:58:26 UTC
Created attachment 155229 [details]
Plasmashell crash trace logs

SUMMARY
Plasmashell crashes when I use the close button in the Icons-Only Task Manager's window thumbnail tooltip.


STEPS TO REPRODUCE
1. Launch two windows of the same application. I used Dolphin for my testing
2. Hover over the application icon in the task manager until the window thumbnail tooltip pops up
3. Close the second window using the X button

OBSERVED RESULT
Plasmashell crashes immediately after closing the window

EXPECTED RESULT
Plasmashell does not crash

SOFTWARE/OS VERSIONS
Arch Linux, Kernel 6.1.4
Nvidia 3090 w/ 525.78.01 drivers
KDE Plasma Version: 5.26.5
KDE Frameworks Version: 5.101.0
Qt Version: 5.15.8


ADDITIONAL INFORMATION
Comment 1 Synthetic451 2023-01-12 09:58:58 UTC
Created attachment 155230 [details]
Video of crash behavior
Comment 2 Synthetic451 2023-01-12 10:19:48 UTC
Forgot to mention that this is with Xorg 21.1.6
Comment 3 Nate Graham 2023-01-12 20:30:46 UTC
So this is 100% reproducible for me? I can't manage to make it happen. If it is for you, can you install or compile with debug symbols and then bet a backtrace from your stack trace? Then we can tell what exactly is happening. Thanks!
Comment 4 Synthetic451 2023-01-13 03:10:18 UTC
Created attachment 155252 [details]
Backtrace with symbols

Hi Nate, I used debuginfod to get the debug symbols. Here's the full trace.
Comment 5 Synthetic451 2023-01-13 03:11:44 UTC
Regarding reproducibility, today I noticed that I wasn't able to replicate the issue with Dolphin, but I've pretty consistently been able to reproduce the issue with Steam Windows.

Can you try:
1. Launching Steam
2. Opening the Steam Friends list
3. Close the Steam Friends list using the window thumbnail tooltip close button
Comment 6 Nate Graham 2023-01-13 16:12:25 UTC
Thanks, that's very helpful. Pasting  it inline for searchability:

#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = <optimized out>
        old_mask = {__val = {0}}
        ret = <optimized out>
#1  0x00007f54406a16b3 in __pthread_kill_internal (signo=11, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007f5440651958 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#3  0x00007f5442f40868 in KCrash::defaultCrashHandler(int) (sig=11) at /usr/src/debug/kcrash/kcrash-5.101.0/src/kcrash.cpp:633
        crashRecursionCounter = 3
#4  0x00007f5440651a00 in <signal handler called> () at /usr/lib/libc.so.6
#5  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = <optimized out>
        old_mask = {__val = {140732685002288}}
        ret = <optimized out>
#6  0x00007f54406a16b3 in __pthread_kill_internal (signo=11, threadid=<optimized out>) at pthread_kill.c:78
#7  0x00007f5440651958 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#8  0x00007f5440651a00 in <signal handler called> () at /usr/lib/libc.so.6
#9  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:37
#10 0x00007f5440ce057c in QtLinuxFutex::_q_futex(int*, int, int, unsigned long long, int*, int)
    (val3=0, addr2=0x0, val2=0, val=<optimized out>, op=0, addr=<optimized out>, addr=<optimized out>, op=<optimized out>, val=<optimized out>, val2=<optimized out>, addr2=<optimized out>, val3=<optimized out>) at thread/qfutex_p.h:114
        ptr = <optimized out>
        n = 1
        nn = 8589934593
        curValue = <optimized out>
#11 QtLinuxFutex::futexWait<QBasicAtomicInteger<unsigned int> >(QBasicAtomicInteger<unsigned int>&, QBasicAtomicInteger<unsigned int>::Type) (expectedValue=<optimized out>, futex=<optimized out>) at thread/qfutex_p.h:133
        ptr = <optimized out>
        n = 1
        nn = 8589934593
        curValue = <optimized out>
#12 futexSemaphoreTryAcquire_loop<false>(QBasicAtomicInteger<unsigned long long>&, unsigned long long, unsigned long long, int) (timeout=-1, nn=8589934593, curValue=<optimized out>, u=...) at thread/qsemaphore.cpp:219
        ptr = <optimized out>
        n = 1
        nn = 8589934593
        curValue = <optimized out>
#13 futexSemaphoreTryAcquire<false>(QBasicAtomicInteger<unsigned long long>&, int, int) (timeout=-1, n=<optimized out>, u=...) at thread/qsemaphore.cpp:262
        nn = 8589934593
        curValue = <optimized out>
#14 QSemaphore::acquire(int) (this=0x7ffee1b2abf0, n=<optimized out>) at thread/qsemaphore.cpp:326
#15 0x00007f5440ebdb94 in doActivate<false>(QObject*, int, void**) (sender=0x55c217975eb0, signal_index=0, argv=0x7ffee1b2ac70) at kernel/qobject.cpp:3904
        semaphore = {{d = 0x100000000, u = {_q_value = std::atomic<unsigned long long> = { 4294967296 }}}}
        receiver = 0x7f5434001c00
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x100000000, receiver = 0xffffffffffffff10, sender = 0x9, signal = 0}
        c = 0x7f543405cd20
        connections = {d = 0x7f543405cb90}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 2
        signalVector = 0x7f543405cd80
        currentThreadId = 0x7f543c0c9ac0
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#16 0x00007f5440ebde34 in QObject::destroyed(QObject*) (this=<optimized out>, _t1=<optimized out>) at .moc/moc_qobject.cpp:219
        _a = {0x0, 0x7ffee1b2ac68}
#17 0x00007f5440eb439c in QObject::~QObject() (this=0x55c217975eb0, this=<optimized out>) at kernel/qobject.cpp:1010
        d = 0x55c21797b020
        sharedRefcount = 0x0
        cd = <optimized out>
#18 0x00007f54421d7cee in QDBusServiceWatcher::~QDBusServiceWatcher() (this=0x55c217975eb0, this=<optimized out>) at /usr/src/debug/qt5-base/qtbase/src/dbus/qdbusservicewatcher.cpp:260
#19 0x00007f5440eb3bc5 in QObjectPrivate::deleteChildren() (this=this@entry=0x55c21797ab70) at kernel/qobject.cpp:2137
        i = <optimized out>
#20 0x00007f5440eb4389 in QObject::~QObject() (this=<optimized out>, this=<optimized out>) at kernel/qobject.cpp:1115
        d = <optimized out>
        sharedRefcount = <optimized out>
        cd = 0x55c21797b0a0
#21 0x00007f54380778ca in (anonymous namespace)::Q_QGS_privateStatusNotifierItemHostSelf::innerFunction()::Holder::~Holder() [clone .lto_priv.0] () at /usr/src/debug/plasma-workspace/plasma-workspace-5.26.5/applets/systemtray/statusnotifieritemhost.cpp:37
#22 0x00007f5440653fa5 in __run_exit_handlers (status=status@entry=1, listp=0x7f54407f1760 <__exit_funcs>, run_list_atexit=run_list_atexit@entry=true, run_dtors=run_dtors@entry=true) at exit.c:113
        atfct = <optimized out>
        onfct = <optimized out>
        cxafct = <optimized out>
        arg = 0x7f543809f0c0 <(anonymous namespace)::Q_QGS_privateStatusNotifierItemHostSelf::innerFunction()::holder>
        f = <optimized out>
        cur = 0x7f54288fee70
#23 0x00007f5440654120 in __GI_exit (status=status@entry=1) at exit.c:143
#24 0x00007f544022fe16 in _XDefaultIOError (dpy=0x55c215e25c40) at /usr/src/debug/libx11/libX11-1.8.3/src/XlibInt.c:1317
        killed = <optimized out>
#25 0x00007f5440232693 in _XIOError (dpy=dpy@entry=0x55c215e25c40) at /usr/src/debug/libx11/libX11-1.8.3/src/XlibInt.c:1548
        exit_handler = 0x7f544022fd90 <_XDefaultIOErrorExit>
        exit_handler_data = 0x0
#26 0x00007f5440232769 in require_socket (dpy=0x55c215e25c40) at /usr/src/debug/libx11/libX11-1.8.3/src/xcb_io.c:74
        sent = 94292079172672
        flags = <optimized out>
#27 0x00007f544021c973 in _XNextRequest (dpy=0x55c215e25c40) at /usr/src/debug/libx11/libX11-1.8.3/src/xcb_io.c:883
        next_request = <optimized out>
#28 XNextRequest (dpy=0x55c215e25c40) at /usr/src/debug/libx11/libX11-1.8.3/src/Macros.c:149
        next_request = <optimized out>
#29 0x00007f5439ebaab7 in KXErrorHandlerPrivate::KXErrorHandlerPrivate(_XDisplay*) (dpy=0x55c215e25c40, this=0x55c21aa915d0) at /usr/src/debug/kwindowsystem/kwindowsystem-5.101.0/src/platforms/xcb/kxerrorhandler.cpp:22
        handler = {user_handler1 = 0x0, user_handler2 = 0x0, old_handler = 0x7f543bfbfda0 <nullErrorHandler(Display*, XErrorEvent*)>, d = 0x7ffee1b2b040}
#30 KXErrorHandler::KXErrorHandler(_XDisplay*) (dpy=0x55c215e25c40, this=0x7ffee1b2afb0) at /usr/src/debug/kwindowsystem/kwindowsystem-5.101.0/src/platforms/xcb/kxerrorhandler.cpp:42
        handler = {user_handler1 = 0x0, user_handler2 = 0x0, old_handler = 0x7f543bfbfda0 <nullErrorHandler(Display*, XErrorEvent*)>, d = 0x7ffee1b2b040}
#31 KWindowInfoPrivateX11::KWindowInfoPrivateX11(unsigned long long, QFlags<NET::Property>, QFlags<NET::Property2>) (properties2=..., properties=..., _win=100663329, this=0x55c218410670)
    at /usr/src/debug/kwindowsystem/kwindowsystem-5.101.0/src/platforms/xcb/kwindowinfo.cpp:54
        handler = {user_handler1 = 0x0, user_handler2 = 0x0, old_handler = 0x7f543bfbfda0 <nullErrorHandler(Display*, XErrorEvent*)>, d = 0x7ffee1b2b040}
#32 X11Plugin::createWindowInfo(unsigned long long, QFlags<NET::Property>, QFlags<NET::Property2>) (this=<optimized out>, window=100663329, properties=..., properties2=...)
    at /usr/src/debug/kwindowsystem/kwindowsystem-5.101.0/src/platforms/xcb/plugin.cpp:34
#33 0x00007f54427d336b in KWindowSystemPluginWrapper::createWindowInfo(unsigned long long, QFlags<NET::Property>, QFlags<NET::Property2>) const
    (properties2=..., properties=..., window=100663329, this=0x7f54427ff420 <_ZZN12_GLOBAL__N_121Q_QGS_s_pluginWrapper13innerFunctionEvE6holder.lto_priv.0>) at /usr/src/debug/kwindowsystem/kwindowsystem-5.101.0/src/pluginwrapper.cpp:140
        p = 0x0
#34 KWindowInfoPrivate::create(unsigned long long, QFlags<NET::Property>, QFlags<NET::Property2>) (window=100663329, properties=..., properties2=...) at /usr/src/debug/kwindowsystem/kwindowsystem-5.101.0/src/kwindowinfo.cpp:25
#35 0x00007f54427d34e5 in KWindowInfo::KWindowInfo(unsigned long long, QFlags<NET::Property>, QFlags<NET::Property2>) (this=this@entry=0x55c21a05ffa0, window=<optimized out>, properties=..., properties@entry=..., properties2=..., 
    properties2@entry=..., this=<optimized out>, window=<optimized out>, properties=..., properties2=...) at /usr/src/debug/kwindowsystem/kwindowsystem-5.101.0/src/kwindowinfo.cpp:258
#36 0x00007f543814eb08 in TaskManager::XWindowTasksModel::Private::windowInfo(unsigned long long) (this=this@entry=0x55c21707d8c0, window=<optimized out>, window@entry=100663329)
    at /usr/src/debug/plasma-workspace/plasma-workspace-5.26.5/libtaskmanager/xwindowtasksmodel.cpp:426
        info = <optimized out>
#37 0x00007f54381564ae in TaskManager::XWindowTasksModel::data(QModelIndex const&, int) const (this=this@entry=0x55c21707d6f0, index=..., role=role@entry=293)
    at /usr/src/debug/plasma-workspace/plasma-workspace-5.26.5/libtaskmanager/xwindowtasksmodel.cpp:684
        info = <optimized out>
        window = 100663329
#38 0x00007f5440e5a796 in QAbstractProxyModel::data(QModelIndex const&, int) const (this=<optimized out>, proxyIndex=<optimized out>, role=293) at itemmodels/qabstractproxymodel.cpp:245
#39 0x00007f5440e5e4d1 in QModelIndex::data(int) const (arole=293, this=0x7ffee1b2b210, this=<optimized out>, arole=<optimized out>) at ../../include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:460
        sourceIndex = {r = 2, c = 0, i = 0, m = 0x55c21707d560}
#40 QConcatenateTablesProxyModel::data(QModelIndex const&, int) const (this=<optimized out>, index=<optimized out>, role=293) at itemmodels/qconcatenatetablesproxymodel.cpp:195
        sourceIndex = {r = 2, c = 0, i = 0, m = 0x55c21707d560}
#41 0x00007f5438126064 in QModelIndex::data(int) const (arole=293, this=0x7ffee1b2b2a0) at /usr/include/qt/QtCore/qabstractitemmodel.h:460
        sourceIdx = @0x7ffee1b2b2a0: {r = 2, c = 0, i = 0, m = 0x55c21707c9d0}
#42 TaskManager::TaskFilterProxyModel::acceptsRow(int) const (this=0x55c21707f7e0, sourceRow=2) at /usr/src/debug/plasma-workspace/plasma-workspace-5.26.5/libtaskmanager/taskfilterproxymodel.cpp:270
        sourceIdx = @0x7ffee1b2b2a0: {r = 2, c = 0, i = 0, m = 0x55c21707c9d0}
#43 0x00007f5440e6c0e1 in QSortFilterProxyModelPrivate::_q_sourceDataChanged(QModelIndex const&, QModelIndex const&, QVector<int> const&) (this=0x55c217086850, source_top_left=<optimized out>, source_bottom_right=<optimized out>, roles=...)
    at itemmodels/qsortfilterproxymodel.cpp:1471
        source_row = 2
        source_bottom_right = @0x55c217ae41d8: {r = 2, c = 0, i = 0, m = 0x55c21707c9d0}
        m = 0x55c217083b70
        source_rows_resort = {d = 0x7f5440f75ec0 <QArrayData::shared_null>}
        source_top_left = @0x55c217ae41c0: {r = 2, c = 0, i = 0, m = 0x55c21707c9d0}
        source_parent = {r = -1, c = -1, i = 0, m = 0x0}
        change_in_unmapped_parent = false
        source_rows_remove = {d = 0x7f5440f75ec0 <QArrayData::shared_null>}
        it = {i = <optimized out>}
        source_rows_insert = {d = 0x7f5440f75ec0 <QArrayData::shared_null>}
        source_rows_change = {d = 0x7f5440f75ec0 <QArrayData::shared_null>}
        data_changed = @0x55c217ae41c0: {topLeft = {r = 2, c = 0, i = 0, m = 0x55c21707c9d0}, bottomRight = {r = 2, c = 0, i = 0, m = 0x55c21707c9d0}}
        __for_range = std::vector of length 1, capacity 1 = {{topLeft = {r = 2, c = 0, i = 0, m = 0x55c21707c9d0}, bottomRight = {r = 2, c = 0, i = 0, m = 0x55c21707c9d0}}}
        q = 0x55c21707f7e0
        data_changed_list = std::vector of length 1, capacity 1 = {{topLeft = {r = 2, c = 0, i = 0, m = 0x55c21707c9d0}, bottomRight = {r = 2, c = 0, i = 0, m = 0x55c21707c9d0}}}
#44 0x00007f5440ebdc40 in doActivate<false>(QObject*, int, void**) (sender=0x55c21707c9d0, signal_index=3, argv=0x7ffee1b2b5b0) at kernel/qobject.cpp:3935
        method_relative = <optimized out>
        callFunction = <optimized out>
        methodIndex = 0
        receiver = 0x55c21707f7e0
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x55c21707f7e0, sender = 0x55c21707c9d0, signal = 3}
        c = 0x55c217086cd0
        connections = {d = 0x55c21707fad0}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 22
        signalVector = 0x55c217087510
        currentThreadId = 0x7f543c0c9ac0
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#45 0x00007f5440e45da1 in QAbstractItemModel::dataChanged(QModelIndex const&, QModelIndex const&, QVector<int> const&) (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>, _t3=<optimized out>) at .moc/moc_qabstractitemmodel.cpp:557
        _a = {0x0, 0x7ffee1b2b630, 0x7ffee1b2b650, 0x7ffee1b2ba78}
#46 0x00007f5440e6289e in QConcatenateTablesProxyModelPrivate::_q_slotDataChanged(QModelIndex const&, QModelIndex const&, QVector<int> const&) (this=<optimized out>, roles=..., to=<optimized out>, from=<optimized out>)
    at itemmodels/qconcatenatetablesproxymodel.cpp:634
        q = 0x55c21707c9d0
        adjustedTo = {r = 2, c = 0, i = 0, m = 0x55c21707d560}
        myFrom = {r = 2, c = 0, i = 0, m = 0x55c21707c9d0}
        myTo = {r = 2, c = 0, i = 0, m = 0x55c21707c9d0}
        _t = <optimized out>
#47 QConcatenateTablesProxyModel::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qconcatenatetablesproxymodel.cpp:155
        _t = <optimized out>
#48 0x00007f5440ebdc40 in doActivate<false>(QObject*, int, void**) (sender=0x55c21707d560, signal_index=3, argv=0x7ffee1b2b7a0) at kernel/qobject.cpp:3935
        method_relative = <optimized out>
        callFunction = <optimized out>
        methodIndex = 0
        receiver = 0x55c21707c9d0
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x55c21707c9d0, sender = 0x55c21707d560, signal = 3}
        c = 0x55c217081e30
        connections = {d = 0x55c21707d6c0}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 64
        signalVector = 0x55c217082250
        currentThreadId = 0x7f543c0c9ac0
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#49 0x00007f5440e45da1 in QAbstractItemModel::dataChanged(QModelIndex const&, QModelIndex const&, QVector<int> const&) (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>, _t3=<optimized out>) at .moc/moc_qabstractitemmodel.cpp:557
        _a = {0x0, 0x7ffee1b2b830, 0x7ffee1b2b810, 0x7ffee1b2ba78}
#50 0x00007f5440e638b1 in QIdentityProxyModelPrivate::_q_sourceDataChanged(QModelIndex const&, QModelIndex const&, QVector<int> const&) (this=<optimized out>, roles=..., bottomRight=<optimized out>, topLeft=...) at itemmodels/qidentityproxymodel.cpp:507
        q = 0x55c21707d560
        _t = <optimized out>
#51 QIdentityProxyModel::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _id=<optimized out>, _a=<optimized out>, _c=<optimized out>) at .moc/moc_qidentityproxymodel.cpp:164
        _t = <optimized out>
#52 0x00007f5440ebdc40 in doActivate<false>(QObject*, int, void**) (sender=0x55c21707d6f0, signal_index=3, argv=0x7ffee1b2b960) at kernel/qobject.cpp:3935
        method_relative = <optimized out>
        callFunction = <optimized out>
        methodIndex = 0
        receiver = 0x55c21707d560
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x55c21707d560, sender = 0x55c21707d6f0, signal = 3}
        c = 0x55c217080bf0
        connections = {d = 0x55c21707d810}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 38
        signalVector = 0x55c2170b6140
        currentThreadId = 0x7f543c0c9ac0
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#53 0x00007f5440e45da1 in QAbstractItemModel::dataChanged(QModelIndex const&, QModelIndex const&, QVector<int> const&) (this=<optimized out>, _t1=..., _t2=..., _t3=...) at .moc/moc_qabstractitemmodel.cpp:557
        _a = {0x0, 0x7ffee1b2b9a0, 0x7ffee1b2b9a0, 0x7ffee1b2ba78}
#54 0x00007f543814db5f in TaskManager::XWindowTasksModel::Private::dataChanged(unsigned long long, QVector<int> const&) (this=this@entry=0x55c21707d8c0, window=window@entry=100663329, roles=...)
    at /usr/src/debug/plasma-workspace/plasma-workspace-5.26.5/libtaskmanager/xwindowtasksmodel.cpp:415
        i = <optimized out>
        idx = {r = 2, c = 0, i = 0, m = 0x55c21707d6f0}
#55 0x00007f5438152812 in TaskManager::XWindowTasksModel::Private::windowChanged(unsigned long long, QFlags<NET::Property>, QFlags<NET::Property2>) (properties2=..., properties=..., window=<optimized out>, this=0x55c21707d8c0)
    at /usr/src/debug/plasma-workspace/plasma-workspace-5.26.5/libtaskmanager/xwindowtasksmodel.cpp:402
        wipeInfoCache = true
        wipeAppDataCache = false
        changedRoles = {d = 0x55c219056b20}
#56 operator() (properties2=..., properties=..., window=100663329, __closure=<optimized out>) at /usr/src/debug/plasma-workspace/plasma-workspace-5.26.5/libtaskmanager/xwindowtasksmodel.cpp:163
#57 QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2>, QtPrivate::List<long long unsigned int, QFlags<NET::Property>, QFlags<NET::Property2> >, void, TaskManager::XWindowTasksModel::Private::init()::<lambda(WId, NET::Properties, NET::Properties2)> >::call (f=<optimized out>, arg=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs_impl.h:146
#58 QtPrivate::Functor<TaskManager::XWindowTasksModel::Private::init()::<lambda(WId, NET::Properties, NET::Properties2)>, 3>::call<QtPrivate::List<unsigned long long, QFlags<NET::Property>, QFlags<NET::Property2> >, void>
    (arg=<optimized out>, f=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs_impl.h:256
#59 QtPrivate::QFunctorSlotObject<TaskManager::XWindowTasksModel::Private::init()::<lambda(WId, NET::Properties, NET::Properties2)>, 3, QtPrivate::List<long long unsigned int, QFlags<NET::Property>, QFlags<NET::Property2> >, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=<optimized out>, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs_impl.h:443
#60 0x00007f5440ebda91 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffee1b2bbe0, r=<optimized out>, this=0x55c21707f070, this=<optimized out>, r=<optimized out>, a=<optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
        receiver = <optimized out>
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x55c21707d6f0, sender = 0x55c21707def0, signal = 5}
        c = 0x55c21707f090
        connections = {d = 0x55c21708e210}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 3
        signalVector = 0x55c21707ef40
        currentThreadId = 0x7f543c0c9ac0
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#61 doActivate<false>(QObject*, int, void**) (sender=0x55c21707def0, signal_index=5, argv=0x7ffee1b2bbe0) at kernel/qobject.cpp:3923
        receiver = <optimized out>
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x55c21707d6f0, sender = 0x55c21707def0, signal = 5}
        c = 0x55c21707f090
        connections = {d = 0x55c21708e210}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 3
        signalVector = 0x55c21707ef40
        currentThreadId = 0x7f543c0c9ac0
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#62 0x00007f5438149d88 in XWindowSystemEventBatcher::windowChanged(unsigned long long, QFlags<NET::Property>, QFlags<NET::Property2>) (_t3=..., _t2=..., _t1=<optimized out>, this=<optimized out>)
    at /usr/src/debug/plasma-workspace/build/libtaskmanager/taskmanager_autogen/EWIEGA46WW/moc_xwindowsystemeventbatcher.cpp:176
        _a = {0x0, 0x7ffee1b2bbd8, 0x7ffee1b2bbc8, 0x7ffee1b2bbcc}
        this = 0x55c21707def0
#63 operator() (properties2=..., properties=..., window=<optimized out>, __closure=0x55c21707ee50) at /usr/src/debug/plasma-workspace/plasma-workspace-5.26.5/libtaskmanager/xwindowsystemeventbatcher.cpp:45
        this = 0x55c21707def0
#64 QtPrivate::FunctorCall<QtPrivate::IndexesList<0, 1, 2>, QtPrivate::List<long long unsigned int, QFlags<NET::Property>, QFlags<NET::Property2> >, void, XWindowSystemEventBatcher::XWindowSystemEventBatcher(QObject*)::<lambda(WId, NET::Properties, NET::Properties2)> >::call (arg=<optimized out>, f=...) at /usr/include/qt/QtCore/qobjectdefs_impl.h:146
#65 QtPrivate::Functor<XWindowSystemEventBatcher::XWindowSystemEventBatcher(QObject*)::<lambda(WId, NET::Properties, NET::Properties2)>, 3>::call<QtPrivate::List<unsigned long long, QFlags<NET::Property>, QFlags<NET::Property2> >, void>
    (arg=<optimized out>, f=...) at /usr/include/qt/QtCore/qobjectdefs_impl.h:256
#66 QtPrivate::QFunctorSlotObject<XWindowSystemEventBatcher::XWindowSystemEventBatcher(QObject*)::<lambda(WId, NET::Properties, NET::Properties2)>, 3, QtPrivate::List<long long unsigned int, QFlags<NET::Property>, QFlags<NET::Property2> >, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x55c21707ee40, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/qt/QtCore/qobjectdefs_impl.h:443
#67 0x00007f5440ebda91 in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7ffee1b2bd30, r=<optimized out>, this=0x55c21707ee40, this=<optimized out>, r=<optimized out>, a=<optimized out>)
    at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
        receiver = <optimized out>
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x55c21707def0, sender = 0x7f54427ff500 <(anonymous namespace)::Q_QGS_g_kwmInstanceContainer::innerFunction()::holder>, signal = 12}
        c = 0x55c21707ee60
        connections = {d = 0x55c216433eb0}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 22
        signalVector = 0x55c2164bb360
        currentThreadId = 0x7f543c0c9ac0
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#68 doActivate<false>(QObject*, int, void**) (sender=0x7f54427ff500 <(anonymous namespace)::Q_QGS_g_kwmInstanceContainer::innerFunction()::holder>, signal_index=12, argv=0x7ffee1b2bd30) at kernel/qobject.cpp:3923
        receiver = <optimized out>
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x55c21707def0, sender = 0x7f54427ff500 <(anonymous namespace)::Q_QGS_g_kwmInstanceContainer::innerFunction()::holder>, signal = 12}
        c = 0x55c21707ee60
        connections = {d = 0x55c216433eb0}
        list = <optimized out>
        inSenderThread = true
        highestConnectionId = 22
        signalVector = 0x55c2164bb360
        currentThreadId = 0x7f543c0c9ac0
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#69 0x00007f54427c68f9 in KWindowSystem::windowChanged(unsigned long long, QFlags<NET::Property>, QFlags<NET::Property2>) (this=this@entry=0x7f54427ff500 <(anonymous namespace)::Q_QGS_g_kwmInstanceContainer::innerFunction()::holder>, _t1=<optimized out>, 
    _t1@entry=100663329, _t2=..., _t3=...) at /usr/src/debug/kwindowsystem/build/src/KF5WindowSystem_autogen/EWIEGA46WW/moc_kwindowsystem.cpp:461
        _a = {0x0, 0x7ffee1b2bd28, 0x7ffee1b2bd24, 0x7ffee1b2bd20}
#70 0x00007f5439eb664b in NETEventFilter::nativeEventFilter(xcb_generic_event_t*) (this=0x55c2168df9f0, ev=0x7f542c00d190) at /usr/src/debug/kwindowsystem/kwindowsystem-5.101.0/src/platforms/xcb/kwindowsystem.cpp:342
        dirty = {0, 139999626416144}
        ni = {<NET> = {<No data fields>}, _vptr.NETWinInfo = 0x7f54427fd5c8 <vtable for NETWinInfo+16>, static OnAllDesktops = -1, p = 0x55c219054130}
        dirtyProperties = {i = 524288}
        dirtyProperties2 = {i = 0}
        s_q = 0x7f54427ff500 <(anonymous namespace)::Q_QGS_g_kwmInstanceContainer::innerFunction()::holder>
        eventType = 28 '\034'
        eventWindow = 100663329
#71 0x00007f5440e838af in QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*) (this=<optimized out>, eventType=..., message=message@entry=0x7f542c00d190, result=result@entry=0x7ffee1b2bec0)
    at kernel/qabstracteventdispatcher.cpp:495
        filter = <optimized out>
        i = 7
        scopeLevelCounter = {threadData = 0x55c215e0bed0}
        d = 0x55c215ed3ba0
#72 0x00007f543bf9af11 in QXcbConnection::handleXcbEvent(xcb_generic_event_t*) (this=this@entry=0x55c215e25820, event=event@entry=0x7f542c00d190) at /usr/src/debug/qt5-base/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp:579
        dispatcher = <optimized out>
        result = 0
        response_type = <optimized out>
        handled = <optimized out>
#73 0x00007f543bf9f4c0 in QXcbConnection::processXcbEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55c215e25820, flags=...) at /usr/src/debug/qt5-base/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp:1065
        event = 0x7f542c00d190
        eventGuard = {d = 0x7f542c00d190}
        connection_error = <optimized out>
#74 0x00007f543bfc37e8 in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at /usr/src/debug/qt5-base/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:103
        xcbEventSource = <optimized out>
        flags = {i = 36}
#75 0x00007f543f51687b in g_main_dispatch (context=0x7f5434005010) at ../glib/glib/gmain.c:3454
        dispatch = 0x7f543bfc37d0 <xcbSourceDispatch(GSource*, GSourceFunc, gpointer)>
        prev_source = 0x0
        begin_time_nsec = 856134881895
        was_in_call = 0
        user_data = 0x0
        callback = 0x0
        cb_funcs = 0x0
        cb_data = 0x0
        need_destroy = <optimized out>
        source = 0x55c215ece960
        current = 0x55c216634440
        i = 1
#76 g_main_context_dispatch (context=0x7f5434005010) at ../glib/glib/gmain.c:4172
#77 0x00007f543f56dc89 in g_main_context_iterate.constprop.0 (context=0x7f5434005010, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4248
        max_priority = 2147483647
        timeout = 4
        some_ready = 1
        nfds = 12
        allocated_nfds = <optimized out>
        fds = <optimized out>
        begin_time_nsec = 856134607111
#78 0x00007f543f515132 in g_main_context_iteration (context=0x7f5434005010, may_block=1) at ../glib/glib/gmain.c:4313
        retval = <optimized out>
#79 0x00007f5440ed7c8c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55c215ed35a0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
        d = 0x55c215ed3ba0
        canWait = true
        savedFlags = {i = 0}
        result = <optimized out>
#80 0x00007f5440e8574c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ffee1b2c240, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
        d = 0x55c2165ba620
        threadData = <optimized out>
        locker = {val = 94292079067048}
        app = <optimized out>
#81 0x00007f5440e90269 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
        threadData = 0x55c215e0bed0

                      eventLoop = {<QObject> = {_vptr.QObject = 0x7f5441111730 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f5440f74920 <_ZL26qt_meta_stringdata_QObject.lto_priv.0>, data = 0x7f5440f74800 <_ZL20qt_meta_data_QObject.lto_priv.0>, static_metacall = 0x7f5440ebdec0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x55c2165ba620}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f5440f9b500 <_ZL21qt_meta_stringdata_Qt.lto_priv.0>, data = 0x7f5440f98680 <_ZL15qt_meta_data_Qt.lto_priv.0>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7f544110a560 <QObject::staticMetaObject>}, stringdata = 0x7f5440f702e0 <_ZL29qt_meta_stringdata_QEventLoop.lto_priv.0>, data = 0x7f5440f70280 <_ZL23qt_meta_data_QEventLoop.lto_priv.0>, static_metacall = 0x7f5440e83f90 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
        returnCode = <optimized out>
#82 0x00007f5441339fe2 in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1870
#83 0x00007f5441b76f2a in QApplication::exec() () at kernel/qapplication.cpp:2832
#84 0x000055c214edb1ef in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace/plasma-workspace-5.26.5/shell/main.cpp:233
        format = {d = 0x55c215e16450}
        qpaVariable = <optimized out>

                      app = {<QGuiApplication> = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x7f5442083660 <vtable for QApplication+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f5440f74920 <_ZL26qt_meta_stringdata_QObject.lto_priv.0>, data = 0x7f5440f74800 <_ZL20qt_meta_data_QObject.lto_priv.0>, static_metacall = 0x7f5440ebdec0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x55c215e164a0}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f5440f9b500 <_ZL21qt_meta_stringdata_Qt.lto_priv.0>, data = 0x7f5440f98680 <_ZL15qt_meta_data_Qt.lto_priv.0>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7f544110a560 <QObject::staticMetaObject>}, stringdata = 0x7f5440f70060 <_ZL35qt_meta_stringdata_QCoreApplication.lto_priv.0>, data = 0x7f5440f6ff40 <_ZL29qt_meta_data_QCoreApplication.lto_priv.0>, static_metacall = 0x7f5440e8f870 <QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, static self = 0x7ffee1b2c3c0}, static staticMetaObject = {d = {superdata = {direct = 0x7f544110f380 <QCoreApplication::staticMetaObject>}, stringdata = 0x7f544175b720 <_ZL34qt_meta_stringdata_QGuiApplication.lto_priv.0>, data = 0x7f544175b4a0 <_ZL28qt_meta_data_QGuiApplication.lto_priv.0>, static_metacall = 0x7f544134b660 <QGuiApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7f5441848e80 <QGuiApplication::staticMetaObject>}, stringdata = 0x7f5441f468e0 <_ZL31qt_meta_stringdata_QApplication.lto_priv.0>, data = 0x7f5441f46760 <_ZL25qt_meta_data_QApplication.lto_priv.0>, static_metacall = 0x7f5441b7a430 <QApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
        aboutData = {d = std::unique_ptr<class KAboutDataPrivate> = {get() = 0x55c216433950}}
        replace = <optimized out>
        corona = <optimized out>

                    service = {<QObject> = {_vptr.QObject = 0x7f5442dc6290 <vtable for KDBusService+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f5440f74920 <_ZL26qt_meta_stringdata_QObject.lto_priv.0>, data = 0x7f5440f74800 <_ZL20qt_meta_data_QObject.lto_priv.0>, static_metacall = 0x7f5440ebdec0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x55c216434630}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f5440f9b500 <_ZL21qt_meta_stringdata_Qt.lto_priv.0>, data = 0x7f5440f98680 <_ZL15qt_meta_data_Qt.lto_priv.0>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7f544110a560 <QObject::staticMetaObject>}, stringdata = 0x7f5442dc16c0 <qt_meta_stringdata_KDBusService>, data = 0x7f5442dc0700 <qt_meta_data_KDBusService>, static_metacall = 0x7f5442db6430 <KDBusService::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d = std::unique_ptr<class KDBusServicePrivate> = {get() = 0x55c216434100}}
Comment 7 Nate Graham 2023-01-13 16:13:43 UTC
Can't reproduce by closing my Steam friends list from the tooltip close button while the main window is also open, FWIW.
Comment 8 Nate Graham 2023-01-13 16:15:59 UTC
You're on X11, right? I'm on Wayland and I can't reproduce this. From the backtrace I suspect it's an X11-only crash. Can you try Wayland and see if there's no crash there for you?
Comment 9 Synthetic451 2023-01-13 18:50:58 UTC
Yes this is X11 only. I can not reproduce in Wayland.
Comment 10 Nate Graham 2023-01-25 17:25:48 UTC
*** Bug 464781 has been marked as a duplicate of this bug. ***
Comment 11 Ben Bonacci 2023-03-07 07:43:35 UTC
*** Bug 466976 has been marked as a duplicate of this bug. ***
Comment 13 Fushan Wen 2023-03-08 11:01:15 UTC
Git commit 0ad9576f29a3fcc41cec283ad13d3e654508ce1f by Fushan Wen.
Committed on 07/03/2023 at 14:59.
Pushed by fusionfuture into branch 'kf5'.

WindowThumbnail: postpone texture deletion to avoid crash

The culprit was the texture that was delete as soon as the item was
delete while they may be used a bit longer by the render thread.

See also: https://github.com/sailfishos/sailfish-office/pull/85
Related: bug 446874
FIXED-IN: 5.104

M  +1    -1    src/declarativeimports/core/windowthumbnail.cpp

https://invent.kde.org/frameworks/plasma-framework/commit/0ad9576f29a3fcc41cec283ad13d3e654508ce1f
Comment 14 Fushan Wen 2023-03-11 04:24:53 UTC
Git commit f1b572b3c03c2651bc3f11f26283f7dda8d1ecb1 by Fushan Wen.
Committed on 11/03/2023 at 04:20.
Pushed by fusionfuture into branch 'master'.

WindowThumbnail: postpone texture deletion to avoid crash

The culprit was the texture that was delete as soon as the item was
delete while they may be used a bit longer by the render thread.

See also: https://github.com/sailfishos/sailfish-office/pull/85
Related: bug 446874
FIXED-IN: 5.104


(cherry picked from commit 0ad9576f29a3fcc41cec283ad13d3e654508ce1f)

M  +1    -1    src/declarativeimports/core/windowthumbnail.cpp

https://invent.kde.org/frameworks/plasma-framework/commit/f1b572b3c03c2651bc3f11f26283f7dda8d1ecb1
Comment 15 Nate Graham 2023-03-13 16:40:54 UTC
*** Bug 466983 has been marked as a duplicate of this bug. ***
Comment 16 Nate Graham 2023-03-13 19:04:07 UTC
*** Bug 467113 has been marked as a duplicate of this bug. ***
Comment 17 Nate Graham 2023-03-13 20:21:21 UTC
*** Bug 467187 has been marked as a duplicate of this bug. ***