Bug 471346

Summary: Crashes when secondary monitor powered off
Product: [Applications] Spectacle Reporter: oper.kh
Component: GeneralAssignee: Noah Davis <noahadvs>
Status: RESOLVED DUPLICATE    
Severity: crash CC: geoff, kde, loren, nate, postix
Priority: NOR Keywords: drkonqi
Version: 23.04.2   
Target Milestone: ---   
Platform: Fedora RPMs   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: New crash information added by DrKonqi
New crash information added by DrKonqi

Description oper.kh 2023-06-22 15:40:25 UTC
Application: spectacle (23.04.2)

Qt Version: 5.15.9
Frameworks Version: 5.107.0
Operating System: Linux 6.3.8-200.fc38.x86_64 x86_64
Windowing System: Wayland
Distribution: Fedora Linux 38 (KDE Plasma)
DrKonqi: 5.27.5 [KCrashBackend]

-- Information about the crash:
I do nothing. Don't touch mouse or keyboard. But if secondary monitor powered off - spectacle crashed even it on primary monitor.

The crash can be reproduced every time.

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

[KCrash Handler]
#4  0x0000000000000030 in  ()
#5  0x00007f50b40e8651 in void doActivate<false>(QObject*, int, void**) () at /lib64/libQt5Core.so.5
#6  0x00007f50b455f074 in QGuiApplication::screenRemoved(QScreen*) () at /lib64/libQt5Gui.so.5
#7  0x00007f50b4593dc0 in QScreen::~QScreen() () at /lib64/libQt5Gui.so.5
#8  0x00007f50b4593f35 in QScreen::~QScreen() () at /lib64/libQt5Gui.so.5
#9  0x00007f50b454a0c3 in QWindowSystemInterface::handleScreenRemoved(QPlatformScreen*) () at /lib64/libQt5Gui.so.5
#10 0x00007f50b604c854 in QtWaylandClient::QWaylandDisplay::registry_global_remove(unsigned int) () at /lib64/libQt5WaylandClient.so.5
#11 0x00007f50b2182be6 in ffi_call_unix64 () at /lib64/libffi.so.8
#12 0x00007f50b217f4bf in ffi_call_int.lto_priv () at /lib64/libffi.so.8
#13 0x00007f50b218218e in ffi_call () at /lib64/libffi.so.8
#14 0x00007f50b66d3f0e in wl_closure_invoke.constprop () at /lib64/libwayland-client.so.0
#15 0x00007f50b66d4793 in dispatch_event.isra () at /lib64/libwayland-client.so.0
#16 0x00007f50b66d4a3c in wl_display_dispatch_queue_pending () at /lib64/libwayland-client.so.0
#17 0x00007f50b6047b4d in QtWaylandClient::QWaylandDisplay::flushRequests() () at /lib64/libQt5WaylandClient.so.5
#18 0x00007f50b40df73b in QObject::event(QEvent*) () at /lib64/libQt5Core.so.5
#19 0x00007f50b59aeb75 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt5Widgets.so.5
#20 0x00007f50b40b3d48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib64/libQt5Core.so.5
#21 0x00007f50b40b71f5 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /lib64/libQt5Core.so.5
#22 0x00007f50b4106e2f in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQt5Core.so.5
#23 0x00007f50b1bf439c in g_main_context_dispatch () at /lib64/libglib-2.0.so.0
#24 0x00007f50b1c52438 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0
#25 0x00007f50b1bf1a23 in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#26 0x00007f50b4106919 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#27 0x00007f50b40b270b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQt5Core.so.5
#28 0x00007f50b40ba99b in QCoreApplication::exec() () at /lib64/libQt5Core.so.5
#29 0x0000555ebc5e6952 in main ()
[Inferior 1 (process 313894) detached]

The reporter indicates this bug may be a duplicate of or related to bug 404323, bug 413057, bug 421299, bug 426320, bug 428636, bug 430007, bug 439450, bug 439525, bug 462645, bug 464465, bug 465049, bug 465370, bug 467595, bug 467966, bug 468989, bug 469336, bug 469897, bug 469919, bug 470027, bug 470217, bug 471129.

Reported using DrKonqi
Comment 1 Geoff Kalyniuk 2023-07-04 02:54:06 UTC
Created attachment 160070 [details]
New crash information added by DrKonqi

spectacle (23.04.2) using Qt 5.15.10

Unplugged laptop from secondary monitor and Spectacle crashed.

-- Backtrace (Reduced):
#5  0x00007f2e8a7257a2 in QtPrivate::QSlotObjectBase::call (a=0x7ffd14aaca00, r=0x7ffd14aad450, this=0x55f1076133e0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#6  doActivate<false> (sender=0x7ffd14aad3f0, signal_index=10, argv=0x7ffd14aaca00) at kernel/qobject.cpp:3925
[...]
#8  0x00007f2e8ab6f052 in QGuiApplication::screenRemoved (this=<optimized out>, _t1=<optimized out>, _t1@entry=0x55f1074c45d0) at .moc/moc_qguiapplication.cpp:396
#9  0x00007f2e8aba6ec8 in QScreen::~QScreen (this=0x55f1074c45d0, __in_chrg=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:116
#10 0x00007f2e8aba7039 in QScreen::~QScreen (this=0x55f1074c45d0, __in_chrg=<optimized out>) at kernel/qscreen.cpp:178
Comment 2 Loren Burkholder 2023-07-21 16:21:30 UTC
Created attachment 160427 [details]
New crash information added by DrKonqi

spectacle (23.04.3) using Qt 5.15.10

Spectacle crashed after a monitor powercycle. I didn't try to replicate the crash, but I do seem to recall that happening to me before.

-- Backtrace (Reduced):
#4  0x0000555ed28d3be5 in std::unique_ptr<CaptureWindow, void (*)(CaptureWindow*)>::~unique_ptr (this=<optimized out>, this=<optimized out>) at /usr/include/c++/13/bits/unique_ptr.h:403
#5  std::__new_allocator<std::unique_ptr<CaptureWindow, void (*)(CaptureWindow*)> >::destroy<std::unique_ptr<CaptureWindow, void (*)(CaptureWindow*)> > (__p=<optimized out>, this=<optimized out>) at /usr/include/c++/13/bits/new_allocator.h:194
#6  std::allocator_traits<std::allocator<std::unique_ptr<CaptureWindow, void (*)(CaptureWindow*)> > >::destroy<std::unique_ptr<CaptureWindow, void (*)(CaptureWindow*)> > (__p=<optimized out>, __a=...) at /usr/include/c++/13/bits/alloc_traits.h:557
#7  std::vector<std::unique_ptr<CaptureWindow, void (*)(CaptureWindow*)>, std::allocator<std::unique_ptr<CaptureWindow, void (*)(CaptureWindow*)> > >::_M_erase (__position=non-dereferenceable iterator for std::vector, this=0x7fff3ebd8f28) at /usr/include/c++/13/bits/vector.tcc:187
#8  std::vector<std::unique_ptr<CaptureWindow, void (*)(CaptureWindow*)>, std::allocator<std::unique_ptr<CaptureWindow, void (*)(CaptureWindow*)> > >::erase (__position=..., this=0x7fff3ebd8f28) at /usr/include/c++/13/bits/stl_vector.h:1532
Comment 3 postix 2023-08-09 13:49:23 UTC

*** This bug has been marked as a duplicate of bug 469527 ***
Comment 4 Nate Graham 2023-08-11 17:02:48 UTC

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