Bug 499383 - plasma crashed in QtWaylandClient::QWaylandWindow::handleScreensChanged
Summary: plasma crashed in QtWaylandClient::QWaylandWindow::handleScreensChanged
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: general (other bugs)
Version First Reported In: 6.2.5
Platform: Arch Linux Linux
: VHI crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: multiscreen
: 499834 500110 500163 500207 500281 500385 500389 500430 500552 500610 500653 500806 500922 500928 500963 500988 501074 501136 501169 501186 501195 501277 501438 501502 501678 501771 502018 502115 502167 502407 502513 506923 (view as bug list)
Depends on:
Blocks:
 
Reported: 2025-02-01 13:11 UTC by François Guerraz
Modified: 2025-08-01 22:42 UTC (History)
41 users (show)

See Also:
Latest Commit:
Version Fixed In: Plasma 6.3.4 with Frameworks 6.13
Sentry Crash Report: https://crash-reports.kde.org/organizations/kde/issues/114947/events/aacdc292dcf441b5b98b3eb450b863e5/?project=9


Attachments
thread apply all bt full (13.37 KB, application/x-xz)
2025-02-01 13:11 UTC, François Guerraz
Details
2nd backtrace in case it helps (10.33 KB, application/x-xz)
2025-02-01 13:20 UTC, François Guerraz
Details
valgrind log (2.43 MB, application/x-xz)
2025-02-10 19:52 UTC, François Guerraz
Details
Patch to fix the issue (2.47 KB, patch)
2025-02-25 17:06 UTC, François Guerraz
Details
qtwayalnd patch to fix the issue (2.47 KB, patch)
2025-03-03 11:32 UTC, François Guerraz
Details
attachment-2121839-0.html (2.32 KB, text/html)
2025-03-12 18:24 UTC, elbawkbawk
Details
Backtrace of crash after re-enabling external monitor (227.81 KB, text/plain)
2025-03-13 16:01 UTC, TraceyC
Details

Note You need to log in before you can comment on or make changes to this bug.
Description François Guerraz 2025-02-01 13:11:41 UTC
Created attachment 177881 [details]
thread apply all bt full

Sorry I'm quite new to KDE, so I don't know the components and how to name things properly.
I got this crash yesterday when, I think, interacting with the "Present Windows" top left corner thingie. 

The crash seems to involve handleScreensChanged but there was no screen event at that moment, I was working, not fiddling with displays.

KDE Plasma 6.3 Beta 2
Comment 1 François Guerraz 2025-02-01 13:15:24 UTC
Apologies, this is a new crash, not the one when interacting with the "Present Windows" top left corner thingie. Not my fault if it's crashing left and righ lol

That might have been when waking up from sleep. I'll file a separate bug for the "Present Windows" one.
Comment 2 François Guerraz 2025-02-01 13:20:28 UTC
Created attachment 177882 [details]
2nd backtrace in case it helps
Comment 3 Nicolas Fella 2025-02-01 14:40:12 UTC
#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  0x00007b5dd38a53a3 in __pthread_kill_internal (threadid=<optimized out>, signo=11) at pthread_kill.c:78
#2  0x00007b5dd384c120 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#3  0x00007b5dd6d662a1 in KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kcrash/kcrash-6.10.0/src/kcrash.cpp:596
        data = {<KCrash::MetadataWriter> = {_vptr.MetadataWriter = 0x7b5dd6d6b858 <vtable for KCrash::Metadata+16>}, argv = {_M_elems = {0x0, 0x7b5dd6d6941b "--glrenderer", 0x5a863d1e0840 "Mesa Intel(R) Iris(R) Plus Graphics (ICL GT2)", 0x7b5dd6d69428 "--qtversion", 0x5a863cfc56c0 "6.9.0", 0x7b5dd6d6943b "--kdeframeworksversion", 0x7b5dd6d69434 "6.10.0", 0x7b5dd6d69473 "--platform", 0x5a8642c684c0 "wayland", 0x7b5dd6d694a4 "--appname", 0x5a863cfc5760 "plasmashell", 0x7b5dd6d694ae "--apppath", 0x5a863cfc5780 "/usr/bin", 0x7b5dd6d694bb "--signal", 0x7ffce75d11c6 "11", 0x7b5dd6d694c9 "--pid", 0x7ffce75d11d0 "2588985", 0x7b5dd6d694cf "--appversion", 0x5a863cfcd400 "6.2.91", 0x7b5dd6d694dc "--programname", 0x7b5dd42a6f1e <QByteArray::_empty> "", 0x7b5dd6d694ea "--bugaddress", 0x5a863cfc6d00 "submit@bugs.kde.org", 0x7b5dd6d69512 "--restarted", 0x0 <repeats 14 times>}}, argc = 24, m_writer = 0x7ffce75d1170}
        platformName = {d = {d = 0x5a8642c684b0, ptr = 0x5a8642c684c0 "wayland", size = 7}, static _empty = 0 '\000'}
        about = 0x5a863cfc2c30
        argv = 0x7ffce75d11f8
        i = <optimized out>
        ini = {<KCrash::MetadataWriter> = {_vptr.MetadataWriter = 0x7b5dd6d6b888 <vtable for KCrash::MetadataINIWriter+16>}, writable = false, fd = 23}
        sigtxt = "11\000\000\000\000\000\000\000"
        pidtxt = "2588985", '\000' <repeats 12 times>
        argc = <optimized out>
        crashRecursionCounter = 2
#4  0x00007b5dd384c1d0 in <signal handler called> () at /usr/lib/libc.so.6
#5  QWindow::screen (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qwindow.cpp:2231
        d = 0x0
#6  0x00007b5dd47d294c in QPlatformWindow::screen (this=this@entry=0x5a864117e960) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qplatformwindow.cpp:70
        scr = <optimized out>
#7  0x00007b5dd50a96fa in QtWaylandClient::QWaylandWindow::calculateScreenFromSurfaceEvents (this=0x5a864117e950) at /usr/src/debug/qt6-wayland/qtwayland/src/client/qwaylandwindow.cpp:569
        lock = {q_val = 99532664203649}
#8  0x00007b5dd50b61ba in QtWaylandClient::QWaylandWindow::handleScreensChanged (this=0x5a864117e950) at /usr/src/debug/qt6-wayland/qtwayland/src/client/qwaylandwindow.cpp:1419
        newScreen = <optimized out>
#9  0x00007b5dd3fb6389 in QtPrivate::QSlotObjectBase::call (this=0x5a864047cb10, r=0x5a864117e950, a=0x7ffce75d2188, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#10 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4130
        obj = {m_slotObject = std::unique_ptr<class QtPrivate::QSlotObjectBase> = {get() = 0x5a864047cb10}}
        receiver = 0x5a864117e950
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x5a864117e950, sender = 0x5a864363dd30, signal = 3}
        c = 0x5a863fbf01b0
        connections = {d = {ptr = <optimized out>}}
        list = <optimized out>
        inSenderThread = <optimized out>
        highestConnectionId = <optimized out>
        signalVector = 0x5a86409f5af0
        currentThreadId = <optimized out>
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#11 0x00007b5dd3fb6389 in QtPrivate::QSlotObjectBase::call (this=0x5a8640d1fa90, r=0x5a864363dd30, a=0x7ffce75d22d0, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#12 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4130
        obj = {m_slotObject = std::unique_ptr<class QtPrivate::QSlotObjectBase> = {get() = 0x5a8640d1fa90}}
        receiver = 0x5a864363dd30
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x5a864363dd30, sender = 0x7ffce75d2d60, signal = 9}
        c = 0x5a863fb1de00
        connections = {d = {ptr = <optimized out>}}
        list = <optimized out>
        inSenderThread = <optimized out>
        highestConnectionId = <optimized out>
        signalVector = 0x5a863d1da080
        currentThreadId = <optimized out>
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#13 0x00007b5dd4801829 in QMetaObject::activate<void, QScreen*> (sender=<optimized out>, mo=<optimized out>, local_signal_index=1, ret=0x0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs.h:306
        _a = {0x0, 0x7ffce75d22c8}
        _a = {<optimized out>, <optimized out>}
#14 QGuiApplication::screenAdded (this=<optimized out>, _t1=0x5a8645487030) at /usr/src/debug/qt6-base/build/src/gui/Gui_autogen/include/moc_qguiapplication.cpp:300
#15 QWindowSystemInterface::handleScreenAdded (platformScreen=platformScreen@entry=0x7b5db8001520, isPrimary=isPrimary@entry=false) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qwindowsysteminterface.cpp:726
        screen = 0x5a8645487030
#16 0x00007b5dd507ee07 in QtWaylandClient::QWaylandDisplay::handleScreenInitialized (this=0x5a863caff060, screen=<optimized out>) at /usr/src/debug/qt6-wayland/qtwayland/src/client/qwaylanddisplay.cpp:622
#17 0x00007b5dd50a43f6 in QtWaylandClient::QWaylandScreen::maybeInitialize (this=0x7b5db8001520) at /usr/src/debug/qt6-wayland/qtwayland/src/client/qwaylandscreen.cpp:81
        requiredEvents = <optimized out>
        requiredEvents = <optimized out>
#18 QtWaylandClient::QWaylandScreen::maybeInitialize (this=0x7b5db8001520) at /usr/src/debug/qt6-wayland/qtwayland/src/client/qwaylandscreen.cpp:72
        requiredEvents = 6
#19 0x00007b5dd673e596 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#20 0x00007b5dd673b00e in ffi_call_int (cif=cif@entry=0x7ffce75d2550, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
        classes = {X86_64_INTEGER_CLASS, 32764, 3597899596, 31581}
        stack = <optimized out>
        argp = 0x7ffce75d23a0 ""
        arg_types = <optimized out>
        gprcount = 2
        ssecount = <optimized out>
        ngpr = 1
        nsse = 0
        i = <optimized out>
        avn = <optimized out>
        flags = <optimized out>
        reg_args = <optimized out>
#21 0x00007b5dd673dbd3 in ffi_call (cif=cif@entry=0x7ffce75d2550, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffce75d2620) at ../src/x86/ffi64.c:710
        arg_types = 0x7ffce75d2570
        i = <optimized out>
        nargs = 2
        max_reg_struct_size = <optimized out>
