Bug 469527

Summary: Spectacle crashes in QWindowSystemInterface::handleScreenRemoved() when disabling screen where app is opened
Product: [Applications] Spectacle Reporter: postix <postix>
Component: GeneralAssignee: Noah Davis <noahadvs>
Status: RESOLVED DUPLICATE    
Severity: crash CC: arcadiy, boredsquirrel, cyrond, david2005thomas, dvdmerwe, fkwilcz2, heath.mitchell27, jan.hegner, jlp, kde, kde, mippo9, nate, oper.kh, sitter
Priority: HI Keywords: wayland
Version: 23.04.3   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: New crash information added by DrKonqi

Description postix 2023-05-09 12:44:57 UTC
SUMMARY

Spectacle crashed when disabling screen where Spectacle is opened and took a rectangular region screenshot

STEPS TO REPRODUCE
1.  Have two screens
2.  Open Spectacle on your 2nd screen
3.  Take a rectengular region screenshot
4. Disable this screen in kscreen

OBSERVED RESULT
Spectacle crashes. Reproducible: Always

```
(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=11, no_tid=no_tid@entry=0) at pthread_kill.c:44
#1  0x00007f7684a94993 in __pthread_kill_internal (signo=11, threadid=<optimized out>) at pthread_kill.c:78
#2  0x00007f7684a43196 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
#3  0x00007f76855ddd3a in KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kcrash-5.105.0/src/kcrash.cpp:626
#4  <signal handler called>
#5  0x0000000000000320 in ?? ()
#6  0x00007f7685325232 in QtPrivate::QSlotObjectBase::call (a=0x7fff7dd679e0, r=0x7fff7dd68410, this=0x55f87f19a110) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#7  doActivate<false> (sender=0x7fff7dd683c0, signal_index=10, argv=0x7fff7dd679e0) at kernel/qobject.cpp:3923
#8  0x00007f768531de2f in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7f7685d15fa0, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7fff7dd679e0) at kernel/qobject.cpp:3983
#9  0x00007f768576e8f2 in QGuiApplication::screenRemoved (this=<optimized out>, _t1=<optimized out>, _t1@entry=0x55f87ed37780) at .moc/moc_qguiapplication.cpp:396
#10 0x00007f76857a5df8 in QScreen::~QScreen (this=0x55f87ed37780, __in_chrg=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:116
#11 0x00007f76857a5f69 in QScreen::~QScreen (this=0x55f87ed37780, __in_chrg=<optimized out>) at kernel/qscreen.cpp:178
#12 0x00007f768574f247 in QWindowSystemInterface::handleScreenRemoved (platformScreen=0x55f87ed98a90) at kernel/qwindowsysteminterface.cpp:844
#13 0x00007f76872a5c02 in QtWaylandClient::QWaylandDisplay::registry_global_remove (this=0x55f87ed7a260, id=70) at qwaylanddisplay.cpp:571
#14 0x00007f76862a58d2 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#15 0x00007f76862a224f in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:673
#16 0x00007f76862a4e96 in ffi_call (cif=cif@entry=0x7fff7dd67cc0, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7fff7dd67d90) at ../src/x86/ffi64.c:710
#17 0x00007f768792ca23 in wl_closure_invoke (closure=closure@entry=0x7f766c002c40, target=<optimized out>, target@entry=0x55f87ed7e830, opcode=opcode@entry=1, data=<optimized out>, flags=1) at ../src/connection.c:1025
#18 0x00007f768792d203 in dispatch_event (display=display@entry=0x55f87ed7e6b0, queue=0x55f87ed7e7a0) at ../src/wayland-client.c:1631
#19 0x00007f768792d494 in dispatch_queue (queue=0x55f87ed7e7a0, display=0x55f87ed7e6b0) at ../src/wayland-client.c:1777
#20 wl_display_dispatch_queue_pending (display=0x55f87ed7e6b0, queue=0x55f87ed7e7a0) at ../src/wayland-client.c:2019
#21 0x00007f76872a2a12 in QtWaylandClient::QWaylandDisplay::flushRequests (this=<optimized out>) at qwaylanddisplay.cpp:255
#22 0x00007f7685318c50 in QObject::event (this=0x55f87ed7a260, e=0x7f766c001ee0) at kernel/qobject.cpp:1347
#23 0x00007f7686ba51ae in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55f87ed7a260, e=0x7f766c001ee0) at kernel/qapplication.cpp:3640
#24 0x00007f76852ec978 in QCoreApplication::notifyInternal2 (receiver=0x55f87ed7a260, event=0x7f766c001ee0) at kernel/qcoreapplication.cpp:1064
#25 0x00007f76852eff71 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55f87ed71230) at kernel/qcoreapplication.cpp:1821
#26 0x00007f7685346713 in postEventSourceDispatch (s=0x55f87ed952a0) at kernel/qeventdispatcher_glib.cpp:277
#27 0x00007f7682d028d8 in g_main_dispatch (context=0x7f7674000ee0) at ../glib/gmain.c:3460
#28 g_main_context_dispatch (context=context@entry=0x7f7674000ee0) at ../glib/gmain.c:4200
#29 0x00007f7682d02ce8 in g_main_context_iterate (context=context@entry=0x7f7674000ee0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4276
#30 0x00007f7682d02d7c in g_main_context_iteration (context=0x7f7674000ee0, may_block=1) at ../glib/gmain.c:4343
#31 0x00007f7685345f26 in QEventDispatcherGlib::processEvents (this=0x55f87ed36d30, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#32 0x00007f76852eb40b in QEventLoop::exec (this=this@entry=0x7fff7dd682e0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#33 0x00007f76852f38a0 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#34 0x00007f768576fe3c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1870
#35 0x00007f7686ba5125 in QApplication::exec () at kernel/qapplication.cpp:2832
#36 0x000055f87cf8a962 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/spectacle-23.04.0/src/Main.cpp:109
```

