Bug 473931

Summary: Consistent Spectacle Crashes after disconnecting secondary monitor
Product: [Applications] Spectacle Reporter: Holden <holdenrf2021>
Component: GeneralAssignee: Noah Davis <noahadvs>
Status: RESOLVED DUPLICATE    
Severity: crash CC: kde, nate, vasco13almeida
Priority: NOR Keywords: drkonqi
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 Holden 2023-08-30 07:15:15 UTC
Application: spectacle (23.04.3)

Qt Version: 5.15.10
Frameworks Version: 5.109.0
Operating System: Linux 6.4.11-1-default x86_64
Windowing System: Wayland
Distribution: "openSUSE Tumbleweed"
DrKonqi: 5.27.7 [KCrashBackend]

-- Information about the crash:
Honestly happens pretty much every time I disconnect HDMI that I hardly notice it. Pretty graceful failure and just pops up in the taskbar and I usually ignore. Possibly related to some larger infrastructural Wayland/Pipewire issues I'm seeing that are causing massive heatups of my CPU cores, especially with things like X forwarding over ssh, remote connection software (mostly connectwise that I have to use for work until I integrate a better solution for our company), scaling certain apps, etc. Likely in large part due to the amount of weird configurations I have going on for work and general exploration. That one is really a pain in the ass and I basically have to dump all my screen connection software to keep my CPU cores from getting well above 80C and throwing the fans on warp speed 9. If contacted about this I'm glad to generate dumps for that, no real crashes so it hasn't popped up to prompt a bug report and I've been too busy to track it down and report manually.

The crash can be reproduced every time.

-- Backtrace:
Application: Spectacle (spectacle), signal: Segmentation fault

[KCrash Handler]
#4  0x00005570caad7a30 in ?? ()
#5  0x00007ff31c725812 in QtPrivate::QSlotObjectBase::call (a=0x7fffe84f7100, r=0x7fffe84f7b50, this=0x5570cab9ec20) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#6  doActivate<false> (sender=0x7fffe84f7af0, signal_index=10, argv=0x7fffe84f7100) at kernel/qobject.cpp:3925
#7  0x00007ff31c71e47f in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7ff31d1167c0, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x7fffe84f7100) at kernel/qobject.cpp:3985
#8  0x00007ff31cb6f012 in QGuiApplication::screenRemoved (this=<optimized out>, _t1=<optimized out>, _t1@entry=0x5570ca8cc4f0) at .moc/moc_qguiapplication.cpp:396
#9  0x00007ff31cba6e88 in QScreen::~QScreen (this=0x5570ca8cc4f0, __in_chrg=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:116
#10 0x00007ff31cba6ff9 in QScreen::~QScreen (this=0x5570ca8cc4f0, __in_chrg=<optimized out>) at kernel/qscreen.cpp:178
#11 0x00007ff31cb4f4b7 in QWindowSystemInterface::handleScreenRemoved (platformScreen=0x5570ca92a1d0) at kernel/qwindowsysteminterface.cpp:844
#12 0x00007ff31e7acc02 in QtWaylandClient::QWaylandDisplay::registry_global_remove (this=0x5570ca90f640, id=49) at qwaylanddisplay.cpp:571
#13 0x00007ff31d6a8962 in ffi_call_unix64 () at ../src/x86/unix64.S:104
#14 0x00007ff31d6a52df in ffi_call_int (cif=cif@entry=0x7fffe84f73e0, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=closure@entry=0x0) at ../src/x86/ffi64.c:673
#15 0x00007ff31d6a7f26 in ffi_call (cif=cif@entry=0x7fffe84f73e0, fn=<optimized out>, rvalue=rvalue@entry=0x0, avalue=avalue@entry=0x7fffe84f74b0) at ../src/x86/ffi64.c:710
#16 0x00007ff31ee35a23 in wl_closure_invoke (closure=closure@entry=0x7ff308005770, target=<optimized out>, target@entry=0x5570ca913940, opcode=opcode@entry=1, data=<optimized out>, flags=1) at ../src/connection.c:1025
#17 0x00007ff31ee36203 in dispatch_event (display=0x5570ca9137c0, queue=<optimized out>) at ../src/wayland-client.c:1631
#18 0x00007ff31ee36494 in dispatch_queue (queue=0x5570ca9138b0, display=0x5570ca9137c0) at ../src/wayland-client.c:1777
#19 wl_display_dispatch_queue_pending (display=0x5570ca9137c0, queue=0x5570ca9138b0) at ../src/wayland-client.c:2019
#20 0x00007ff31e7a9a12 in QtWaylandClient::QWaylandDisplay::flushRequests (this=<optimized out>) at qwaylanddisplay.cpp:255
#21 0x00007ff31c719320 in QObject::event (this=0x5570ca90f640, e=0x7ff3040027b0) at kernel/qobject.cpp:1347
#22 0x00007ff31dfa519e in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5570ca90f640, e=0x7ff3040027b0) at kernel/qapplication.cpp:3640
#23 0x00007ff31c6ed568 in QCoreApplication::notifyInternal2 (receiver=0x5570ca90f640, event=0x7ff3040027b0) at kernel/qcoreapplication.cpp:1064
#24 0x00007ff31c6ed72e in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1462
#25 0x00007ff31c6f0b61 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5570ca8de8e0) at kernel/qcoreapplication.cpp:1821
#26 0x00007ff31c6f10a8 in QCoreApplication::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>) at kernel/qcoreapplication.cpp:1680
#27 0x00007ff31c746c93 in postEventSourceDispatch (s=0x5570ca9277f0) at kernel/qeventdispatcher_glib.cpp:277
#28 0x00007ff31a20a9b8 in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#29 0x00007ff31a20adc8 in ?? () from /lib64/libglib-2.0.so.0
#30 0x00007ff31a20ae5c in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#31 0x00007ff31c7464a6 in QEventDispatcherGlib::processEvents (this=0x5570ca8cb130, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#32 0x00007ff31c6ebffb in QEventLoop::exec (this=this@entry=0x7fffe84f7a00, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#33 0x00007ff31c6f4490 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#34 0x00007ff31cb7055c in QGuiApplication::exec () at kernel/qguiapplication.cpp:1870
#35 0x00007ff31dfa5115 in QApplication::exec () at kernel/qapplication.cpp:2832
#36 0x00005570c95f49e6 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/spectacle-23.04.3/src/Main.cpp:127
[Inferior 1 (process 9329) detached]

The reporter indicates this bug may be a duplicate of or related to bug 470009, bug 469952, bug 471346.

Reported using DrKonqi
Comment 1 Nate Graham 2023-08-30 19:58:06 UTC

*** This bug has been marked as a duplicate of bug 468694 ***
Comment 2 Vasco 2023-09-21 13:01:43 UTC
Created attachment 161778 [details]
New crash information added by DrKonqi

spectacle (23.04.3) using Qt 5.15.9

When I disconnect second monitor, spectable will crash.

-- Backtrace (Reduced):
#5  0x00007fdaca4d0fc6 in void doActivate<false>(QObject*, int, void**) () from /lib64/libQt5Core.so.5
#6  0x00007fdaca95de36 in QGuiApplication::screenRemoved(QScreen*) () from /lib64/libQt5Gui.so.5
#7  0x00007fdaca991b58 in QScreen::~QScreen() () from /lib64/libQt5Gui.so.5
#8  0x00007fdaca991cdd in QScreen::~QScreen() () from /lib64/libQt5Gui.so.5
#9  0x00007fdaca94965b in QWindowSystemInterface::handleScreenRemoved(QPlatformScreen*) () from /lib64/libQt5Gui.so.5