#22 0x00007b5dd6fcb8b0 in wl_closure_invoke (closure=closure@entry=0x7b5db802d230, target=<optimized out>, target@entry=0x5a86410a9100, opcode=opcode@entry=2, data=<optimized out>, flags=1) at ../wayland-1.23.1/src/connection.c:1228
        count = 0
        cif = {abi = FFI_UNIX64, nargs = 2, arg_types = 0x7ffce75d2570, rtype = 0x7b5dd673f1a0 <ffi_type_void>, bytes = 0, flags = 0}
        ffi_types = {0x7b5dd673f2a0 <ffi_type_pointer>, 0x7b5dd673f2a0 <ffi_type_pointer>, 0x7b5dd673f2a0 <ffi_type_pointer>, 0x7b5dd673f330 <ffi_type_sint32>, 0x7b5dd673f330 <ffi_type_sint32>, 0x7b5dd673f330 <ffi_type_sint32>, 0x7b5dd673f330 <ffi_type_sint32>, 0x7b5dd673f2a0 <ffi_type_pointer>, 0x7b5dd673f2a0 <ffi_type_pointer>, 0x7b5dd673f330 <ffi_type_sint32>, 0x5a863e27a700, 0x7ffce75d2600, 0x7ffce75d2620, 0x7ffce75d25f8, 0x7ffce75d25f4, 0x5a863e049890, 0x100000000, 0x0, 0x5a8642acc420, 0x5a8642acc430, 0x1, 0x5a863e049890}
        ffi_args = {0x7ffce75d2530, 0x7ffce75d2538, 0x7b5db8016938, 0x7b5db8016760, 0x7b5db8016558, 0x7b5db8016560, 0x7b5db8016568, 0x7b5db8016570, 0x7ffce75d26a0, 0x7b5dd38b053c <_int_free_create_chunk+156>, 0x5a863e394140, 0x3d0, 0x7ffce75d2750, 0x7b5db8000030, 0x3d0, 0x7b5db8016a10, 0x7ffce75d26e0, 0x7b5dd38b18ba <_int_free_merge_chunk+170>, 0x5a863e014970, 0x7b5db8000030, 0x0, 0x7b5db8016910}
        implementation = <optimized out>
#23 0x00007b5dd6fcc139 in dispatch_event (display=display@entry=0x5a863caff290, queue=queue@entry=0x5a863caff388) at ../wayland-1.23.1/src/wayland-client.c:1674
        closure = 0x7b5db802d230
        proxy = 0x5a86410a9100
        opcode = 2
        proxy_destroyed = <optimized out>
#24 0x00007b5dd6fcc553 in dispatch_queue (display=0x5a863caff290, queue=0x5a863caff388) at ../wayland-1.23.1/src/wayland-client.c:1820
        count = 146
        count = <optimized out>
        err = <optimized out>
#25 wl_display_dispatch_queue_pending (display=0x5a863caff290, queue=0x5a863caff388) at ../wayland-1.23.1/src/wayland-client.c:2062
        ret = <optimized out>
#26 0x00007b5dd507ba46 in QtWaylandClient::QWaylandDisplay::flushRequests (this=<optimized out>) at /usr/src/debug/qt6-wayland/qtwayland/src/client/qwaylanddisplay.cpp:231
#27 0x00007b5dd3fa3bba in QObject::event (this=0x5a863caff060, e=0x7b5dc0002020) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:1431
        mce = 0x7b5dc0002020
        connections = <optimized out>
        sender = {previous = 0x0, receiver = 0x5a863caff060, sender = 0x5a863cb360b0, signal = 5}
#28 0x00007b5dd60fed5e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5a863caff060, e=0x7b5dc0002020) at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:3297
        consumed = false
        filtered = false
        threadData = <optimized out>
#29 0x00007b5dd3f59138 in QCoreApplication::notifyInternal2 (receiver=0x5a863caff060, event=event@entry=0x7b5dc0002020) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1118
        d = <optimized out>
        threadData = 0x5a863caf7b20
        selfRequired = <optimized out>
        result = false
        cbdata = {0x5a863caff060, 0x7b5dc0002020, 0x7ffce75d28bf}
        scopeLevelCounter = {threadData = 0x5a863caf7b20}
#30 0x00007b5dd3f59520 in QCoreApplication::sendEvent (receiver=<optimized out>, event=0x7b5dc0002020) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1558
#31 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5a863caf7b20) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1891
        e = 0x7b5dc0002020
        pe = <optimized out>
        r = <optimized out>
        relocker = {m_func = {__locker = <optimized out>}, m_invoke = <optimized out>}
        event_deleter = std::unique_ptr<QEvent> = {get() = <optimized out>}
        locker = {_M_device = 0x5a863caf7b68, _M_owns = false}
        startOffset = 0
        i = @0x5a863caf7b58: 1
        cleanup = {receiver = <optimized out>, event_type = <optimized out>, data = <optimized out>, exceptionCaught = <optimized out>}
#32 0x00007b5dd41cc8c8 in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qcoreapplication.cpp:1745
        data = <optimized out>
        data = <optimized out>
#33 postEventSourceDispatch (s=0x5a863cb52cc0) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:246
        source = 0x5a863cb52cc0
#34 0x00007b5dd2f99559 in g_main_dispatch (context=0x7b5dc8000f00) at ../glib/glib/gmain.c:3357
        dispatch = 0x7b5dd41cc890 <postEventSourceDispatch(GSource*, GSourceFunc, gpointer)>
        prev_source = 0x0
        begin_time_nsec = 498461075896800
        was_in_call = 0
        user_data = 0x0
        callback = 0x0
        cb_funcs = 0x0
        cb_data = 0x0
        need_destroy = <optimized out>
        source = 0x5a863cb52cc0
        current = 0x5a863d2c7780
        i = 0
#35 0x00007b5dd2ffc257 in g_main_context_dispatch_unlocked (context=0x7b5dc8000f00) at ../glib/glib/gmain.c:4208
#36 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7b5dc8000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4273
        max_priority = 2147483647
        timeout_usec = 16000
        some_ready = 1
        nfds = 12
        allocated_nfds = <optimized out>
        fds = 0x5a8640af1c10
        begin_time_nsec = 498461075289986
#37 0x00007b5dd2f98a55 in g_main_context_iteration (context=0x7b5dc8000f00, may_block=1) at ../glib/glib/gmain.c:4338
        retval = <optimized out>
#38 0x00007b5dd41c9e6d in QEventDispatcherGlib::processEvents (this=0x5a863cafd1d0, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:399
        d = 0x5a863cb10120
        canWait = true
        savedFlags = {<QtPrivate::QFlagsStorageHelper<QEventLoop::ProcessEventsFlag, 4>> = {<QtPrivate::QFlagsStorage<QEventLoop::ProcessEventsFlag>> = {static IntegerSize = 4, i = 0}, <No data fields>}, <No data fields>}
        result = <optimized out>
#39 0x00007b5dd3f64be6 in QEventLoop::processEvents (this=0x7ffce75d2c50, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:104
        d = <optimized out>
        threadData = <optimized out>
#40 QEventLoop::exec (this=0x7ffce75d2c50, flags=...) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qeventloop.cpp:186
        d = 0x5a863d2c6530
        threadData = <optimized out>
        locker = {m_mutex = <optimized out>, m_isLocked = false}
        ref = {d = <optimized out>, locker = <optimized out>, exceptionCaught = <optimized out>}
        app = 0x7ffce75d2d60
#41 0x00007b5dd3f5c0b9 in QCoreApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/corelib/global/qflags.h:77
        threadData = 0x5a863caf7b20
        eventLoop = {<QObject> = {_vptr.QObject = 0x7b5dd43f04f0 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7b5dd42b1170 <_ZN7QObject32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_125qt_meta_tag_ZN7QObjectE_tEEE.lto_priv.0+272>, data = 0x7b5dd42b1060 <_ZN7QObject32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_125qt_meta_tag_ZN7QObjectE_tEEE.lto_priv.0>, static_metacall = 0x7b5dd3fb1c50 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7b5dd43f3860 <_ZN7QObject36qt_staticMetaObjectRelocatingContentIN12_GLOBAL__N_125qt_meta_tag_ZN7QObjectE_tEEE.lto_priv.0>, extradata = 0x0}}, d_ptr = {d = 0x5a863d2c6530}}, static staticMetaObject = {d = {superdata = {direct = 0x7b5dd43f38e0 <QObject::staticMetaObject>}, stringdata = 0x7b5dd42b044c <_ZN10QEventLoop32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_129qt_meta_tag_ZN10QEventLoopE_tEEE.lto_priv.0+236>, data = 0x7b5dd42b0360 <_ZN10QEventLoop32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_129qt_meta_tag_ZN10QEventLoopE_tEEE.lto_priv.0>, static_metacall = 0x7b5dd3f615b0 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7b5dd43f3340 <_ZN10QEventLoop36qt_staticMetaObjectRelocatingContentIN12_GLOBAL__N_129qt_meta_tag_ZN10QEventLoopE_tEEE.lto_priv.0>, extradata = 0x0}}}
        returnCode = <optimized out>
