Bug 468890 - Spectacle consistently crashes in ViewerWindow::~ViewerWindow() when trying to take a screenshot from the main window
Summary: Spectacle consistently crashes in ViewerWindow::~ViewerWindow() when trying t...
Status: RESOLVED WORKSFORME
Alias: None
Product: Spectacle
Classification: Applications
Component: General (other bugs)
Version First Reported In: 23.04.0
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Noah Davis
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2023-04-24 01:06 UTC by DemonicSavage
Modified: 2024-05-18 03:45 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In:
Sentry Crash Report:


Attachments
Stack trace with debug symbols (5.34 KB, text/vnd.kde.kcrash-report)
2023-04-24 20:59 UTC, DemonicSavage
Details

Note You need to log in before you can comment on or make changes to this bug.
Description DemonicSavage 2023-04-24 01:06:04 UTC
Application: spectacle (23.04.0)

Qt Version: 5.15.9
Frameworks Version: 5.105.0
Operating System: Linux 6.2.12-zen1-1-zen x86_64
Windowing System: X11
Distribution: "Arch Linux"
DrKonqi: 5.27.4 [KCrashBackend]

-- Information about the crash:
Whenever I try to take a screenshot, Spectacle crashes. When opting to "select a rectangular region", it crashes before me being able to select anything.

The crash can be reproduced every time.

-- Backtrace:
Application: Spectacle (spectacle), signal: Bus error

[KCrash Handler]
#4  0x00007fd7abc283dc in QQuickTransform::~QQuickTransform() () at /usr/lib/libQt5Quick.so.5
#5  0x00007fd7abdb1b93 in  () at /usr/lib/libQt5Quick.so.5
#6  0x00007fd7abd94d82 in QAccessibleQuickItem::role() const () at /usr/lib/libQt5Quick.so.5
#7  0x00007fd796b90929 in  () at /usr/lib/libQt5XcbQpa.so.5
#8  0x00007fd796b7cd8e in  () at /usr/lib/libQt5XcbQpa.so.5
#9  0x00007fd796b7da46 in  () at /usr/lib/libQt5XcbQpa.so.5
#10 0x00007fd7abc324bc in QQuickItemPrivate::setEffectiveVisibleRecur(bool) () at /usr/lib/libQt5Quick.so.5
#11 0x00007fd7abc29ba3 in QQuickItem::setParentItem(QQuickItem*) () at /usr/lib/libQt5Quick.so.5
#12 0x00007fd7abc2a162 in QQuickItem::~QQuickItem() () at /usr/lib/libQt5Quick.so.5
#13 0x00007fd74e5d332b in  () at /usr/lib/qt/qml/QtQuick/Templates.2/libqtquicktemplates2plugin.so
#14 0x00007fd7abcba459 in QQuickView::~QQuickView() () at /usr/lib/libQt5Quick.so.5
#15 0x000055ca2decbd6c in  ()
#16 0x00007fd7aa8b1aaa in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#17 0x00007fd7ac178b5c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#18 0x00007fd7aa88e028 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#19 0x00007fd7aa88eb33 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#20 0x00007fd7aa8d4f58 in  () at /usr/lib/libQt5Core.so.5
#21 0x00007fd7a850f53b in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#22 0x00007fd7a856c219 in  () at /usr/lib/libglib-2.0.so.0
#23 0x00007fd7a850e1a2 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#24 0x00007fd7aa8d8d3c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#25 0x00007fd7aa88668c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#26 0x00007fd7aa8912f9 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#27 0x000055ca2de9bb17 in  ()
#28 0x00007fd7aa03c790 in  () at /usr/lib/libc.so.6
#29 0x00007fd7aa03c84a in __libc_start_main () at /usr/lib/libc.so.6
#30 0x000055ca2de9c645 in  ()
[Inferior 1 (process 6606) detached]