```
(gdb) bt full
#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 = {140735304591192}}
        ret = <optimized out>
#1  0x00007f7684a94993 in __pthread_kill_internal (signo=11, threadid=<optimized out>) at pthread_kill.c:78
No locals.
#2  0x00007f7684a43196 in __GI_raise (sig=11) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#3  0x00007f76855ddd3a in KCrash::defaultCrashHandler (sig=11) at /usr/src/debug/kcrash-5.105.0/src/kcrash.cpp:626
        crashRecursionCounter = 2
#4  <signal handler called>
No locals.
#5  0x0000000000000320 in ?? ()
No symbol table info available.
#6  0x00007f7685325232 in QtPrivate::QSlotObjectBase::call (a=0x7fff7dd679e0, r=0x7fff7dd68410, this=0x55f87f19a110) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
No locals.
#7  doActivate<false> (sender=0x7fff7dd683c0, signal_index=10, argv=0x7fff7dd679e0) at kernel/qobject.cpp:3923
        obj = <optimized out>
        receiver = 0x7fff7dd68410
        td = <optimized out>
        receiverInSameThread = <optimized out>
        senderData = {previous = 0x0, receiver = 0x7fff7dd68410, sender = 0x7fff7dd683c0, signal = 10}
        c = 0x55f87f199b40
        connections = {d = 0x55f87efa36a0}
        list = <optimized out>
        inSenderThread = <optimized out>
        highestConnectionId = 236
        signalVector = <optimized out>
        currentThreadId = 0x7f767d216f40
        sp = <optimized out>
        signal_spy_set = 0x0
        empty_argv = {0x0}
        senderDeleted = false
#8  0x00007f768531de2f in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7f7685d15fa0, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7fff7dd679e0) at kernel/qobject.cpp:3983
        signal_index = <optimized out>
#9  0x00007f768576e8f2 in QGuiApplication::screenRemoved (this=<optimized out>, _t1=<optimized out>, _t1@entry=0x55f87ed37780) at .moc/moc_qguiapplication.cpp:396
        _a = {0x0, 0x7fff7dd679d8}
#10 0x00007f76857a5df8 in QScreen::~QScreen (this=0x55f87ed37780, __in_chrg=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:116
        wasPrimary = false
        newPrimaryScreen = 0x55f87ed38200
        movingFromVirtualSibling = <optimized out>
        allWindows = {<QListSpecialMethods<QWindow*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = std::atomic<int> = { -1 }}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x7fff7dd67c10}, d = 0x7fff7dd67c10}}
        wasPrimary = <optimized out>
        newPrimaryScreen = <optimized out>
        movingFromVirtualSibling = <optimized out>
        allWindows = <optimized out>
        window = <optimized out>
        __for_range = <optimized out>
        __for_begin = <optimized out>
        __for_end = <optimized out>
        wasVisible = <optimized out>
#11 0x00007f76857a5f69 in QScreen::~QScreen (this=0x55f87ed37780, __in_chrg=<optimized out>) at kernel/qscreen.cpp:178
        wasPrimary = <optimized out>
        newPrimaryScreen = <optimized out>
        movingFromVirtualSibling = <optimized out>
        allWindows = <optimized out>
        window = <optimized out>
        __for_range = <optimized out>
        __for_begin = <optimized out>
        __for_end = <optimized out>
        wasVisible = <optimized out>
#12 0x00007f768574f247 in QWindowSystemInterface::handleScreenRemoved (platformScreen=0x55f87ed98a90) at kernel/qwindowsysteminterface.cpp:844
No locals.
#13 0x00007f76872a5c02 in QtWaylandClient::QWaylandDisplay::registry_global_remove (this=0x55f87ed7a260, id=70) at qwaylanddisplay.cpp:571
        screen = 0x55f87ed98a90
        __for_range = @0x55f87ed7a2c0: {<QListSpecialMethods<QtWaylandClient::QWaylandScreen*>> = {<No data fields>}, {p = {static shared_null = {ref = {atomic = {_q_value = std::atomic<int> = { -1 }}}, alloc = 0, begin = 0, end = 0, array = {0x0}}, d = 0x55f87ed9cd70}, d = 0x55f87ed9cd70}}
        __for_begin = <optimized out>
        __for_end = <optimized out>
        global = @0x55f87eda4ba0: {id = 70, interface = {d = 0x55f87ed72980}, version = 4, registry = 0x55f87ed7e830}
        i = 50
        ie = <optimized out>
#14 0x00007f76862a58d2 in ffi_call_unix64 () at ../src/x86/unix64.S:104
No locals.
#15 0x00007f76862a224f in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:673
        classes = {X86_64_INTEGERSI_CLASS, 32767, 2250901852, 32630}
        stack = <optimized out>
        argp = 0x7fff7dd67b00 ""
        arg_types = <optimized out>
        gprcount = 3
        ssecount = <optimized out>
        ngpr = 1
        nsse = 0
        i = <optimized out>
        avn = <optimized out>
        flags = <optimized out>
        reg_args = <optimized out>
#16 0x00007f76862a4e96 in ffi_call (cif=cif@entry=0x7fff7dd67cc0, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7fff7dd67d90) at ../src/x86/ffi64.c:710
        arg_types = 0x7fff7dd67ce0
        i = <optimized out>
        nargs = 3
        max_reg_struct_size = <optimized out>
#17 0x00007f768792ca23 in wl_closure_invoke (closure=closure@entry=0x7f766c002c40, target=<optimized out>, target@entry=0x55f87ed7e830, opcode=opcode@entry=1, data=<optimized out>, flags=1) at ../src/connection.c:1025
        count = <optimized out>
        cif = {abi = FFI_UNIX64, nargs = 3, arg_types = 0x7fff7dd67ce0, rtype = 0x7f76862a61a0 <ffi_type_void>, bytes = 0, flags = 0}
        ffi_types = {0x7f76862a62a0 <ffi_type_pointer>, 0x7f76862a62a0 <ffi_type_pointer>, 0x7f76862a6240 <ffi_type_uint32>, 0x7f76862a6330 <ffi_type_sint32>, 0x7f76862a6330 <ffi_type_sint32>, 0x7f76862a6330 <ffi_type_sint32>, 0x7f76862a6330 <ffi_type_sint32>, 0x7f76862a62a0 <ffi_type_pointer>, 0x7f76862a62a0 <ffi_type_pointer>, 0x7f76862a6330 <ffi_type_sint32>, 0x70, 0x55f87f7b70b0, 0xffffffffffffffff, 0x7fff7dd67dd0, 0x7fff7dd67d3f, 0x79b98bb22295f200, 0x8000000000000000, 0x8000000000000000, 0x22e000002fa, 0x7fff7dd67f00, 0x55f87f1864d0, 0x55f87ed71230}
        ffi_args = {0x7fff7dd67ca0, 0x7fff7dd67ca8, 0x7f766c002c58, 0x7f766c002990, 0x7f766c002878, 0x7f766c002880, 0x7f766c002888, 0x7f766c002890, 0x7f766c002898, 0x7f766c0028a0, 0x3, 0x0, 0x0, 0x7f76855ce4d0, 0x7fff7dd67e40, 0x79b98bb22295f200, 0x55f880c10ac0, 0xfffffffffffffed8, 0xb, 0x7f7686bac506 <QApplication::notify(QObject*, QEvent*)+134>, 0x55f87ed7a260, 0x7f7684aa0f80 <_int_free+530>}
        implementation = <optimized out>
#18 0x00007f768792d203 in dispatch_event (display=display@entry=0x55f87ed7e6b0, queue=0x55f87ed7e7a0) at ../src/wayland-client.c:1631
        closure = 0x7f766c002c40
        proxy = 0x55f87ed7e830
        opcode = 1
        proxy_destroyed = <optimized out>
#19 0x00007f768792d494 in dispatch_queue (queue=0x55f87ed7e7a0, display=0x55f87ed7e6b0) at ../src/wayland-client.c:1777
        count = 7
        count = <optimized out>
        err = <optimized out>
#20 wl_display_dispatch_queue_pending (display=0x55f87ed7e6b0, queue=0x55f87ed7e7a0) at ../src/wayland-client.c:2019
        ret = <optimized out>
#21 0x00007f76872a2a12 in QtWaylandClient::QWaylandDisplay::flushRequests (this=<optimized out>) at qwaylanddisplay.cpp:255
No locals.
#22 0x00007f7685318c50 in QObject::event (this=0x55f87ed7a260, e=0x7f766c001ee0) at kernel/qobject.cpp:1347
        mce = 0x7f766c001ee0
        sender = {previous = 0x0, receiver = 0x55f87ed7a260, sender = 0x55f87ed7ccb0, signal = 5}
#23 0x00007f7686ba51ae in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55f87ed7a260, e=0x7f766c001ee0) at kernel/qapplication.cpp:3640
        consumed = false
        filtered = false
#24 0x00007f76852ec978 in QCoreApplication::notifyInternal2 (receiver=0x55f87ed7a260, event=0x7f766c001ee0) at kernel/qcoreapplication.cpp:1064
        selfRequired = true
        result = false
        cbdata = {0x55f87ed7a260, 0x7f766c001ee0, 0x7fff7dd67fff}
        d = <optimized out>
        threadData = 0x55f87ed71230
        scopeLevelCounter = {threadData = 0x55f87ed71230}
#25 0x00007f76852eff71 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x55f87ed71230) at kernel/qcoreapplication.cpp:1821
        e = 0x7f766c001ee0
        pe = <optimized out>
        r = <optimized out>
        relocker = <optimized out>
        event_deleter = {d = 0x7f766c001ee0}
        locker = {_M_device = 0x55f87ed71260, _M_owns = false}
        startOffset = 0
        i = @0x55f87ed71254: 1
        cleanup = {receiver = 0x0, event_type = 0, data = 0x55f87ed71230, exceptionCaught = true}
#26 0x00007f7685346713 in postEventSourceDispatch (s=0x55f87ed952a0) at kernel/qeventdispatcher_glib.cpp:277
        source = 0x55f87ed952a0
#27 0x00007f7682d028d8 in g_main_dispatch (context=0x7f7674000ee0) at ../glib/gmain.c:3460
        dispatch = 0x7f7685346700 <postEventSourceDispatch(GSource*, GSourceFunc, gpointer)>
        prev_source = 0x0
        begin_time_nsec = 0
        was_in_call = 0
        user_data = 0x0
        callback = 0x0
        cb_funcs = 0x0
        cb_data = 0x0
        need_destroy = <optimized out>
        source = 0x55f87ed952a0
        current = 0x55f87f1961f0
        i = 0
        current = <optimized out>
        i = <optimized out>
        __func__ = "g_main_dispatch"
        source = <optimized out>
        _g_boolean_var_163 = <optimized out>
        was_in_call = <optimized out>
        user_data = <optimized out>
        callback = <optimized out>
        cb_funcs = <optimized out>
        cb_data = <optimized out>
        need_destroy = <optimized out>
        dispatch = <optimized out>
        prev_source = <optimized out>
        begin_time_nsec = <optimized out>
        _g_boolean_var_164 = <optimized out>
#28 g_main_context_dispatch (context=context@entry=0x7f7674000ee0) at ../glib/gmain.c:4200
No locals.
#29 0x00007f7682d02ce8 in g_main_context_iterate (context=context@entry=0x7f7674000ee0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4276
        max_priority = 2147483647
        timeout = 85861
        some_ready = 1
        nfds = <optimized out>
        allocated_nfds = 4
        fds = 0x55f87f406de0
        begin_time_nsec = 0
#30 0x00007f7682d02d7c in g_main_context_iteration (context=0x7f7674000ee0, may_block=1) at ../glib/gmain.c:4343
        retval = <optimized out>
#31 0x00007f7685345f26 in QEventDispatcherGlib::processEvents (this=0x55f87ed36d30, flags=...) at kernel/qeventdispatcher_glib.cpp:423
        d = 0x55f87ed9a3e0
        canWait = true
        savedFlags = {i = 0}
        result = <optimized out>
#32 0x00007f76852eb40b in QEventLoop::exec (this=this@entry=0x7fff7dd682e0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
        d = 0x55f87f0e20f0
        threadData = <optimized out>
        locker = {val = 94525768274696}
        ref = <optimized out>
        app = <optimized out>
#33 0x00007f76852f38a0 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
        threadData = 0x55f87ed71230
        eventLoop = {<QObject> = {_vptr.QObject = 0x7f76855c5f88 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f76854bb100 <qt_meta_stringdata_QObject>, data = 0x7f76854bafe0 <qt_meta_data_QObject>, static_metacall = 0x7f76853232a0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x55f87f0e20f0}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f76854be0a0 <qt_meta_stringdata_Qt>, data = 0x7f76854bb220 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x55f87d01c6a0 <QObject::staticMetaObject>}, stringdata = 0x7f76854b58c0 <qt_meta_stringdata_QEventLoop>, data = 0x7f76854b5860 <qt_meta_data_QEventLoop>, static_metacall = 0x7f76852eb140 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
        returnCode = <optimized out>
#34 0x00007f768576fe3c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1870
No locals.
#35 0x00007f7686ba5125 in QApplication::exec () at kernel/qapplication.cpp:2832
No locals.
#36 0x000055f87cf8a962 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/spectacle-23.04.0/src/Main.cpp:109
        app = {<QGuiApplication> = {<QCoreApplication> = {<QObject> = {_vptr.QObject = 0x7f76870baf08 <vtable for QApplication+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f76854bb100 <qt_meta_stringdata_QObject>, data = 0x7f76854bafe0 <qt_meta_data_QObject>, static_metacall = 0x7f76853232a0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x55f87ed73820}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f76854be0a0 <qt_meta_stringdata_Qt>, data = 0x7f76854bb220 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x55f87d01c6a0 <QObject::staticMetaObject>}, stringdata = 0x7f76854b5fc0 <qt_meta_stringdata_QCoreApplication>, data = 0x7f76854b5ea0 <qt_meta_data_QCoreApplication>, static_metacall = 0x7f76852ee150 <QCoreApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, static self = 0x7fff7dd683c0}, static staticMetaObject = {d = {superdata = {direct = 0x55f87d01cac0 <QCoreApplication::staticMetaObject>}, stringdata = 0x7f7685c157c0 <qt_meta_stringdata_QGuiApplication>, data = 0x7f7685c15540 <qt_meta_data_QGuiApplication>, static_metacall = 0x7f7685775670 <QGuiApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x55f87d01ce40 <QGuiApplication::staticMetaObject>}, stringdata = 0x7f7686f558c0 <qt_meta_stringdata_QApplication>, data = 0x7f7686f55740 <qt_meta_data_QApplication>, static_metacall = 0x7f7686ba8db0 <QApplication::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
        aboutData = {d = std::unique_ptr<KAboutDataPrivate> = {get() = 0x55f87ef75ef0}}
        commandLineParser = {d = 0x55f87ef10e90}
        disableSessionManagement = <optimized out>
        service = {<QObject> = {_vptr.QObject = 0x7f76876451e0 <vtable for KDBusService+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f76854bb100 <qt_meta_stringdata_QObject>, data = 0x7f76854bafe0 <qt_meta_data_QObject>, static_metacall = 0x7f76853232a0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x55f87efa0190}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f76854be0a0 <qt_meta_stringdata_Qt>, data = 0x7f76854bb220 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x55f87d01c6a0 <QObject::staticMetaObject>}, stringdata = 0x7f7687640760 <qt_meta_stringdata_KDBusService>, data = 0x7f768763f700 <qt_meta_data_KDBusService>, static_metacall = 0x7f7687635e40 <KDBusService::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d = std::unique_ptr<KDBusServicePrivate> = {get() = 0x55f87efa01f0}}
        spectacleCore = {<QObject> = {_vptr.QObject = 0x55f87d01ed80 <vtable for SpectacleCore+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f76854bb100 <qt_meta_stringdata_QObject>, data = 0x7f76854bafe0 <qt_meta_data_QObject>, static_metacall = 0x7f76853232a0 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x55f87f19ea80}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7f76854be0a0 <qt_meta_stringdata_Qt>, data = 0x7f76854bb220 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x55f87d01c6a0 <QObject::staticMetaObject>}, stringdata = 0x55f87cfef400 <_ZL32qt_meta_stringdata_SpectacleCore.lto_priv.0>, data = 0x55f87cfea540 <_ZL26qt_meta_data_SpectacleCore.lto_priv.0>, static_metacall = 0x55f87cf90d40 <SpectacleCore::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, m_annotationDocument = std::unique_ptr<AnnotationDocument> = {get() = 0x55f87f19eb70}, m_startMode = SpectacleCore::StartMode::Gui, m_screenCaptureUrl = {d = 0x0}, m_platform = std::unique_ptr<Platform> = {get() = 0x55f87f1a0670}, m_videoPlatform = std::unique_ptr<VideoPlatform> = {get() = 0x55f87f19edd0}, m_captureModeModel = std::unique_ptr<CaptureModeModel> = {get() = 0x55f87f190f40}, m_recordingModeModel = std::unique_ptr<RecordingModeModel> = {get() = 0x55f87f190e50}, m_engine = std::unique_ptr<QQmlEngine> = {get() = 0x55f87ef33c10}, m_annotationSyncTimer = std::unique_ptr<QTimer> = {get() = 0x55f87f19f080}, m_delayAnimation = std::unique_ptr<QVariantAnimation> = {get() = 0x55f87f197f90}, m_eventLoopLocker = std::unique_ptr<QEventLoopLocker> = {get() = 0x0}, m_viewerWindow = std::unique_ptr<ViewerWindow> = {get() = 0x55f87f7b70b0}, m_captureWindows = std::vector of length -1, capacity 4 = {std::unique_ptr<CaptureWindow> = {get() = 0x55f87f106830}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f41e5d0}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f264d60}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f241ed0}, std::unique_ptr<CaptureWindow> = {get() = 0x21}, std::unique_ptr<CaptureWindow> = {get() = 0x1}, std::unique_ptr<CaptureWindow> = {get() = 0x4a1}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f243650}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x30}, std::unique_ptr<CaptureWindow> = {get() = 0x7f763adb2ac0 <QtPrivate::QSlotObject<void (PlasmaDesktopTheme::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*)>}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x60}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f264830}, std::unique_ptr<CaptureWindow> = {get() = 0x600000000}, std::unique_ptr<CaptureWindow> = {get() = 0x91}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f59a860}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x60}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f2648c0}, std::unique_ptr<CaptureWindow> = {get() = 0x700000000}, std::unique_ptr<CaptureWindow> = {get() = 0x80}, std::unique_ptr<CaptureWindow> = {get() = 0x2323ffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0x3ff0000000000000}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x3ff0000000000000}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x151}, std::unique_ptr<CaptureWindow> = {get() = 0x7f7684beace0 <main_arena+96>}, std::unique_ptr<CaptureWindow> = {get() = 0x3ff0000000000000}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x3ff0000000000000}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0xd1}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f265360}, std::unique_ptr<CaptureWindow> = {get() = 0x3ff0000000000000}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x3ff0000000000000}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x51}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f6351a0}, std::unique_ptr<CaptureWindow> = {get() = 0x73746e6ffffffff1}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f3fd2f0}, std::unique_ptr<CaptureWindow> = {get() = 0x20}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x221}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f264c28}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0xe00000000}, std::unique_ptr<CaptureWindow> = {get() = 0x2000000003}, std::unique_ptr<CaptureWindow> = {get() = 0x2c00000000}, std::unique_ptr<CaptureWindow> = {get() = 0x1}, std::unique_ptr<CaptureWindow> = {get() = 0x300000006}, std::unique_ptr<CaptureWindow> = {get() = 0x600000002}, std::unique_ptr<CaptureWindow> = {get() = 0x20000001f}, std::unique_ptr<CaptureWindow> = {get() = 0x2b0000002b}, std::unique_ptr<CaptureWindow> = {get() = 0x600404003}, std::unique_ptr<CaptureWindow> = {get() = 0x100000007}, std::unique_ptr<CaptureWindow> = {get() = 0x200000001}, std::unique_ptr<CaptureWindow> = {get() = 0x12ffffffff}, std::unique_ptr<CaptureWindow> = {get() = 0xc0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0xffffffff}, std::unique_ptr<CaptureWindow> = {get() = 0xc4}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x10ffffffff}, std::unique_ptr<CaptureWindow> = {get() = 0x73}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0xeffffffff}, std::unique_ptr<CaptureWindow> = {get() = 0x8e}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x74496b6369755151}, std::unique_ptr<CaptureWindow> = {get() = 0x69746c756d003633}, std::unique_ptr<CaptureWindow> = {get() = 0x706d6f6300646567}, std::unique_ptr<CaptureWindow> = {get() = 0x6d65720000646567}, std::unique_ptr<CaptureWindow> = {get() = 0x676e616843687464}, std::unique_ptr<CaptureWindow> = {get() = 0x746c756d00657465}, std::unique_ptr<CaptureWindow> = {get() = 0x57676e696e69616d}, std::unique_ptr<CaptureWindow> = {get() = 0x71}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87ed7e6b0}, std::unique_ptr<CaptureWindow> = {get() = 0x100000000}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f3e67c0}, std::unique_ptr<CaptureWindow> = {get() = 0x201}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f3ea210}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87d01c7a0 <QListData::shared_null>}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87ed71230}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87d01ccc0 <QArrayData::shared_null>}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87d01c7a0 <QListData::shared_null>}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87d01c7a0 <QListData::shared_null>}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87d01ccc0 <QArrayData::shared_null>}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x20}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f22da30}, std::unique_ptr<CaptureWindow> = {get() = 0xb1}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f570bc0}, std::unique_ptr<CaptureWindow> = {get() = 0x4}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f45ce10}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f566420}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x1000d0019}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87d01ccc0 <QArrayData::shared_null>}, std::unique_ptr<CaptureWindow> = {get() = 0x7f7634170e10}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x70}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f22e320}, std::unique_ptr<CaptureWindow> = {get() = 0x3d00000000}, std::unique_ptr<CaptureWindow> = {get() = 0x2e3830494262756c}, std::unique_ptr<CaptureWindow> = {get() = 0x20}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x301}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f247090}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f2651b0}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f2663f0}, std::unique_ptr<CaptureWindow> = {get() = 0x2323ffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0x7070ffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0x2323ffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0x3030ffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0x3030ffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0x9b9bffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0xdadaffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0xf6f6ffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0x2727ffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0xefefffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0xe3e3ffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0xd01bffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0xd93fffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0xd93fffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0xe94effff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0xf607ffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0xfb85ffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0xad4cffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0x3030ffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0x3030ffff00000001}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87efd6230}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f407d80}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f665d60}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f3abc30}, std::unique_ptr<CaptureWindow> = {get() = 0x60}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f265000}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87d01c7a0 <QListData::shared_null>}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87ed71230}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x21}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f557d40}, std::unique_ptr<CaptureWindow> = {get() = 0x30}, std::unique_ptr<CaptureWindow> = {get() = 0x40000}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f908180}, std::unique_ptr<CaptureWindow> = {get() = 0x91}, std::unique_ptr<CaptureWindow> = {get() = 0x55f87f3e44b0}, std::unique_ptr<CaptureWindow> = {get() = 0x0}, std::unique_ptr<CaptureWindow> = {get() = 0x60}...}, m_copyImageToClipboard = false, m_copyLocationToClipboard = false, m_saveToOutput = false, m_cliOptions = {_M_elems = {false <repeats 20 times>}}, m_editExistingUrl = {d = 0x0}, m_outputUrl = {d = 0x0}, m_lastGrabMode = Platform::PerScreenImageNative, m_lastIncludePointer = false, m_lastIncludeDecorations = false, m_videoMode = false, m_currentVideo = {d = 0x0}}
        dbusAdapter = 0x55f87f0e14a0
```