#42 0x00007b5dd60fb10a in QApplication::exec () at /usr/src/debug/qt6-base/qtbase/src/widgets/kernel/qapplication.cpp:2564
#43 0x00005a8634d431bd in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-workspace/plasma-workspace-6.2.91/shell/main.cpp:191
        format = {d = 0x5a863cacab00}
        app = {<QGuiApplication> = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x7b5dd67073a8 <vtable for QApplication+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7b5dd42b1170 <_ZN7QObject32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_125qt_meta_tag_ZN7QObjectE_tEEE.lto_priv.0+272>, data = 0x7b5dd42b1060 <_ZN7QObject32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_125qt_meta_tag_ZN7QObjectE_tEEE.lto_priv.0>, static_metacall = 0x7b5dd3fb1c50 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7b5dd43f3860 <_ZN7QObject36qt_staticMetaObjectRelocatingContentIN12_GLOBAL__N_125qt_meta_tag_ZN7QObjectE_tEEE.lto_priv.0>, extradata = 0x0}}, d_ptr = {d = 0x5a863cafaed0}}, static staticMetaObject = {d = {superdata = {direct = 0x7b5dd43f38e0 <QObject::staticMetaObject>}, stringdata = 0x7b5dd42b0728 <_ZN16QCoreApplication32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_135qt_meta_tag_ZN16QCoreApplicationE_tEEE.lto_priv.0+392>, data = 0x7b5dd42b05a0 <_ZN16QCoreApplication32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_135qt_meta_tag_ZN16QCoreApplicationE_tEEE.lto_priv.0>, static_metacall = 0x7b5dd3f59af0 <QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7b5dd43f33c0 <_ZN16QCoreApplication36qt_staticMetaObjectRelocatingContentIN12_GLOBAL__N_135qt_meta_tag_ZN16QCoreApplicationE_tEEE.lto_priv.0>, extradata = 0x0}}, static self = 0x7ffce75d2d60}, static staticMetaObject = {d = {superdata = {direct = 0x7b5dd43f3440 <QCoreApplication::staticMetaObject>}, stringdata = 0x7b5dd4da8b10 <_ZN15QGuiApplication32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_134qt_meta_tag_ZN15QGuiApplicationE_tEEE.lto_priv.0+752>, data = 0x7b5dd4da8820 <_ZN15QGuiApplication32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_134qt_meta_tag_ZN15QGuiApplicationE_tEEE.lto_priv.0>, static_metacall = 0x7b5dd479c870 <QGuiApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7b5dd4ec6bc0 <_ZN15QGuiApplication36qt_staticMetaObjectRelocatingContentIN12_GLOBAL__N_134qt_meta_tag_ZN15QGuiApplicationE_tEEE.lto_priv.0>, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7b5dd4ec73c0 <QGuiApplication::staticMetaObject>}, stringdata = 0x7b5dd65b4528 <_ZN12QApplication32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_131qt_meta_tag_ZN12QApplicationE_tEEE.lto_priv.0+392>, data = 0x7b5dd65b43a0 <_ZN12QApplication32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_131qt_meta_tag_ZN12QApplicationE_tEEE.lto_priv.0>, static_metacall = 0x7b5dd6101870 <QApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7b5dd66f8540 <_ZN12QApplication36qt_staticMetaObjectRelocatingContentIN12_GLOBAL__N_131qt_meta_tag_ZN12QApplicationE_tEEE.lto_priv.0>, extradata = 0x0}}}
        aboutData = {d = std::unique_ptr<class KAboutDataPrivate> = {get() = 0x5a863cb6f240}}
        replace = <optimized out>
        corona = 0x5a863d32a8f0
        service = {<QObject> = {_vptr.QObject = 0x7b5dd72d2288 <vtable for KDBusService+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7b5dd42b1170 <_ZN7QObject32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_125qt_meta_tag_ZN7QObjectE_tEEE.lto_priv.0+272>, data = 0x7b5dd42b1060 <_ZN7QObject32qt_staticMetaObjectStaticContentIN12_GLOBAL__N_125qt_meta_tag_ZN7QObjectE_tEEE.lto_priv.0>, static_metacall = 0x7b5dd3fb1c50 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7b5dd43f3860 <_ZN7QObject36qt_staticMetaObjectRelocatingContentIN12_GLOBAL__N_125qt_meta_tag_ZN7QObjectE_tEEE.lto_priv.0>, extradata = 0x0}}, d_ptr = {d = 0x5a863d323450}}, static staticMetaObject = {d = {superdata = {direct = 0x7b5dd43f38e0 <QObject::staticMetaObject>}, stringdata = 0x7b5dd72cd160 <qt_meta_stringdata_ZN12KDBusServiceE>, data = 0x7b5dd72ccc80 <qt_meta_data_ZN12KDBusServiceE>, static_metacall = 0x7b5dd72c5390 <KDBusService::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, metaTypes = 0x7b5dd72d1b40 <qt_incomplete_metaTypeArray<(anonymous namespace)::qt_meta_tag_ZN12KDBusServiceE_t, QtPrivate::TypeAndForceComplete<KDBusService::StartupOption, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<QFlags<KDBusService::StartupOption>, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<KDBusService, std::integral_constant<bool, true> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QList<QString> const&, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QString const&, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QList<QUrl> const&, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QString const&, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<QVariant const&, std::integral_constant<bool, false> >, QtPrivate::TypeAndForceComplete<void, std::integral_constant<bool, false> > >>, extradata = 0x0}}, d = std::unique_ptr<class KDBusServicePrivate> = {get() = 0x5a863d1d9fe0}}
Comment 4 François Guerraz 2025-02-05 12:13:35 UTC
A link to the upstream commit fixing the bug would be appreciated.
Comment 5 David Edmundson 2025-02-05 16:56:48 UTC
this https://codereview.qt-project.org/c/qt/qtwayland/+/612948
Comment 6 François Guerraz 2025-02-06 07:49:46 UTC
Then it's not fixed. e038d0b750cf238fef6eeb07a90b7fc1b52e4640 is included in 6.9.0-beta2 which ships on Arch.
Comment 7 François Guerraz 2025-02-10 19:52:20 UTC
Created attachment 178123 [details]
valgrind log

As this is still happening multiple times a day, I have decided to run in Valgrind, in case it helps. 

There are a number of :
* Conditional jump or move depends on uninitialised value(s)
* Invalid read of size X

People who know what they're doing might find it useful.
Comment 8 cwo 2025-02-14 11:17:52 UTC
*** Bug 499834 has been marked as a duplicate of this bug. ***
Comment 9 TraceyC 2025-02-14 15:06:00 UTC
.
Comment 10 cwo 2025-02-16 16:00:14 UTC
*** Bug 500163 has been marked as a duplicate of this bug. ***
Comment 11 cwo 2025-02-16 16:15:46 UTC
*** Bug 500110 has been marked as a duplicate of this bug. ***
Comment 12 cwo 2025-02-17 22:29:04 UTC
*** Bug 500281 has been marked as a duplicate of this bug. ***
Comment 13 Nate Graham 2025-02-18 15:47:05 UTC
*** Bug 500207 has been marked as a duplicate of this bug. ***
Comment 14 Nate Graham 2025-02-18 15:53:20 UTC
*** Bug 500110 has been marked as a duplicate of this bug. ***
Comment 15 cwo 2025-02-19 13:34:21 UTC
*** Bug 500389 has been marked as a duplicate of this bug. ***
Comment 16 Nate Graham 2025-02-19 20:28:03 UTC
*** Bug 500385 has been marked as a duplicate of this bug. ***
Comment 17 TraceyC 2025-02-19 21:03:34 UTC
*** Bug 500430 has been marked as a duplicate of this bug. ***
Comment 18 cwo 2025-02-22 23:29:14 UTC
*** Bug 500552 has been marked as a duplicate of this bug. ***
Comment 19 cwo 2025-02-23 21:12:50 UTC
*** Bug 500610 has been marked as a duplicate of this bug. ***
Comment 20 cwo 2025-02-24 09:01:25 UTC
*** Bug 500653 has been marked as a duplicate of this bug. ***
Comment 21 François Guerraz 2025-02-25 17:06:54 UTC
Created attachment 178873 [details]
Patch to fix the issue

I wrote this patch to fix the issue, then I started following the process described here to upstream it: https://wiki.qt.io/Qt_Contribution_Guidelines 