Reported using DrKonqi
Comment 1 Nate Graham 2023-04-24 19:12:59 UTC
No spectacle code is implicated in the backtrace, unless it's in here:
> #15 0x000055ca2decbd6c in  ()
So far I suspect a graphics driver bug.

What kind of GPU are you using, and with which drivers?

Can you get a new backtrace with debug symbols for Spectacle and Qt? See https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports#Arch_Linux
Comment 2 DemonicSavage 2023-04-24 20:38:59 UTC
I must amend the original bug report to say that it is only by using the graphical interface that this happens.

If I set my keyboard shortcut to "select a rectangle" directly, everything works fine. The problem happens when I click on the actual GUI buttons.

I am using a RX 6600 XT. Latest Mesa.

I will come back shortly with a new backtrace.
Comment 3 DemonicSavage 2023-04-24 20:59:14 UTC
Created attachment 158398 [details]
Stack trace with debug symbols

I attached the stack trace with debug symbols.
Comment 4 Nate Graham 2023-04-25 15:36:56 UTC
Pasting inline for searchability:


Application: Spectacle (spectacle), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = <optimized out>}
[KCrash Handler]
#6  QObjectPrivate::Sender::receiverDeleted() (this=<optimized out>) at kernel/qobject_p.h:219
#7  QObject::~QObject() (this=0x55fe2115bf88, this=<optimized out>) at kernel/qobject.cpp:1026
#8  0x00007f2a509b1b93 in QQuickMatrix4x4::~QQuickMatrix4x4() (this=<optimized out>, this=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquicktranslate.cpp:512
#9  QQuickPinchHandler::~QQuickPinchHandler() (this=0x55fe2115be80, this=<optimized out>) at ../../include/QtQuick/5.15.9/QtQuick/private/../../../../../../qtdeclarative/src/quick/handlers/qquickpinchhandler_p.h:62
#10 QQuickPinchHandler::~QQuickPinchHandler() (this=0x55fe2115be80, this=<optimized out>) at ../../include/QtQuick/5.15.9/QtQuick/private/../../../../../../qtdeclarative/src/quick/handlers/qquickpinchhandler_p.h:62
#11 0x00007f2a50994d82 in QAccessibleQuickItem::role() const (this=0x55fe204f68f0) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/accessible/qaccessiblequickitem.cpp:233
#12 0x00007f2a3b74e929 in AtSpiAdaptor::pathForInterface(QAccessibleInterface*) const [clone .constprop.0] (interface=0x55fe204f68f0, this=<optimized out>) at ../../../platformsupport/linuxaccessibility/atspiadaptor.cpp:1586
#13 0x00007f2a3b73ad8e in AtSpiAdaptor::notifyStateChange(QAccessibleInterface*, QString const&, int) (this=this@entry=0x55fe20001290, interface=<optimized out>, state=..., value=0) at ../../../platformsupport/linuxaccessibility/atspiadaptor.cpp:878
#14 0x00007f2a3b73ba46 in AtSpiAdaptor::notify(QAccessibleEvent*) (this=0x55fe20001290, event=<optimized out>) at ../../../platformsupport/linuxaccessibility/atspiadaptor.cpp:903
#15 0x00007f2a508324bc in QQuickItemPrivate::setEffectiveVisibleRecur(bool) (this=0x55fe211b0140, newEffectiveVisible=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickitem.cpp:6119
#16 0x00007f2a50829ba3 in QQuickItem::setParentItem(QQuickItem*) (this=0x55fe2115be80, parentItem=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickitem.cpp:2737
#17 0x00007f2a5082a162 in QQuickItem::~QQuickItem() (this=0x55fe2115be80, this=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickitem.cpp:2335
#18 0x00007f2a0018632b in QQmlPrivate::QQmlElement<QQuickPage>::~QQmlElement() (this=0x55fe2115be80, this=<optimized out>) at /usr/include/qt/QtQml/qqmlprivate.h:144
#19 QQmlPrivate::QQmlElement<QQuickPage>::~QQmlElement() (this=0x55fe2115be80, this=<optimized out>) at /usr/include/qt/QtQml/qqmlprivate.h:144
#20 0x00007f2a508ba459 in QQuickView::~QQuickView() (this=0x55fe2014fda0, this=<optimized out>) at /usr/src/debug/qt5-declarative/qtdeclarative/src/quick/items/qquickview.cpp:209
#21 0x000055fe1e3efca7 in SpectacleWindow::~SpectacleWindow() (this=<optimized out>, this=<optimized out>) at /usr/src/debug/spectacle/spectacle-23.04.0/src/Gui/SpectacleWindow.cpp:105
#22 0x000055fe1e3efd6c in ViewerWindow::~ViewerWindow() (this=0x55fe2014fda0, this=<optimized out>) at /usr/src/debug/spectacle/spectacle-23.04.0/src/Gui/ViewerWindow.cpp:43
#23 ViewerWindow::~ViewerWindow() (this=0x55fe2014fda0, this=<optimized out>) at /usr/src/debug/spectacle/spectacle-23.04.0/src/Gui/ViewerWindow.cpp:43
#24 0x00007f2a4f4b1aaa in QObject::event(QEvent*) (this=0x55fe2014fda0, e=0x55fe20a2dcd0) at kernel/qobject.cpp:1334
#25 0x00007f2a50d78b5c in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x55fe2014fda0, e=0x55fe20a2dcd0) at kernel/qapplication.cpp:3640
#26 0x00007f2a4f48e028 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x55fe2014fda0, event=0x55fe20a2dcd0) at kernel/qcoreapplication.cpp:1064
#27 0x00007f2a4f48e093 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1462
#28 0x00007f2a4f48eb33 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x55fe1fc036a0) at kernel/qcoreapplication.cpp:1821
#29 0x00007f2a4f4d4f58 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x55fe1fd39080) at kernel/qeventdispatcher_glib.cpp:277
#30 0x00007f2a4d10f53b in g_main_dispatch (context=0x7f2a34000ee0) at ../glib/glib/gmain.c:3460
#31 g_main_context_dispatch (context=0x7f2a34000ee0) at ../glib/glib/gmain.c:4200
#32 0x00007f2a4d16c219 in g_main_context_iterate.constprop.0 (context=0x7f2a34000ee0, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4276
#33 0x00007f2a4d10e1a2 in g_main_context_iteration (context=0x7f2a34000ee0, may_block=1) at ../glib/glib/gmain.c:4343
#34 0x00007f2a4f4d8d3c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x55fe1fd3d840, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#35 0x00007f2a4f48668c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ffe4350c380, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#36 0x00007f2a4f4912f9 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#37 0x000055fe1e3bfb17 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/spectacle/spectacle-23.04.0/src/Main.cpp:109
[Inferior 1 (process 78823) detached]
Comment 5 Noah Davis 2024-04-18 00:56:46 UTC
Is this still a problem with version 24.02? This might have been fixed, but I'm not sure when.
Comment 6 Bug Janitor Service 2024-05-03 03:45:56 UTC
Dear Bug Submitter,

This bug has been in NEEDSINFO status with no change for at least
15 days. Please provide the requested information as soon as
possible and set the bug status as REPORTED. Due to regular bug
tracker maintenance, if the bug is still in NEEDSINFO status with
no change in 30 days the bug will be closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

If you have already provided the requested information, please
mark the bug as REPORTED so that the KDE team knows that the bug is
ready to be confirmed.

Thank you for helping us make KDE software even better for everyone!
Comment 7 Bug Janitor Service 2024-05-18 03:45:30 UTC
This bug has been in NEEDSINFO status with no change for at least
30 days. The bug is now closed as RESOLVED > WORKSFORME
due to lack of needed information.

For more information about our bug triaging procedures please read the
wiki located here:
https://community.kde.org/Guidelines_and_HOWTOs/Bug_triaging

Thank you for helping us make KDE software even better for everyone!