SOFTWARE/OS VERSIONS
Operating System: openSUSE Tumbleweed 20230507
KDE Plasma Version: 5.27.4
KDE Frameworks Version: 5.105.0
Qt Version: 5.15.9
Kernel Version: 6.3.1-1-default (64-bit)
Graphics Platform: Wayland
Graphics Processor: AMD Radeon RX 580 Series
Comment 1 Nate Graham 2023-05-18 15:45:30 UTC
Can reproduce 100% on Wayland. Haven't tried X11 due to multi-screen being mostly non-functional for me there because my screens need different scale factors t behave properly.
Comment 2 Nate Graham 2023-05-18 15:49:06 UTC
*** Bug 469311 has been marked as a duplicate of this bug. ***
Comment 3 Nate Graham 2023-05-19 19:43:39 UTC
*** Bug 470009 has been marked as a duplicate of this bug. ***
Comment 4 Nate Graham 2023-05-19 19:43:43 UTC
*** Bug 469952 has been marked as a duplicate of this bug. ***
Comment 5 Heath 2023-05-23 19:54:44 UTC
Created attachment 159211 [details]
New crash information added by DrKonqi

spectacle (23.04.1) using Qt 5.15.9

Spectacle crashes when I unplug my second screen

-- Backtrace (Reduced):
#6  0x00007f530fb420e7 in QGuiApplication::screenRemoved(QScreen*) () at /usr/lib/libQt5Gui.so.5
#7  0x00007f530fb6a994 in QScreen::~QScreen() () at /usr/lib/libQt5Gui.so.5
#8  0x00007f530fb289e7 in QWindowSystemInterface::handleScreenRemoved(QPlatformScreen*) () at /usr/lib/libQt5Gui.so.5
#9  0x00007f53117837be in QtWaylandClient::QWaylandDisplay::registry_global_remove(unsigned int) (this=0x55ece71e8080, id=58) at /usr/src/debug/qt5-wayland/qtwayland/src/client/qwaylanddisplay.cpp:571
#10 0x00007f5310d584f6 in ffi_call_unix64 () at ../src/x86/unix64.S:104
Comment 6 postix 2023-05-23 19:56:41 UTC
*** Bug 468694 has been marked as a duplicate of this bug. ***
Comment 7 postix 2023-05-25 12:53:53 UTC
Turns out this is not a specific Spectacle issue, Dolphin 23.04.1 just crashed for me with the same stacktrace under the same conditions:

```
Application: Dolphin (dolphin), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
[KCrash Handler]
#6  QWeakPointer<QObject>::internalData (this=0xb8cf253e26b7ff25) at ../../include/QtCore/../../src/corelib/tools/qsharedpointer_impl.h:696
#7  QPointer<QScreen>::data (this=0xb8cf253e26b7ff25) at ../../include/QtCore/../../src/corelib/kernel/qpointer.h:77
#8  QPointer<QScreen>::operator QScreen* (this=0xb8cf253e26b7ff25) at ../../include/QtCore/../../src/corelib/kernel/qpointer.h:83
#9  QPlatformScreen::screen (this=this@entry=0x562d512428d0) at kernel/qplatformscreen.cpp:154
#10 0x00007f4a5a927013 in QtWaylandClient::QWaylandWindow::handleScreensChanged (this=0x562d50dd92c0) at qwaylandwindow.cpp:1047
#11 0x00007f4a5cf25232 in QtPrivate::QSlotObjectBase::call (a=0x7ffe8c1efe30, r=0x562d50dd92c0, this=0x562d50d3e530) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#12 doActivate<false> (sender=0x562d5136b130, signal_index=3, argv=0x7ffe8c1efe30) at kernel/qobject.cpp:3923
#13 0x00007f4a59ca08d2 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#14 0x00007f4a59c9d24f in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:673
#15 0x00007f4a59c9fe96 in ffi_call (cif=cif@entry=0x7ffe8c1f0040, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7ffe8c1f0110) at ../src/x86/ffi64.c:710
#16 0x00007f4a5ae13a23 in wl_closure_invoke (closure=closure@entry=0x7f4a48003110, target=<optimized out>, target@entry=0x562d50be4df0, opcode=opcode@entry=0, data=<optimized out>, flags=1) at ../src/connection.c:1025
#17 0x00007f4a5ae14203 in dispatch_event (display=display@entry=0x562d5076b1a0, queue=0x562d5076b290) at ../src/wayland-client.c:1631
#18 0x00007f4a5ae14494 in dispatch_queue (queue=0x562d5076b290, display=0x562d5076b1a0) at ../src/wayland-client.c:1777
#19 wl_display_dispatch_queue_pending (display=0x562d5076b1a0, queue=0x562d5076b290) at ../src/wayland-client.c:2019
#20 0x00007f4a5a92178d in QtWaylandClient::QWaylandDisplay::blockingReadEvents (this=0x562d50766970) at qwaylanddisplay.cpp:444
#21 0x00007f4a5a9181d1 in QtWaylandClient::QWaylandShmBackingStore::resize (this=this@entry=0x562d50c6a450, size=...) at qwaylandshmbackingstore.cpp:295
#22 0x00007f4a5a9183cd in QtWaylandClient::QWaylandShmBackingStore::ensureSize (this=this@entry=0x562d50c6a450) at qwaylandshmbackingstore.cpp:212
#23 0x00007f4a5a9183f9 in QtWaylandClient::QWaylandShmBackingStore::beginPaint (this=this@entry=0x562d50c6a450, region=...) at qwaylandshmbackingstore.cpp:187
#24 0x00007f4a5d551ccf in QBackingStore::beginPaint (this=0x562d50be5a10, region=...) at painting/qbackingstore.cpp:138
#25 0x00007f4a5dbb635a in QWidgetRepaintManager::paintAndFlush (this=0x562d50a708d0) at kernel/qwidgetrepaintmanager.cpp:989
#26 0x00007f4a5dbe7406 in QWidget::event (this=0x562d5099de50, event=0x562d51254b50) at kernel/qwidget.cpp:8990
#27 0x00007f4a5e94f6a9 in KXmlGuiWindow::event (this=0x562d5099de50, ev=0x562d51254b50) at /usr/src/debug/kxmlgui-5.106.0/src/kxmlguiwindow.cpp:220
#28 0x00007f4a5dba51ae in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x562d5099de50, e=0x562d51254b50) at kernel/qapplication.cpp:3640
#29 0x00007f4a5ceec978 in QCoreApplication::notifyInternal2 (receiver=0x562d5099de50, event=0x562d51254b50) at kernel/qcoreapplication.cpp:1064
#30 0x00007f4a5ceeff71 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x562d5099de50, event_type=77, data=0x562d5073af50) at kernel/qcoreapplication.cpp:1821
#31 0x00007f4a5ded63f3 in QGraphicsViewPrivate::dispatchPendingUpdateRequests (this=<optimized out>) at ../../include/QtWidgets/5.15.9/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsview_p.h:191
#32 QGraphicsViewPrivate::dispatchPendingUpdateRequests (this=0x562d512137e0) at ../../include/QtWidgets/5.15.9/QtWidgets/private/../../../../../src/widgets/graphicsview/qgraphicsview_p.h:186
#33 QGraphicsScenePrivate::_q_processDirtyItems (this=0x562d50d3c0c0) at graphicsview/qgraphicsscene.cpp:516
#34 0x00007f4a5cf18c50 in QObject::event (this=0x562d50f27790, e=0x562d512e7200) at kernel/qobject.cpp:1347
#35 0x00007f4a5dba51ae in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x562d50f27790, e=0x562d512e7200) at kernel/qapplication.cpp:3640
#36 0x00007f4a5ceec978 in QCoreApplication::notifyInternal2 (receiver=0x562d50f27790, event=0x562d512e7200) at kernel/qcoreapplication.cpp:1064
#37 0x00007f4a5ceeff71 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x562d5073af50) at kernel/qcoreapplication.cpp:1821
#38 0x00007f4a5cf46713 in postEventSourceDispatch (s=0x562d507808d0) at kernel/qeventdispatcher_glib.cpp:277
#39 0x00007f4a5ab168d8 in g_main_dispatch (context=0x7f4a50000ee0) at ../glib/gmain.c:3460
#40 g_main_context_dispatch (context=context@entry=0x7f4a50000ee0) at ../glib/gmain.c:4200
#41 0x00007f4a5ab16ce8 in g_main_context_iterate (context=context@entry=0x7f4a50000ee0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4276
#42 0x00007f4a5ab16d7c in g_main_context_iteration (context=0x7f4a50000ee0, may_block=1) at ../glib/gmain.c:4343
#43 0x00007f4a5cf45f26 in QEventDispatcherGlib::processEvents (this=0x562d50784ef0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#44 0x00007f4a5ceeb40b in QEventLoop::exec (this=this@entry=0x7ffe8c1f0d20, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#45 0x00007f4a5cef38a0 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#46 0x00007f4a5d36fe3c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1870
#47 0x00007f4a5dba5125 in QApplication::exec () at kernel/qapplication.cpp:2832
#48 0x0000562d4feaf647 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/dolphin-23.04.1/src/main.cpp:232
[Inferior 1 (process 6929) detached]
```
Comment 8 Nate Graham 2023-08-07 21:33:25 UTC
*** Bug 473072 has been marked as a duplicate of this bug. ***
Comment 9 Nate Graham 2023-08-07 21:33:31 UTC
*** Bug 473114 has been marked as a duplicate of this bug. ***
Comment 10 Nate Graham 2023-08-07 21:34:20 UTC
I guess it's a Qt bug that someone will need to report, assuming it's not already fixed in Qt 6.
Comment 11 postix 2023-08-09 13:49:23 UTC
*** Bug 471346 has been marked as a duplicate of this bug. ***
Comment 12 postix 2023-08-09 13:49:58 UTC
*** Bug 472011 has been marked as a duplicate of this bug. ***
Comment 13 Danie 2023-08-10 18:25:06 UTC
I've had this for a few weeks, but it is compositor related, not Spectacle specific. Spectacle's rectangular area capture triggers it. I've also had it happen though when I:
1. Go into Manjaro Settings / Display and Monitor / and click on Compositor (tried the various options there but no fix).
2. Krunner (but Albert and ULauncher work fine)

All the above result in a 30 sec or so freeze before activating. If I disable Compositor, they all work instantly as expected.
Comment 14 Nate Graham 2023-08-11 17:04:02 UTC

*** This bug has been marked as a duplicate of bug 468694 ***