After a bit, signing up to 3 different systems, and having to learn guerrit, I started to realise that  I would rather insert matches under my fingernails and light them up. So I'm adding the patch here with the hope that it helps the community and that someone who is already a member of the cult can upstream this for me.
Comment 22 cwo 2025-02-27 11:16:54 UTC
*** Bug 500806 has been marked as a duplicate of this bug. ***
Comment 23 cwo 2025-03-02 20:14:53 UTC
*** Bug 500928 has been marked as a duplicate of this bug. ***
Comment 24 cwo 2025-03-02 20:35:07 UTC
*** Bug 500963 has been marked as a duplicate of this bug. ***
Comment 25 cwo 2025-03-02 20:37:05 UTC
*** Bug 500922 has been marked as a duplicate of this bug. ***
Comment 26 m.wege 2025-03-02 21:44:39 UTC
(In reply to François Guerraz from comment #21)
> Created attachment 178873 [details]
> Patch to fix the issue
> 
> I wrote this patch to fix the issue, then I started following the process
> described here to upstream it: https://wiki.qt.io/Qt_Contribution_Guidelines 
> 
> After a bit, signing up to 3 different systems, and having to learn guerrit,
> I started to realise that  I would rather insert matches under my
> fingernails and light them up. So I'm adding the patch here with the hope
> that it helps the community and that someone who is already a member of the
> cult can upstream this for me.
Has someone who knows how to do this, tried to use this fix and can tell if it works?
Comment 27 cwo 2025-03-03 09:21:14 UTC
*** Bug 500988 has been marked as a duplicate of this bug. ***
Comment 28 François Guerraz 2025-03-03 11:32:54 UTC
Created attachment 179067 [details]
qtwayalnd patch to fix the issue

The previous version of the patch worked on the dev branch of qtwayalnd but the crash was still happening on 6.8.

This new revision should fix the issue on both branches.
Comment 29 Nate Graham 2025-03-05 17:42:11 UTC
*** Bug 501074 has been marked as a duplicate of this bug. ***
Comment 30 cwo 2025-03-06 13:07:56 UTC
*** Bug 501136 has been marked as a duplicate of this bug. ***
Comment 31 Nicolas Fella 2025-03-07 14:07:09 UTC
*** Bug 501186 has been marked as a duplicate of this bug. ***
Comment 32 Nicolas Fella 2025-03-07 14:26:14 UTC
*** Bug 501169 has been marked as a duplicate of this bug. ***
Comment 33 TraceyC 2025-03-07 17:14:30 UTC
*** Bug 501195 has been marked as a duplicate of this bug. ***
Comment 34 TraceyC 2025-03-10 15:13:24 UTC
*** Bug 501277 has been marked as a duplicate of this bug. ***
Comment 35 A. Kelly 2025-03-10 18:46:37 UTC
What is the status on the Qt6 side now? Has the bug been reported there too? If so, could the bug report be linked to this one? 
And the status of the patches on the Qt side?
Comment 36 François Guerraz 2025-03-10 21:37:12 UTC
As someone who is coming from gnome I must say I am shocked at how poor KDE project management and communication is. I reported this bug a month ago, went through the effort of writing a patch, and there’s absolutely zero communication.

FWIW my patch works fine for me, so I’m okay, but it’s not a platform I want to invest time in learning in any more depth.
Comment 37 Sune Vuorela 2025-03-12 07:59:41 UTC
(In reply to François Guerraz from comment #36)
> FWIW my patch works fine for me, so I’m okay, but it’s not a platform I want
> to invest time in learning in any more depth.

I'm not sure how you want feedback to your patch, but given there exists systems like gerrit to enable others to actually work with you on fixing your patch, which I as an absolute wayland noob can tell is at least far too big and is filling me with more 'why he changes this?' rather than 'this makes sense'.

For example, `oldestEnteredScreen()` already checks that screen->screen() is valid before returning it, so why are you doing it again?

and under which circumstances can a `QWaylandWindow` not have a `window` and thus the questions keeps piling up, but how do I ask them in a way where you can answer them when you are refusing to sign up for the systems where we are able to it easily?
Comment 38 François Guerraz 2025-03-12 17:08:12 UTC
(In reply to Sune Vuorela from comment #37)
> For example, `oldestEnteredScreen()` already checks that screen->screen() is
> valid before returning it, so why are you doing it again?
> and under which circumstances can a `QWaylandWindow` not have a `window` and
> thus the questions keeps piling up,

All I know is that it happens, and that checking prevents the crash from happening. Again, I'm not a dev, just a user trying to make his system usable.
I can add some extra debugging in places if someone tells me what they're interested in. I'll try to simplify my patch following your feedback.

> but how do I ask them in a way where you
> can answer them when you are refusing to sign up for the systems where we
> are able to it easily?

You have just proven that you can very easily ask me questions!
Comment 39 yurapostates 2025-03-12 17:57:20 UTC
(In reply to Sune Vuorela from comment #37)
> (In reply to François Guerraz from comment #36)
> > FWIW my patch works fine for me, so I’m okay, but it’s not a platform I want
> > to invest time in learning in any more depth.
> 
> I'm not sure how you want feedback to your patch, but given there exists
> systems like gerrit to enable others to actually work with you on fixing
> your patch, which I as an absolute wayland noob can tell is at least far too
> big and is filling me with more 'why he changes this?' rather than 'this
> makes sense'.
https://wiki.qt.io/Setting_up_Gerrit
Qt's Gerrit seems complicated to set up. Github, gitlab or even bugs.kde.org would never ask you to mess with your PC's SSH keys and sign weird license agreements. It's too much for a casual contributor.
Comment 40 elbawkbawk 2025-03-12 18:24:31 UTC
Created attachment 179351 [details]
attachment-2121839-0.html

But that's the tool they use, and it keeps the conversation out of the end
user threads.  And how people manage oss without a registered key is beyond
me.  But the important part is to keep the dev bickering amongst the devs
and not in the user space.  So if your going to develop, then please, use
their toolset and develop. This is the wrong spot for your conversation.
As a user, I appreciate anyone's contributions of time and skill.  To both,
I thank you for your service. It's so very appreciated as a daily user.

On Wed, Mar 12, 2025, 1:17 PM <bugzilla_noreply@kde.org> wrote:

> https://bugs.kde.org/show_bug.cgi?id=499383
>
> --- Comment #39 from yurapostates@proton.me ---
> (In reply to Sune Vuorela from comment #37)
> > (In reply to François Guerraz from comment #36)
> > > FWIW my patch works fine for me, so I’m okay, but it’s not a platform
> I want
> > > to invest time in learning in any more depth.
> >
> > I'm not sure how you want feedback to your patch, but given there exists
> > systems like gerrit to enable others to actually work with you on fixing
> > your patch, which I as an absolute wayland noob can tell is at least far
> too
> > big and is filling me with more 'why he changes this?' rather than 'this
> > makes sense'.
> https://wiki.qt.io/Setting_up_Gerrit
> Qt's Gerrit seems complicated to set up. Github, gitlab or even
> bugs.kde.org
> would never ask you to mess with your PC's SSH keys and sign weird license
> agreements. It's too much for a casual contributor.
>
> --
> You are receiving this mail because:
> You are on the CC list for the bug.
Comment 41 Harald Sitter 2025-03-13 09:47:39 UTC
*** Bug 501438 has been marked as a duplicate of this bug. ***
Comment 42 Harald Sitter 2025-03-13 09:48:30 UTC
Has anyone found a way to reliably reproduce this? A specific dock perhaps?
Comment 43 Alfred Ilberg Ulvmose 2025-03-13 10:52:49 UTC
(In reply to Harald Sitter from comment #42)
> Has anyone found a way to reliably reproduce this? A specific dock perhaps?

The Dell WD19S dock I'm using seems to be pretty good at it. It's on firmware 01.01.00.05 if that helps.
Comment 44 gus 2025-03-13 11:28:34 UTC
It happens systematically on my system using the built-in HDMI port. It is a Dell Vostro 14 5410.
Comment 45 Benjamin Dedieu 2025-03-13 11:47:05 UTC
For me, the bug is reproducible when I perform these steps:
- Plug a laptop to an external screen with HDMI,
- Make the external screen the primary screen (in KDE monitor setting page),
- Lock your session (CTRL+L),
- Turn off the external screen (without unpluging the HDMI),
- Unlock the session (from the laptop screen),

Then plasmashell restart and I have DrKonki reporting for duty..

I must precise that my laptop screen is scaled at 200% and my external screen at 100%.
Comment 46 A. Kelly 2025-03-13 12:27:41 UTC
For me it happens on my desktop (though DP), basically as soon as my monitor goes to sleep and the crash seems to happen when the screen wakes up again, also after waking the PC.
Comment 47 bugs-kde 2025-03-13 12:36:40 UTC
I using this dock https://www.amazon.fr/Station-daccueil-chargeur-Gigabit-Ethernet/dp/B0BXW49DJ5
Like other, my second monitor, when plug are 200% scale and set as primary.
Crash seems to have a relation with "sleep" and plug or unplug.

Thanks for all your efforts.
Comment 48 TraceyC 2025-03-13 15:49:49 UTC
(In reply to Benjamin Dedieu from comment #45)
> For me, the bug is reproducible when I perform these steps:

I was not able to reproduce this with two different systems using the steps in this comment
Wayland git-master
Qt 6.8.2

 Lenovo Flex and a monitor connected to the HDMI port
Dell XPS 17 connected to a dock (WD19TBS) and a monitor connected to the HDMI port of the dock
I also tried with either the laptop or external monitor set to 200%, and tried different scaling.

Notably, if Display Configuration is up, it still shows the external monitor when I power it off using its button
Does anyone who sees the crash see the screen removed from the Display Configuration immediately when the monitor is powered off?
Comment 49 TraceyC 2025-03-13 16:01:52 UTC
Created attachment 179371 [details]
Backtrace of crash after re-enabling external monitor

Just after my last comment, I reproduced the crash on the Dell connected to a dock
I re-enabled the second external monitor, that's attached to the dock's DisplayPort port
The display went black, there was still a mouse cursor and Dr Konqui appeared
Comment 50 A. Kelly 2025-03-13 17:44:28 UTC
(In reply to TraceyC from comment #48)
> (In reply to Benjamin Dedieu from comment #45)
> > For me, the bug is reproducible when I perform these steps:
> 
> I was not able to reproduce this with two different systems using the steps
> in this comment
> Wayland git-master
> Qt 6.8.2
> 
>  Lenovo Flex and a monitor connected to the HDMI port
> Dell XPS 17 connected to a dock (WD19TBS) and a monitor connected to the
> HDMI port of the dock
> I also tried with either the laptop or external monitor set to 200%, and
> tried different scaling.
> 
> Notably, if Display Configuration is up, it still shows the external monitor
> when I power it off using its button
> Does anyone who sees the crash see the screen removed from the Display
> Configuration immediately when the monitor is powered off?

For me the screen immediately get removed from the Display Configuration page with the notification the output has been disconnected.
Some other info: It happens when my primary monitor (at 125% scale) powers off, and I don't know if it has any bearing on it, but I am using an AMD graphics card (mesa).
Comment 51 Chris 2025-03-14 13:58:46 UTC
(In reply to A. Kelly from comment #50)
> (In reply to TraceyC from comment #48)
> > (In reply to Benjamin Dedieu from comment #45)
> > > For me, the bug is reproducible when I perform these steps:
> > 
> > I was not able to reproduce this with two different systems using the steps
> > in this comment
> > Wayland git-master
> > Qt 6.8.2
> > 
> >  Lenovo Flex and a monitor connected to the HDMI port
> > Dell XPS 17 connected to a dock (WD19TBS) and a monitor connected to the
> > HDMI port of the dock
> > I also tried with either the laptop or external monitor set to 200%, and
> > tried different scaling.
> > 
> > Notably, if Display Configuration is up, it still shows the external monitor
> > when I power it off using its button
> > Does anyone who sees the crash see the screen removed from the Display
> > Configuration immediately when the monitor is powered off?
> 
> For me the screen immediately get removed from the Display Configuration
> page with the notification the output has been disconnected.
> Some other info: It happens when my primary monitor (at 125% scale) powers
> off, and I don't know if it has any bearing on it, but I am using an AMD
> graphics card (mesa).

To throw my hat back in the ring, this is the exact behavior I see as well. Amd card, monitor set to 125% scale. My primary is plugged into hdmi and second is display port.
Comment 52 Nate Graham 2025-03-17 17:44:35 UTC
*** Bug 501502 has been marked as a duplicate of this bug. ***
Comment 53 cwo 2025-03-18 09:41:21 UTC
*** Bug 501678 has been marked as a duplicate of this bug. ***
Comment 54 Harald Sitter 2025-03-19 14:54:47 UTC
Is this at all reproducible with a new user? If so what kind of display configuration are you applying?
Comment 55 TraceyC 2025-03-20 21:03:37 UTC
I'm not able to reproduce this at the moment with a new user or my usual one
workspace git-master is up to date

Display configuration

Laptop 3840 x 2400@150%  Mon1 3440 x 1440@100% Mon2 3440 x 1440@100%

Mon1 shows AdaptiveSync -Automatic (DisplayPort)
Mon2 does not show this setting (HDMI)
Comment 56 David Edmundson 2025-03-25 09:59:17 UTC
I've been unable to reproduce this crash, despite buying the dock and getting a 3rd monitor.

A key difference is I'm running Qt 6.9, could anyone who can reproduce try to get Qt6.9 and confirm if the problem goes away?
Comment 57 Nicolas Fella 2025-03-25 10:57:18 UTC
I have seen it with 6.9, but I haven't found a pattern to reproduce it
Comment 58 François Guerraz 2025-03-25 11:54:24 UTC
For me the bug happens equally often on 6.8 and 6.9 (I initially reported the bug with 6.9)
Comment 59 Harald Sitter 2025-03-25 12:28:38 UTC
Is it reproducible with a new user though? See Comment 54
Comment 60 A. Kelly 2025-03-25 17:58:29 UTC
(In reply to Harald Sitter from comment #59)
> Is it reproducible with a new user though? See Comment 54

I have not been able to reproduce with a new user with default display arrangement no, curious... Qt 6.8.2 still.
Comment 61 François Guerraz 2025-03-26 09:08:24 UTC
I have been able to reproduce the issue on QT 6.9-rc1 (arch) with a new user pretty reliably:
* Create a new user
* Configure your display positioning 
* Move the panel to the external monitor
* Add widgets to the built-in monitor (window list and analog clock in my case)
Go into sleep mode, wait for the external monitor to be fully off so that it's slow to wake-up, wake up the computer and log-in again.

It doesn't happen every time, but every 2 or 3 times.
Comment 62 Harald Sitter 2025-03-26 09:44:11 UTC
(In reply to François Guerraz from comment #61)
> I have been able to reproduce the issue on QT 6.9-rc1 (arch) with a new user
> pretty reliably:
> * Create a new user
> * Configure your display positioning 

Which exact changes are you making?

> * Move the panel to the external monitor

How do you move the panel?

> * Add widgets to the built-in monitor (window list and analog clock in my
> case)

These are simply on the desktop or do you create a new panel?
Comment 63 Reza Jahanbakhshi 2025-03-26 10:05:41 UTC
(In reply to François Guerraz from comment #61)
> I have been able to reproduce the issue on QT 6.9-rc1 (arch) with a new user
> pretty reliably:
> * Create a new user
> * Configure your display positioning 
> * Move the panel to the external monitor
> * Add widgets to the built-in monitor (window list and analog clock in my
> case)
> Go into sleep mode, wait for the external monitor to be fully off so that
> it's slow to wake-up, wake up the computer and log-in again.
> 
> It doesn't happen every time, but every 2 or 3 times.

Does it also happen without adding the widget?
Comment 64 François Guerraz 2025-03-26 10:40:56 UTC
Ok, I just tested again, these are my exact steps, without adding widgets, I deleted the user's home directory and stared from scratch.
* Log in for the first time, with my laptop sitting on the right hand side of the external display, main panel with the start menu is on the external display.
* Go to display configuration
* move displays around so that the laptop monitor is on the right hand side of the external display
* change external display scale 125%->100%, change built-in display scale 225%->200%
* set external display to Primary
* Apply

For some reason, this moves the panel to the built-in display (not primary), so right-click on the desktop and enter edit mode
* Click on the panel, click clone panel, position the panel on the external display
* Delete the panel on the built-in display
Exit edit mode. Lock the display, press Esc so that monitors switch off, wait for complete switch off, wake up, log-in, crash:

#4  0x0000708c6744bcd0 in <signal handler called> () at /usr/lib/libc.so.6
#5  QWindow::screen (this=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qwindow.cpp:2240
        d = 0x74006e0065006e
#6  0x0000708c683d3d2c in QPlatformWindow::screen (this=this@entry=0x5da1336efe60) at /usr/src/debug/qt6-base/qtbase/src/gui/kernel/qplatformwindow.cpp:70
        scr = <optimized out>
#7  0x0000708c68cad3ea in QtWaylandClient::QWaylandWindow::calculateScreenFromSurfaceEvents (this=this@entry=0x5da1336efe50) at /usr/src/debug/qt6-wayland/qtwayland/src/client/qwaylandwindow.cpp:570
        lock = {q_val = 102946934029953}
#8  0x0000708c68cb343a in QtWaylandClient::QWaylandWindow::handleScreensChanged (this=0x5da1336efe50) at /usr/src/debug/qt6-wayland/qtwayland/src/client/qwaylandwindow.cpp:1426
        newScreen = <optimized out>
#9  0x0000708c67bb6cc9 in QtPrivate::QSlotObjectBase::call (this=0x5da133607830, r=0x5da1336efe50, a=0x7ffee59308d8, this=<optimized out>, r=<optimized out>, a=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#10 doActivate<false> (sender=<optimized out>, signal_index=<optimized out>, argv=<optimized out>) at /usr/src/debug/qt6-base/qtbase/src/corelib/kernel/qobject.cpp:4138
        obj = {m_slotObject = std::unique_ptr<class QtPrivate::QSlotObjectBase> = {get() = 0x5da133607830}}
        receiver = 0x5da1336efe50
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x5da1336efe50, sender = 0x5da1336ee820, signal = 3}
        c = 0x5da13350faf0
        connections = {d = {ptr = <optimized out>}}
        list = <optimized out>
        inSenderThread = <optimized out>
        highestConnectionId = <optimized out>
        signalVector = 0x5da133a6bae0
        currentThreadId = <optimized out>
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
Comment 65 Marco Martin 2025-03-26 13:09:44 UTC
Thread 1 (Thread 0x7ff8c064b2c0 (LWP 2223)):
[KCrash Handler]
#6  QWindow::screen (this=0x7ff7f4b13a40) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/gui/kernel/qwindow.cpp:2200
#7  QPlatformWindow::screen (this=0x55aa22004830) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/gui/kernel/qplatformwindow.cpp:70
#8  0x00007ff8c705ee06 in QtWaylandClient::QWaylandWindow::calculateScreenFromSurfaceEvents (this=0x55aa22004820) at /home/build/YPKG/root/qt6-wayland/build/qtwayland-everywhere-src-6.8.2/src/client/qwaylandwindow.cpp:554
#9  QtWaylandClient::QWaylandWindow::handleScreensChanged (this=0x55aa22004820) at /home/build/YPKG/root/qt6-wayland/build/qtwayland-everywhere-src-6.8.2/src/client/qwaylandwindow.cpp:1446
#10 0x00007ff8c5f38904 in QtPrivate::QSlotObjectBase::call (this=0x55aa121900f0, r=0x55aa22004820, a=0x7ffd585001e8) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qobjectdefs_impl.h:486
#11 doActivate<false> (sender=0x55aa22874ac0, signal_index=3, argv=0x7ffd585001e8) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qobject.cpp:4115
#12 0x00007ff8c5f38904 in QtPrivate::QSlotObjectBase::call (this=0x55aa0af6c5a0, r=0x55aa22874ac0, a=0x7ffd58500300) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qobjectdefs_impl.h:486
#13 doActivate<false> (sender=0x7ffd58500eb0, signal_index=9, argv=0x7ffd58500300) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qobject.cpp:4115
#14 0x00007ff8c6939a99 in QGuiApplication::screenAdded (this=0x55aa22004830, _t1=0x55aa246fdef0) at src/gui/Gui_autogen/include/moc_qguiapplication.cpp:420
#15 QWindowSystemInterface::handleScreenAdded (platformScreen=<optimized out>, isPrimary=false) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/gui/kernel/qwindowsysteminterface.cpp:726
#16 0x00007ff8c702bcba in QtWaylandClient::QWaylandDisplay::handleScreenInitialized (this=0x55aa02dff740, screen=0x55aa22004830) at /home/build/YPKG/root/qt6-wayland/build/qtwayland-everywhere-src-6.8.2/src/client/qwaylanddisplay.cpp:603
#17 0x00007ff8c705452c in QtWaylandClient::QWaylandScreen::maybeInitialize (this=0x7ff8ac0030c0) at /home/build/YPKG/root/qt6-wayland/build/qtwayland-everywhere-src-6.8.2/src/client/qwaylandscreen.cpp:81
#18 0x00007ff8c6239052 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#19 0x00007ff8c6237c01 in ffi_call_int (cif=cif@entry=0x7ffd585005b0, fn=fn@entry=0x7ff8c7070cd0 <QtWayland::wl_output::handle_done(void*, wl_output*)>, rvalue=<optimized out>, rvalue@entry=0x0, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
#20 0x00007ff8c62382dd in ffi_call (cif=cif@entry=0x7ffd585005b0, fn=0x7ff8c7070cd0 <QtWayland::wl_output::handle_done(void*, wl_output*)>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffd58500680) at ../src/x86/ffi64.c:710
#21 0x00007ff8c951a301 in wl_closure_invoke (closure=0x7ff8a40768c0, flags=<optimized out>, target=<optimized out>, opcode=2, data=<optimized out>) at ../../src/wayland/src/connection.c:1236
#22 0x00007ff8c951600f in dispatch_event (display=display@entry=0x55aa02dff960, queue=queue@entry=0x55aa02dffa58) at ../../src/wayland/src/wayland-client.c:1682
#23 0x00007ff8c95170ab in dispatch_queue (display=0x55aa02dff960, queue=0x55aa02dffa58) at ../../src/wayland/src/wayland-client.c:1828
#24 wl_display_dispatch_queue_pending (display=0x55aa02dff960, queue=0x55aa02dffa58) at ../../src/wayland/src/wayland-client.c:2165
#25 0x00007ff8c702b913 in QtWaylandClient::EventThread::dispatchQueuePending (this=0x55aa02e1d600) at /home/build/YPKG/root/qt6-wayland/build/qtwayland-everywhere-src-6.8.2/src/client/qwaylanddisplay.cpp:227
#26 QtWaylandClient::EventThread::readAndDispatchEvents (this=0x55aa02e1d600) at /home/build/YPKG/root/qt6-wayland/build/qtwayland-everywhere-src-6.8.2/src/client/qwaylanddisplay.cpp:109
#27 0x00007ff8c5f2e2ba in QObject::event (this=0x55aa02dff740, e=0x7ff8ac01e190) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qobject.cpp:1418
#28 0x00007ff8c864d110 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55aa02dff740, e=0x7ff8ac01e190) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/widgets/kernel/qapplication.cpp:3296
#29 0x00007ff8c864e353 in QApplication::notify (this=<optimized out>, receiver=0x55aa02dff740, e=0x7ff8ac01e190) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/widgets/kernel/qapplication.cpp:2689
#30 0x00007ff8c5ed750f in QCoreApplication::notifyInternal2 (receiver=0x55aa02dff740, event=0x7ff8ac01e190) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qcoreapplication.cpp:1172
#31 0x00007ff8c5ed8823 in QCoreApplication::sendEvent (receiver=0x55aa02dff740, event=<optimized out>) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qcoreapplication.cpp:1612
#32 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55aa02df1da0) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qcoreapplication.cpp:1946
#33 0x00007ff8c61e342b in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qcoreapplication.cpp:1800
#34 postEventSourceDispatch (s=0x55aa02dfb9f0) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#35 0x00007ff8c5174288 in g_main_dispatch (context=0x7ff8b4000f20) at ../glib/gmain.c:3357
#36 0x00007ff8c520001a in g_main_context_dispatch_unlocked (context=0x7ff8b4000f20) at ../glib/gmain.c:4208
#37 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7ff8b4000f20, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4273
#38 0x00007ff8c5172a74 in g_main_context_iteration (context=0x7ff8b4000f20, may_block=1) at ../glib/gmain.c:4338
#39 0x00007ff8c61e2d2e in QEventDispatcherGlib::processEvents (this=0x55aa02dfbf80, flags=...) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qeventdispatcher_glib.cpp:401
#40 0x00007ff8c5ee2936 in QEventLoop::processEvents (this=0x7ffd58500de0, flags=...) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qeventloop.cpp:103
#41 QEventLoop::exec (this=0x7ffd58500de0, flags=...) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qeventloop.cpp:185
#42 0x00007ff8c5ed7d5e in QCoreApplication::exec () at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.8.2/src/corelib/kernel/qcoreapplication.cpp:1515
#43 0x000055a9ca8e3215 in main (argc=<optimized out>, argv=<optimized out>) at /home/tracey/kde/src/plasma-workspace/shell/main.cpp:191
Comment 66 Nate Graham 2025-03-26 15:13:57 UTC
*** Bug 502018 has been marked as a duplicate of this bug. ***
Comment 67 A. Kelly 2025-03-26 17:06:11 UTC
(In reply to A. Kelly from comment #60)
> (In reply to Harald Sitter from comment #59)
> > Is it reproducible with a new user though? See Comment 54
> 
> I have not been able to reproduce with a new user with default display
> arrangement no, curious... Qt 6.8.2 still.

Okay so I've tried to copy the steps to reproduce it from François:
> * Create a new user
No issue when using default display settings
> * Configure your display positioning 
Switching left and right screen and making other screen primary, still no crash
> * Move the panel to the external monitor
Crashed immediately when my monitor turned off, it seemed to happen at the moment that the panel moved back to the other monitor when it got reconnected
Comment 68 Bug Janitor Service 2025-03-27 15:59:32 UTC
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kwindowsystem/-/merge_requests/173
Comment 69 David Edmundson 2025-03-27 18:29:07 UTC
We managed to figure this out (hopefully):

Look at frames 6 and 80, we're in createWindow *for the same window*. We end up with a dangling QPlatformWindow with no QWindow.

Thread 1 "plasmashell" hit Breakpoint 1, QPlatformWindow::QPlatformWindow (this=0x555556e108e0, window=0x555556db8a30) at /home/david/projects/kde6/src/qtbase/src/gui/kernel/qplatformwindow.cpp:35
35          qDebug() << windowMap;
(gdb) bt
#0  QPlatformWindow::QPlatformWindow (this=0x555556e108e0, window=0x555556db8a30) at /home/david/projects/kde6/src/qtbase/src/gui/kernel/qplatformwindow.cpp:35
#1  0x00007ffff42107ac in QtWaylandClient::QWaylandWindow::QWaylandWindow (this=0x555556e108d0, window=0x555556db8a30, display=0x555555780680) at /home/david/projects/kde6/src/qtwayland/src/client/qwaylandwindow.cpp:51
#2  0x00007fffecdec52a in QtWaylandClient::QWaylandEglWindow::QWaylandEglWindow (this=0x555556e108d0, window=0x555556db8a30, display=0x555555780680)
    at /home/david/projects/kde6/src/qtwayland/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp:23
#3  0x00007fffecdeb99e in QtWaylandClient::QWaylandEglClientBufferIntegration::createEglWindow (this=0x5555557f5f30, window=0x555556db8a30)
    at /home/david/projects/kde6/src/qtwayland/src/hardwareintegration/client/wayland-egl/qwaylandeglclientbufferintegration.cpp:121
#4  0x00007ffff41ee217 in QtWaylandClient::QWaylandIntegration::createPlatformWindow (this=0x55555578a7c0, window=0x555556db8a30) at /home/david/projects/kde6/src/qtwayland/src/client/qwaylandintegration.cpp:139
#5  0x00007ffff3352cca in QWindowPrivate::create (this=0x555556aabd40, recursive=false) at /home/david/projects/kde6/src/qtbase/src/gui/kernel/qwindow.cpp:570
#6  0x00007ffff3351a18 in QWindow::create (this=0x555556db8a30) at /home/david/projects/kde6/src/qtbase/src/gui/kernel/qwindow.cpp:734
#7  0x00007fffdbfa68f2 in surfaceForWindow (window=0x555556db8a30) at /home/david/projects/kde6/src/frameworks/kwindowsystem/src/platforms/wayland/surfacehelper.h:26
#8  0x00007fffdbfa3fa0 in WindowEffects::installContrast (this=0x555555a557a0, window=0x555556db8a30, enable=true, contrast=0.20000000000000001, intensity=1.3999999999999999, saturation=10, region=...)
    at /home/david/projects/kde6/src/frameworks/kwindowsystem/src/platforms/wayland/windoweffects.cpp:378
#9  0x00007fffdbfa47f5 in WindowEffects::enableBackgroundContrast (this=0x555555a557a0, window=0x555556db8a30, enable=true, contrast=0.20000000000000001, intensity=1.3999999999999999, saturation=10, region=...)
    at /home/david/projects/kde6/src/frameworks/kwindowsystem/src/platforms/wayland/windoweffects.cpp:369
#10 0x00007ffff58f17ad in KWindowEffects::enableBackgroundContrast (window=0x555556db8a30, enable=true, contrast=0.20000000000000001, intensity=1.3999999999999999, saturation=10, region=...)
    at /home/david/projects/kde6/src/frameworks/kwindowsystem/src/kwindoweffects.cpp:33
#11 0x00007ffff7a42245 in PlasmaQuick::PlasmaWindowPrivate::handleFrameChanged (this=0x5555568e0c20) at /home/david/projects/kde6/src/plasma/libplasma/src/plasmaquick/plasmawindow.cpp:167
#12 0x00007ffff7a41865 in operator() (__closure=0x555556dbc7a0) at /home/david/projects/kde6/src/plasma/libplasma/src/plasmaquick/plasmawindow.cpp:59
#13 0x00007ffff7a43293 in operator() (__closure=0x7fffffff6580) at /opt/kde6/include/QtCore/qobjectdefs_impl.h:116
#14 0x00007ffff7a4333a in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<long unsigned int>, QtPrivate::List<>, void, PlasmaQuick::PlasmaWindow::PlasmaWindow(const QString&)::<lambda()> >::call(PlasmaQuick::PlasmaWindow::PlasmaWindow(const QString&)::<lambda()>&, void**)::<lambda()> >(void **, struct {...} &&) (args=0x7fffffff6870, fn=...) at /opt/kde6/include/QtCore/qobjectdefs_impl.h:65
#15 0x00007ffff7a432d8 in QtPrivate::FunctorCall<std::integer_sequence<long unsigned int>, QtPrivate::List<>, void, PlasmaQuick::PlasmaWindow::PlasmaWindow(const QString&)::<lambda()> >::call(struct {...} &, void **)
    (f=..., arg=0x7fffffff6870) at /opt/kde6/include/QtCore/qobjectdefs_impl.h:115
#16 0x00007ffff7a431fd in QtPrivate::FunctorCallable<PlasmaQuick::PlasmaWindow::PlasmaWindow(const QString&)::<lambda()> >::call<QtPrivate::List<>, void>(struct {...} &, void *, void **) (f=..., arg=0x7fffffff6870)
    at /opt/kde6/include/QtCore/qobjectdefs_impl.h:337
#17 0x00007ffff7a43185 in QtPrivate::QCallableObject<PlasmaQuick::PlasmaWindow::PlasmaWindow(const QString&)::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *)
    (which=1, this_=0x555556dbc790, r=0x555556db8a30, a=0x7fffffff6870, ret=0x0) at /opt/kde6/include/QtCore/qobjectdefs_impl.h:547
#18 0x00007ffff204ff12 in QtPrivate::QSlotObjectBase::call (this=0x555556dbc790, r=0x555556db8a30, a=0x7fffffff6870) at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#19 0x00007ffff20fac04 in doActivate<false> (sender=0x555556d9e450, signal_index=34, argv=0x7fffffff6870) at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobject.cpp:4146
#20 0x00007ffff20f0663 in QMetaObject::activate (sender=0x555556d9e450, m=0x7ffff7af96c0 <PlasmaQuick::DialogBackground::staticMetaObject>, local_signal_index=1, argv=0x0)
    at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobject.cpp:4206
#21 0x00007ffff7a4d953 in PlasmaQuick::DialogBackground::maskChanged (this=0x555556d9e450) at /home/david/projects/kde6/build/plasma/libplasma/src/plasmaquick/PlasmaQuick_autogen/include/moc_dialogbackground_p.cpp:128
#22 0x00007ffff7a4d742 in PlasmaQuick::DialogBackground::qt_static_metacall (_o=0x555556d9e450, _c=QMetaObject::InvokeMetaMethod, _id=1, _a=0x7fffffff6b50)
    at /home/david/projects/kde6/build/plasma/libplasma/src/plasmaquick/PlasmaQuick_autogen/include/moc_dialogbackground_p.cpp:76
#23 0x00007ffff20fad04 in doActivate<false> (sender=0x555556dbc8f0, signal_index=40, argv=0x7fffffff6b50) at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobject.cpp:4158
#24 0x00007ffff20f0663 in QMetaObject::activate (sender=0x555556dbc8f0, m=0x7fffb9d00880 <KSvg::FrameSvgItem::staticMetaObject>, local_signal_index=7, argv=0x0)
    at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobject.cpp:4206
#25 0x00007fffb9cd8283 in KSvg::FrameSvgItem::maskChanged (this=0x555556dbc8f0) at /home/david/projects/kde6/build/frameworks/ksvg/src/declarativeimports/corebindingsplugin_autogen/include/moc_framesvgitem.cpp:453
#26 0x00007fffb9cd5b7a in KSvg::FrameSvgItem::doUpdate (this=0x555556dbc8f0) at /home/david/projects/kde6/src/frameworks/ksvg/src/declarativeimports/framesvgitem.cpp:569
#27 0x00007fffb9cdf1a3 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (KSvg::FrameSvgItem::*)()>::call(void (KSvg::FrameSvgItem::*)(), KSvg::FrameSvgItem*, void**)::{lambda()#1}::operator()() const (__closure=0x7fffffff6db0) at /opt/kde6/include/QtCore/qobjectdefs_impl.h:127
#28 0x00007fffb9cdfa85 in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (KSvg::FrameSvgItem::*)()>::call(void (KSvg::FrameSvgItem::*)(), KSvg::FrameSvgItem*, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (KSvg::FrameSvgItem::*)()>::call(void (KSvg::FrameSvgItem::*)(), KSvg::FrameSvgItem*, void**)::{lambda()#1}&&) (args=0x7fffffff70a0, fn=...) at /opt/kde6/include/QtCore/qobjectdefs_impl.h:65
#29 0x00007fffb9cdf215 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, void (KSvg::FrameSvgItem::*)()>::call(void (KSvg::FrameSvgItem::*)(), KSvg::FrameSvgItem*, void**)
    (f=(void (KSvg::FrameSvgItem::*)(KSvg::FrameSvgItem * const)) 0x7fffb9cd56ae <KSvg::FrameSvgItem::doUpdate()>, o=0x555556dbc8f0, arg=0x7fffffff70a0) at /opt/kde6/include/QtCore/qobjectdefs_impl.h:126
#30 0x00007fffb9cdec56 in QtPrivate::FunctionPointer<void (KSvg::FrameSvgItem::*)()>::call<QtPrivate::List<>, void>(void (KSvg::FrameSvgItem::*)(), KSvg::FrameSvgItem*, void**)
    (f=(void (KSvg::FrameSvgItem::*)(KSvg::FrameSvgItem * const)) 0x7fffb9cd56ae <KSvg::FrameSvgItem::doUpdate()>, o=0x555556dbc8f0, arg=0x7fffffff70a0) at /opt/kde6/include/QtCore/qobjectdefs_impl.h:174
#31 0x00007fffb9cde1a5 in QtPrivate::QCallableObject<void (KSvg::FrameSvgItem::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
    (which=1, this_=0x555556dbd030, r=0x555556dbc8f0, a=0x7fffffff70a0, ret=0x0) at /opt/kde6/include/QtCore/qobjectdefs_impl.h:545
#32 0x00007ffff204ff12 in QtPrivate::QSlotObjectBase::call (this=0x555556dbd030, r=0x555556dbc8f0, a=0x7fffffff70a0) at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#33 0x00007ffff20fac04 in doActivate<false> (sender=0x555556dbcbf0, signal_index=3, argv=0x7fffffff70a0) at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobject.cpp:4146
#34 0x00007ffff20f0663 in QMetaObject::activate (sender=0x555556dbcbf0, m=0x7ffff5bfd280 <KSvg::Svg::staticMetaObject>, local_signal_index=0, argv=0x0)
    at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobject.cpp:4206
--Type <RET> for more, q to quit, c to continue without paging--
#35 0x00007ffff5b95737 in KSvg::Svg::repaintNeeded (this=0x555556dbcbf0) at /home/david/projects/kde6/build/frameworks/ksvg/src/ksvg/KF6Svg_autogen/include/moc_svg.cpp:484
#36 0x00007ffff5b7da7f in KSvg::FrameSvgPrivate::updateAndSignalSizes (this=0x555556dbce50) at /home/david/projects/kde6/src/frameworks/ksvg/src/ksvg/framesvg.cpp:1005
#37 0x00007ffff5b7afd1 in KSvg::FrameSvgPrivate::updateFrameData (this=0x555556dbce50, lastModified=1727805102, updateType=KSvg::FrameSvgPrivate::UpdateFrameAndMargins)
    at /home/david/projects/kde6/src/frameworks/ksvg/src/ksvg/framesvg.cpp:725
#38 0x00007ffff5b767a1 in KSvg::FrameSvg::setElementPrefix (this=0x555556dbcbf0, prefix=...) at /home/david/projects/kde6/src/frameworks/ksvg/src/ksvg/framesvg.cpp:126
#39 0x00007ffff5b7d9f7 in KSvg::FrameSvgPrivate::updateNeeded (this=0x555556dbce50) at /home/david/projects/kde6/src/frameworks/ksvg/src/ksvg/framesvg.cpp:989
#40 0x00007ffff5b8ce14 in std::__invoke_impl<void, void (KSvg::FrameSvgPrivate::*&)(), KSvg::FrameSvgPrivate*&>
    (__f=@0x555556dbcf00: (void (KSvg::FrameSvgPrivate::*)(KSvg::FrameSvgPrivate * const)) 0x7ffff5b7d9d0 <KSvg::FrameSvgPrivate::updateNeeded()>, __t=@0x555556dbcf10: 0x555556dbce50)
    at /usr/include/c++/14.2.1/bits/invoke.h:74
#41 0x00007ffff5b8cd71 in std::__invoke<void (KSvg::FrameSvgPrivate::*&)(), KSvg::FrameSvgPrivate*&>
    (__fn=@0x555556dbcf00: (void (KSvg::FrameSvgPrivate::*)(KSvg::FrameSvgPrivate * const)) 0x7ffff5b7d9d0 <KSvg::FrameSvgPrivate::updateNeeded()>) at /usr/include/c++/14.2.1/bits/invoke.h:96
#42 0x00007ffff5b8ccd9 in std::_Bind<void (KSvg::FrameSvgPrivate::*(KSvg::FrameSvgPrivate*))()>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) (this=0x555556dbcf00, __args=...)
    at /usr/include/c++/14.2.1/functional:513
#43 0x00007ffff5b8caa9 in std::_Bind<void (KSvg::FrameSvgPrivate::*(KSvg::FrameSvgPrivate*))()>::operator()<, void>() (this=0x555556dbcf00) at /usr/include/c++/14.2.1/functional:598
#44 0x00007ffff5b8c447 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, std::_Bind<void (KSvg::FrameSvgPrivate::*(KSvg::FrameSvgPrivate*))()> >::call(std::_Bind<void (KSvg::FrameSvgPrivate::*(KSvg::FrameSvgPrivate*))()>&, void**)::{lambda()#1}::operator()() const (__closure=0x7fffffff73e0) at /opt/kde6/include/QtCore/qobjectdefs_impl.h:116
#45 0x00007ffff5b8cae4 in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, std::_Bind<void (KSvg::FrameSvgPrivate::*(KSvg::FrameSvgPrivate*))()> >::call(std::_Bind<void (KSvg::FrameSvgPrivate::*(KSvg::FrameSvgPrivate*))()>&, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, std::_Bind<void (KSvg::FrameSvgPrivate::*(KSvg::FrameSvgPrivate*))()> >::call(std::_Bind<void (KSvg::FrameSvgPrivate::*(KSvg::FrameSvgPrivate*))()>&, void**)::{lambda()#1}&&) (args=0x7fffffff76d0, fn=...)
    at /opt/kde6/include/QtCore/qobjectdefs_impl.h:65
#46 0x00007ffff5b8c48c in QtPrivate::FunctorCall<std::integer_sequence<unsigned long>, QtPrivate::List<>, void, std::_Bind<void (KSvg::FrameSvgPrivate::*(KSvg::FrameSvgPrivate*))()> >::call(std::_Bind<void (KSvg::FrameSvgPrivate::*(KSvg::FrameSvgPrivate*))()>&, void**) (f=..., arg=0x7fffffff76d0) at /opt/kde6/include/QtCore/qobjectdefs_impl.h:115
#47 0x00007ffff5b8ad7f in QtPrivate::FunctorCallable<std::_Bind<void (KSvg::FrameSvgPrivate::*(KSvg::FrameSvgPrivate*))()>>::call<QtPrivate::List<>, void>(std::_Bind<void (KSvg::FrameSvgPrivate::*(KSvg::FrameSvgPrivate*))()>&, void*, void**) (f=..., arg=0x7fffffff76d0) at /opt/kde6/include/QtCore/qobjectdefs_impl.h:337
#48 0x00007ffff5b89275 in QtPrivate::QCallableObject<std::_Bind<void (KSvg::FrameSvgPrivate::*(KSvg::FrameSvgPrivate*))()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)
    (which=1, this_=0x555556dbcef0, r=0x555556dbcbf0, a=0x7fffffff76d0, ret=0x0) at /opt/kde6/include/QtCore/qobjectdefs_impl.h:547
#49 0x00007ffff204ff12 in QtPrivate::QSlotObjectBase::call (this=0x555556dbcef0, r=0x555556dbcbf0, a=0x7fffffff76d0) at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#50 0x00007ffff20fac04 in doActivate<false> (sender=0x555556dbcbf0, signal_index=3, argv=0x7fffffff76d0) at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobject.cpp:4146
#51 0x00007ffff20f0663 in QMetaObject::activate (sender=0x555556dbcbf0, m=0x7ffff5bfd280 <KSvg::Svg::staticMetaObject>, local_signal_index=0, argv=0x0)
    at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobject.cpp:4206
#52 0x00007ffff5b95737 in KSvg::Svg::repaintNeeded (this=0x555556dbcbf0) at /home/david/projects/kde6/build/frameworks/ksvg/src/ksvg/KF6Svg_autogen/include/moc_svg.cpp:484
#53 0x00007ffff5b93237 in KSvg::Svg::setDevicePixelRatio (this=0x555556dbcbf0, ratio=2) at /home/david/projects/kde6/src/frameworks/ksvg/src/ksvg/svg.cpp:882
#54 0x00007fffb9cd71f4 in KSvg::FrameSvgItem::updateDevicePixelRatio (this=0x555556dbc8f0) at /home/david/projects/kde6/src/frameworks/ksvg/src/declarativeimports/framesvgitem.cpp:731
#55 0x00007fffb9cd74bb in KSvg::FrameSvgItem::itemChange (this=0x555556dbc8f0, change=QQuickItem::ItemDevicePixelRatioHasChanged, value=...)
    at /home/david/projects/kde6/src/frameworks/ksvg/src/declarativeimports/framesvgitem.cpp:774
#56 0x00007ffff50ce903 in updatePixelRatioHelper (item=0x555556dbc8f0, pixelRatio=pixelRatio@entry=2) at /home/david/projects/kde6/src/qtdeclarative/src/quick/items/qquickwindow.cpp:387
#57 0x00007ffff50ce89d in updatePixelRatioHelper (item=<optimized out>, pixelRatio=pixelRatio@entry=2) at /home/david/projects/kde6/src/qtdeclarative/src/quick/items/qquickwindow.cpp:392
#58 0x00007ffff50ce89d in updatePixelRatioHelper (item=<optimized out>, pixelRatio=2) at /home/david/projects/kde6/src/qtdeclarative/src/quick/items/qquickwindow.cpp:392
#59 0x00007ffff50d2ed0 in QQuickWindow::physicalDpiChanged (this=<optimized out>) at /home/david/projects/kde6/src/qtdeclarative/src/quick/items/qquickwindow.cpp:403
#60 0x00007ffff50d7e7c in QQuickWindow::event (this=<optimized out>, event=<optimized out>) at /home/david/projects/kde6/src/qtdeclarative/src/quick/items/qquickwindow.cpp:1614
#61 0x00007ffff5dcf180 in QApplicationPrivate::notify_helper (this=0x55555577c110, receiver=0x555556db8a30, e=0x7fffffff85d8) at /home/david/projects/kde6/src/qtbase/src/widgets/kernel/qapplication.cpp:3301
#62 0x00007ffff5dd3071 in QApplication::notify (this=0x7fffffffdd50, receiver=0x555556db8a30, e=0x7fffffff85d8) at /home/david/projects/kde6/src/qtbase/src/widgets/kernel/qapplication.cpp:3251
#63 0x00007ffff203a309 in QCoreApplication::notifyInternal2 (receiver=0x555556db8a30, event=0x7fffffff85d8) at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qcoreapplication.cpp:1106
#64 0x00007ffff203af79 in QCoreApplication::sendEvent (receiver=0x555556db8a30, event=0x7fffffff85d8) at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qcoreapplication.cpp:1546
#65 0x00007ffff335349c in QWindowPrivate::updateDevicePixelRatio (this=0x555556aabd40) at /home/david/projects/kde6/src/qtbase/src/gui/kernel/qwindow.cpp:1440
#66 0x00007ffff335b3c5 in QWindowPrivate::init(QWindow*, QScreen*)::$_0::operator()(QScreen*) const (this=0x555556da0b20) at /home/david/projects/kde6/src/qtbase/src/gui/kernel/qwindow.cpp:250
#67 0x00007ffff335b2e6 in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<QScreen*>, void, QWindowPrivate::init(QWindow*, QScreen*)::$_0>::call(QWindowPrivate::init(QWindow*, QScreen*)::$_0&, void**)::{lambda()#1}::operator()() const (this=0x7fffffff8710) at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobjectdefs_impl.h:116
#68 0x00007ffff335b2b9 in QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<QScreen*>, void, QWindowPrivate::init(QWindow*, QScreen*)::$_0>::call(QWindowPrivate::init(QWindow*, QScreen*)::$_0&, void**)::{lambda()#1}>(void**, QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<QScreen*>, void, QWindowPrivate::init(QWindow*, QScreen*)::$_0>::call(QWindowPrivate::init(QWindow*, QScreen*)::$_0&, void**)::{lambda()#1}&&) (args=0x7fffffff8a80, fn=...) at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobjectdefs_impl.h:65
#69 0x00007ffff335b27a in QtPrivate::FunctorCall<std::integer_sequence<unsigned long, 0ul>, QtPrivate::List<QScreen*>, void, QWindowPrivate::init(QWindow*, QScreen*)::$_0>::call(QWindowPrivate::init(QWindow*, QScreen*)::$_0&, void**) (f=..., arg=0x7fffffff8a80) at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobjectdefs_impl.h:115
#70 0x00007ffff335b221 in QtPrivate::FunctorCallable<QWindowPrivate::init(QWindow*, QScreen*)::$_0, QScreen*>::call<QtPrivate::List<QScreen*>, void>(QWindowPrivate::init(QWindow*, QScreen*)::$_0&, void*, void**)
--Type <RET> for more, q to quit, c to continue without paging--
    (f=..., arg=0x7fffffff8a80) at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobjectdefs_impl.h:337
#71 0x00007ffff335b1cd in QtPrivate::QCallableObject<QWindowPrivate::init(QWindow*, QScreen*)::$_0, QtPrivate::List<QScreen*>, void>::impl (which=1, this_=0x555556da0b10, r=0x555556db8a30, a=0x7fffffff8a80, ret=0x0)
    at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobjectdefs_impl.h:547
#72 0x00007ffff204ff12 in QtPrivate::QSlotObjectBase::call (this=0x555556da0b10, r=0x555556db8a30, a=0x7fffffff8a80) at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobjectdefs_impl.h:461
#73 0x00007ffff20fac04 in doActivate<false> (sender=0x555556db8a30, signal_index=3, argv=0x7fffffff8a80) at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobject.cpp:4146
#74 0x00007ffff20f0663 in QMetaObject::activate (sender=0x555556db8a30, m=0x7ffff3f51ae0 <QWindow::staticMetaObject>, local_signal_index=0, argv=0x7fffffff8a80)
    at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobject.cpp:4206
#75 0x00007ffff329316b in QMetaObject::activate<void, QScreen*> (sender=0x555556db8a30, mo=0x7ffff3f51ae0 <QWindow::staticMetaObject>, local_signal_index=0, ret=0x0, args=@0x7fffffff8ac0: 0x5555557900b0)
    at /home/david/projects/kde6/src/qtbase/src/corelib/kernel/qobjectdefs.h:306
#76 0x00007ffff3351149 in QWindow::screenChanged (this=0x555556db8a30, _t1=0x5555557900b0) at src/gui/Gui_autogen/include/moc_qwindow.cpp:575
#77 0x00007ffff335214b in QWindowPrivate::emitScreenChangedRecursion (this=0x555556aabd40, newScreen=0x5555557900b0) at /home/david/projects/kde6/src/qtbase/src/gui/kernel/qwindow.cpp:508
#78 0x00007ffff33523df in QWindowPrivate::setTopLevelScreen (this=0x555556aabd40, newScreen=0x5555557900b0, recreate=false) at /home/david/projects/kde6/src/qtbase/src/gui/kernel/qwindow.cpp:532
#79 0x00007ffff3352c3c in QWindowPrivate::create (this=0x555556aabd40, recursive=false) at /home/david/projects/kde6/src/qtbase/src/gui/kernel/qwindow.cpp:563
#80 0x00007ffff3351a18 in QWindow::create (this=0x555556db8a30) at /home/david/projects/kde6/src/qtbase/src/gui/kernel/qwindow.cpp:734
#81 0x00007fffdbfa68f2 in surfaceForWindow (window=0x555556db8a30) at /home/david/projects/kde6/src/frameworks/kwindowsystem/src/platforms/wayland/surfacehelper.h:26
#82 0x00007fffdbfb7fe8 in WindowShadow::internalCreate (this=0x555556dbba10) at /home/david/projects/kde6/src/frameworks/kwindowsystem/src/platforms/wayland/windowshadow.cpp:136
#83 0x00007fffdbfb86f4 in WindowShadow::create (this=0x555556dbba10) at /home/david/projects/kde6/src/frameworks/kwindowsystem/src/platforms/wayland/windowshadow.cpp:180
#84 0x00007ffff58f2a06 in KWindowShadow::create (this=0x555556e04e10) at /home/david/projects/kde6/src/frameworks/kwindowsystem/src/kwindowshadow.cpp:257
#85 0x00007ffff7a10629 in DialogShadows::Private::updateShadow (this=0x555556d9e1a0, window=0x555556db8a30, enabledBorders=...) at /home/david/projects/kde6/src/plasma/libplasma/src/plasmaquick/dialogshadows.cpp:256
#86 0x00007ffff7a0f1ae in DialogShadows::addWindow (this=0x555556d64490, window=0x555556db8a30, enabledBorders=...) at /home/david/projects/kde6/src/plasma/libplasma/src/plasmaquick/dialogshadows.cpp:72
#87 0x00007ffff7a41ac2 in PlasmaQuick::PlasmaWindow::PlasmaWindow (this=0x555556db8a30, svgPrefix=...) at /home/david/projects/kde6/src/plasma/libplasma/src/plasmaquick/plasmawindow.cpp:62
#88 0x00007ffff7a456e6 in PlasmaQuick::PopupPlasmaWindow::PopupPlasmaWindow (this=0x555556db8a30, svgPrefix=...) at /home/david/projects/kde6/src/plasma/libplasma/src/plasmaquick/popupplasmawindow.cpp:283
#89 0x00007ffff79f9f0e in PlasmaQuick::AppletPopup::AppletPopup (this=0x555556db8a30) at /home/david/projects/kde6/src/plasma/libplasma/src/plasmaquick/appletpopup.cpp:63
#90 0x00007fffba4c01fa in QQmlPrivate::QQmlElement<PlasmaQuick::AppletPopup>::QQmlElement (this=0x555556db8a30) at /opt/kde6/include/QtQml/qqmlprivate.h:99
#91 0x00007fffba4c0243 in QQmlPrivate::createInto<PlasmaQuick::AppletPopup> (memory=0x555556db8a30) at /opt/kde6/include/QtQml/qqmlprivate.h:174
#92 0x00007ffff4a25bf6 in QQmlType::create (this=0x7fffffff9430, memory=0x7fffffff9340, additionalMemory=<optimized out>) at /home/david/projects/kde6/src/qtdeclarative/src/qml/qml/qqmltype.cpp:512
#93 QQmlType::create (this=0x7fffffff9430, memory=0x7fffffff9340, additionalMemory=<optimized out>) at /home/david/projects/kde6/src/qtdeclarative/src/qml/qml/qqmltype.cpp:506
#94 0x00007ffff4a25cb2 in QQmlType::createWithQQmlData (this=this@entry=0x7fffffff9430) at /home/david/projects/kde6/src/qtdeclarative/src/qml/qml/qqmltype.cpp:527
#95 0x00007ffff49d1f21 in QQmlObjectCreator::createInstance (this=this@entry=0x555556d639e0, index=14, parent=0x555556ad8a10, isContextObject=isContextObject@entry=false)
    at /home/david/projects/kde6/src/qtdeclarative/src/qml/qml/qqmlobjectcreator.cpp:1330
#96 0x00007ffff49d3910 in QQmlObjectCreator::setPropertyBinding (this=this@entry=0x555556d639e0, bindingProperty=bindingProperty@entry=0x7fffac1f3dc0, binding=binding@entry=0x7fffb8014078)
    at /opt/kde6/include/QtCore/qendian.h:258
Comment 70 David Edmundson 2025-03-27 19:19:06 UTC
Git commit d6db21c8722466b8b38cdaed8582329567efc031 by David Edmundson.
Committed on 27/03/2025 at 15:21.
Pushed by davidedmundson into branch 'master'.

wayland: Avoid creating the platform window in surfacehelper

All window effect code has code to dynamically handle the window
being created and torn down to update the wayland state. We
don't need or want to explictly create a window ahead of time.

This is proving problematic as there is a code-path that causes
us to re-enter QWindow::create unsafely.

M  +0    -1    src/platforms/wayland/surfacehelper.h

https://invent.kde.org/frameworks/kwindowsystem/-/commit/d6db21c8722466b8b38cdaed8582329567efc031
Comment 71 François Guerraz 2025-03-28 08:47:50 UTC
As mentioned[1] in the MR, the proposed patch fixes the issue but causes other problems. Feel free to mark as RESOLVED it you think it's appropriate, but for me I can't used the proposed fix in its current state.

[1] https://invent.kde.org/frameworks/kwindowsystem/-/merge_requests/173#note_1182732
Comment 72 François Guerraz 2025-03-28 11:50:53 UTC
It now works for me with a patch on plasma-workspace [1]. I also opened MRs in Arch [2][3] to get this fixed hopefully ASAP.

Thank you! <3

[1] https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/5348
[2] https://gitlab.archlinux.org/archlinux/packaging/packages/plasma-workspace/-/merge_requests/1
[3] https://gitlab.archlinux.org/archlinux/packaging/packages/kwindowsystem/-/merge_requests/1
Comment 73 Nate Graham 2025-03-28 23:28:21 UTC
*** Bug 502115 has been marked as a duplicate of this bug. ***
Comment 74 Nate Graham 2025-03-31 19:25:20 UTC
*** Bug 502167 has been marked as a duplicate of this bug. ***
Comment 75 TraceyC 2025-04-04 15:15:23 UTC
*** Bug 502407 has been marked as a duplicate of this bug. ***
Comment 76 TraceyC 2025-04-04 15:18:20 UTC
*** Bug 501771 has been marked as a duplicate of this bug. ***
Comment 77 Nate Graham 2025-04-07 19:47:32 UTC
*** Bug 502513 has been marked as a duplicate of this bug. ***
Comment 78 TraceyC 2025-08-01 22:42:27 UTC
*** Bug 506923 has been marked as a duplicate of this bug. ***