Bug 470598 - System Settings crashes in FocusHackWidget::~FocusHackWidget when quitting
Summary: System Settings crashes in FocusHackWidget::~FocusHackWidget when quitting
Status: RESOLVED UPSTREAM
Alias: None
Product: systemsettings
Classification: Applications
Component: generic-crash (show other bugs)
Version: master
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi, qt6
Depends on:
Blocks:
 
Reported: 2023-06-03 19:29 UTC by Nate Graham
Modified: 2023-08-04 15:30 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nate Graham 2023-06-03 19:29:22 UTC
Application: systemsettings (5.27.80)
 (Compiled from sources)
Qt Version: 6.5.1
Frameworks Version: 5.240.0
Operating System: Linux 6.2.15-300.fc38.x86_64 x86_64
Windowing System: X11
Distribution: Fedora Linux 38 (KDE Plasma)
DrKonqi: 5.27.80 [KCrashBackend]

-- Information about the crash:
100% reproducible for me on Plasma 6. Does not seem to be the same as the crash when switching pages, which is caused by https://bugreports.qt.io/browse/QTBUG-112306.

The crash can be reproduced every time.

-- Backtrace:
Application: System Settings (systemsettings), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[KCrash Handler]
#5  0x00007f9df9b62d24 in QSGDefaultRenderContext::deferredReleaseGlyphCacheTexture(QRhiTexture*) () from /lib64/libQt6Quick.so.6
#6  0x00007f9df9b95431 in QSGRhiTextureGlyphCache::~QSGRhiTextureGlyphCache() () from /lib64/libQt6Quick.so.6
#7  0x00007f9df9b5cef1 in QSGTextMaskMaterial::~QSGTextMaskMaterial() () from /lib64/libQt6Quick.so.6
#8  0x00007f9df9b5cf15 in QSGTextMaskMaterial::~QSGTextMaskMaterial() () from /lib64/libQt6Quick.so.6
#9  0x00007f9df9b4c220 in QSGBasicGlyphNode::~QSGBasicGlyphNode() () from /lib64/libQt6Quick.so.6
#10 0x00007f9df9b5b6d5 in QSGDefaultGlyphNode::~QSGDefaultGlyphNode() () from /lib64/libQt6Quick.so.6
#11 0x00007f9df9b38949 in QSGNode::destroy() () from /lib64/libQt6Quick.so.6
#12 0x00007f9df9b38973 in QSGNode::~QSGNode() () from /lib64/libQt6Quick.so.6
#13 0x00007f9df9ac8ad5 in QQuickTextNode::~QQuickTextNode() () from /lib64/libQt6Quick.so.6
#14 0x00007f9df9b38949 in QSGNode::destroy() () from /lib64/libQt6Quick.so.6
#15 0x00007f9df9b38973 in QSGNode::~QSGNode() () from /lib64/libQt6Quick.so.6
#16 0x00007f9df9b38b55 in QSGTransformNode::~QSGTransformNode() () from /lib64/libQt6Quick.so.6
#17 0x00007f9df9adfcd7 in QQuickWindowPrivate::cleanupNodes() () from /lib64/libQt6Quick.so.6
#18 0x00007f9df9ae5fd1 in QQuickWindowPrivate::cleanupNodesOnShutdown() () from /lib64/libQt6Quick.so.6
#19 0x00007f9df9a77631 in QQuickRenderControl::invalidate() () from /lib64/libQt6Quick.so.6
#20 0x00007f9df8d5f148 in QQuickWidgetPrivate::destroy() () from /lib64/libQt6QuickWidgets.so.6
#21 0x00007f9df8d5f20e in QQuickWidget::~QQuickWidget() () from /lib64/libQt6QuickWidgets.so.6
#22 0x00007f9df8d5f255 in QQuickWidget::~QQuickWidget() () from /lib64/libQt6QuickWidgets.so.6
#23 0x00007f9df7bd706d in QObjectPrivate::deleteChildren() () from /lib64/libQt6Core.so.6
#24 0x00007f9dfa218f58 in QWidget::~QWidget() () from /lib64/libQt6Widgets.so.6
#25 0x00007f9de406c93d in FocusHackWidget::~FocusHackWidget (this=0x14c8580, __in_chrg=<optimized out>) at /home/nate/kde/build6/systemsettings/sidebar/systemsettings_sidebar_mode_autogen/EWIEGA46WW/../../../../../src/systemsettings/sidebar/SidebarMode.h:24
#26 FocusHackWidget::~FocusHackWidget (this=0x14c8580, __in_chrg=<optimized out>) at /home/nate/kde/build6/systemsettings/sidebar/systemsettings_sidebar_mode_autogen/EWIEGA46WW/../../../../../src/systemsettings/sidebar/SidebarMode.h:24
#27 0x00007f9df7bd706d in QObjectPrivate::deleteChildren() () from /lib64/libQt6Core.so.6
#28 0x00007f9dfa218f58 in QWidget::~QWidget() () from /lib64/libQt6Widgets.so.6
#29 0x00007f9dfa3dc795 in QStackedWidget::~QStackedWidget() () from /lib64/libQt6Widgets.so.6
#30 0x00007f9df7bd706d in QObjectPrivate::deleteChildren() () from /lib64/libQt6Core.so.6
#31 0x00007f9dfa218f58 in QWidget::~QWidget() () from /lib64/libQt6Widgets.so.6
#32 0x0000000000415a21 in SettingsBase::~SettingsBase (this=0x1486360, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/nate/kde/src/systemsettings/app/SettingsBase.cpp:83
#33 0x0000000000415b29 in SettingsBase::~SettingsBase (this=0x1486360, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/nate/kde/src/systemsettings/app/SettingsBase.cpp:83
#34 0x00007f9df7bcf599 in QObject::event(QEvent*) () from /lib64/libQt6Core.so.6
#35 0x00007f9dfb1eafc7 in KXmlGuiWindow::event (this=0x1486360, ev=0x3204550) at /home/nate/kde/src/kxmlgui/src/kxmlguiwindow.cpp:220
#36 0x00007f9dfa1c0b08 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib64/libQt6Widgets.so.6
#37 0x00007f9df7b7c308 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib64/libQt6Core.so.6
#38 0x00007f9df7b7fd75 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib64/libQt6Core.so.6
#39 0x00007f9df7e206df in postEventSourceDispatch(_GSource*, int (*)(void*), void*) () from /lib64/libQt6Core.so.6
#40 0x00007f9df6fe439c in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#41 0x00007f9df7042438 in g_main_context_iterate.isra () from /lib64/libglib-2.0.so.0
#42 0x00007f9df6fe1a23 in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#43 0x00007f9df7e1ff7f in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6
#44 0x00007f9df7b88e93 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib64/libQt6Core.so.6
#45 0x00007f9df7b84b3d in QCoreApplication::exec() () from /lib64/libQt6Core.so.6
#46 0x000000000040e93f in main (argc=<optimized out>, argv=<optimized out>) at /home/nate/kde/src/systemsettings/app/main.cpp:185
[Inferior 1 (process 850421) detached]

Reported using DrKonqi
Comment 1 David Edmundson 2023-06-07 22:23:04 UTC
See http://bugreports.qt.io/browse/QTBUG-113426
Comment 2 Nicolas Fella 2023-08-04 15:26:30 UTC
Still happening with Qt 6.5.2

Application: System Settings (systemsettings), signal: Segmentation fault
Content of s_kcrashErrorMessage: std::unique_ptr<char []> = {get() = 0x0}
[KCrash Handler]
#5  0x00007f1a7130caef in std::__atomic_base<int>::load(std::memory_order) const (__m=std::memory_order_relaxed, this=0xc0) at /usr/include/c++/13/bits/atomic_base.h:505
#6  QAtomicOps<int>::loadRelaxed<int>(std::atomic<int> const&) (_q_value=<error reading variable: Cannot access memory at address 0xc0>, _q_value=<optimized out>) at /usr/include/qt6/QtCore/qatomic_cxx11.h:201
#7  QBasicAtomicInteger<int>::loadRelaxed() const (this=0xc0, this=<optimized out>) at /usr/include/qt6/QtCore/qbasicatomic.h:40
#8  QtPrivate::RefCount::isShared() const (this=0xc0, this=<optimized out>) at /usr/include/qt6/QtCore/qrefcount.h:40
#9  QHash<QRhiTexture*, QHashDummyValue>::isDetached() const (this=0x2b14ed0) at /usr/include/qt6/QtCore/qhash.h:958
#10 QHash<QRhiTexture*, QHashDummyValue>::emplace<QHashDummyValue const&>(QRhiTexture*&&, QHashDummyValue const&) (key=@0x7ffc45e8dba0: 0x8dacb70, this=0x2b14ed0) at /usr/include/qt6/QtCore/qhash.h:1325
#11 QHash<QRhiTexture*, QHashDummyValue>::emplace<QHashDummyValue const&>(QRhiTexture* const&, QHashDummyValue const&) (key=<optimized out>, this=0x2b14ed0) at /usr/include/qt6/QtCore/qhash.h:1319
#12 QHash<QRhiTexture*, QHashDummyValue>::insert(QRhiTexture* const&, QHashDummyValue const&) (key=<optimized out>, value=<optimized out>, this=0x2b14ed0) at /usr/include/qt6/QtCore/qhash.h:1297
#13 QSet<QRhiTexture*>::insert(QRhiTexture* const&) (value=<synthetic pointer>: <optimized out>, this=0x2b14ed0) at /usr/include/qt6/QtCore/qset.h:156
#14 QSGDefaultRenderContext::deferredReleaseGlyphCacheTexture(QRhiTexture*) (this=0x2b14e20, texture=0x8dacb70) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quick/scenegraph/qsgdefaultrendercontext.cpp:270
#15 0x00007f1a7130d2d6 in QSGRhiTextureGlyphCache::~QSGRhiTextureGlyphCache() (this=0x3db0000, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quick/scenegraph/qsgrhitextureglyphcache.cpp:26
#16 QSGRhiTextureGlyphCache::~QSGRhiTextureGlyphCache() (this=0x3db0000, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quick/scenegraph/qsgrhitextureglyphcache.cpp:27
#17 QExplicitlySharedDataPointer<QFontEngineGlyphCache>::~QExplicitlySharedDataPointer() (this=0x39ea588, this=<optimized out>) at /usr/include/qt6/QtCore/qshareddata.h:143
#18 QExplicitlySharedDataPointer<QFontEngineGlyphCache>::~QExplicitlySharedDataPointer() (this=0x39ea588, this=<optimized out>) at /usr/include/qt6/QtCore/qshareddata.h:143
#19 QSGTextMaskMaterial::~QSGTextMaskMaterial() (this=0x39ea560, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp:365
#20 0x00007f1a7130d389 in QSGTextMaskMaterial::~QSGTextMaskMaterial() (this=0x39ea560, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quick/scenegraph/qsgdefaultglyphnode_p.cpp:365
#21 0x00007f1a71303f14 in QSGBasicGlyphNode::~QSGBasicGlyphNode() (this=0x7277c30, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quick/scenegraph/qsgbasicglyphnode.cpp:20
#22 0x00007f1a7130dee9 in QSGDefaultGlyphNode::~QSGDefaultGlyphNode() (this=0x7277c30, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quick/scenegraph/qsgdefaultglyphnode.cpp:27
#23 0x00007f1a712f0b11 in QSGNode::destroy() (this=this@entry=0x27a39e0) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quick/scenegraph/coreapi/qsgnode.cpp:351
#24 0x00007f1a712f0b37 in QSGNode::~QSGNode() (this=0x27a39e0, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quick/scenegraph/coreapi/qsgnode.cpp:289
#25 0x00007f1a712928d9 in QQuickTextNode::~QQuickTextNode() (this=0x27a39e0, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quick/items/qquicktextnode.cpp:46
#26 0x00007f1a712f0b11 in QSGNode::destroy() (this=this@entry=0x2c193f0) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quick/scenegraph/coreapi/qsgnode.cpp:351
#27 0x00007f1a712f0b37 in QSGNode::~QSGNode() (this=0x2c193f0, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quick/scenegraph/coreapi/qsgnode.cpp:289
#28 0x00007f1a712f0ce9 in QSGTransformNode::~QSGTransformNode() (this=0x2c193f0, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quick/scenegraph/coreapi/qsgnode.cpp:1144
#29 0x00007f1a712ae3ee in QQuickWindowPrivate::cleanupNodes() (this=0x1a667d0) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quick/items/qquickwindow.cpp:1820
#30 0x00007f1a712b12d1 in QQuickWindowPrivate::cleanupNodesOnShutdown() (this=0x1a667d0) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quick/items/qquickwindow.cpp:1862
#31 0x00007f1a7124c63b in QQuickRenderControl::invalidate() (this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quick/items/qquickrendercontrol.cpp:397
#32 0x00007f1a706a0863 in QQuickWidgetPrivate::invalidateRenderControl() (this=0x1b59010) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quickwidgets/qquickwidget.cpp:224
#33 QQuickWidgetPrivate::destroy() (this=0x1b59010) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quickwidgets/qquickwidget.cpp:286
#34 QQuickWidget::~QQuickWidget() (this=0x1b0c790, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quickwidgets/qquickwidget.cpp:666
#35 0x00007f1a706a08e9 in QQuickWidget::~QQuickWidget() (this=0x1b0c790, this=<optimized out>) at /usr/src/debug/qtdeclarative-everywhere-src-6.5.2/src/quickwidgets/qquickwidget.cpp:667
#36 0x00007f1a6f5a2af3 in QObjectPrivate::deleteChildren() (this=this@entry=0x14fd260) at /usr/src/debug/qtbase-everywhere-src-6.5.2/src/corelib/kernel/qobject.cpp:2174
#37 0x00007f1a719f1518 in QWidget::~QWidget() (this=this@entry=0x14f7fd0, this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.5.2/src/widgets/kernel/qwidget.cpp:1531
#38 0x00007f1a5ff7dd4d in FocusHackWidget::~FocusHackWidget() (this=0x14f7fd0, __in_chrg=<optimized out>) at /home/nico/kde6/src/systemsettings/sidebar/SidebarMode.cpp:51
#39 FocusHackWidget::~FocusHackWidget() (this=0x14f7fd0, __in_chrg=<optimized out>) at /home/nico/kde6/src/systemsettings/sidebar/SidebarMode.cpp:51
#40 0x00007f1a6f5a2af3 in QObjectPrivate::deleteChildren() (this=this@entry=0x158b120) at /usr/src/debug/qtbase-everywhere-src-6.5.2/src/corelib/kernel/qobject.cpp:2174
#41 0x00007f1a719f1518 in QWidget::~QWidget() (this=0x17ab290, this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.5.2/src/widgets/kernel/qwidget.cpp:1531
#42 0x00007f1a71b919c9 in QStackedWidget::~QStackedWidget() (this=0x17ab290, this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.5.2/src/widgets/widgets/qstackedwidget.cpp:111
#43 0x00007f1a6f5a2af3 in QObjectPrivate::deleteChildren() (this=this@entry=0x1771e40) at /usr/src/debug/qtbase-everywhere-src-6.5.2/src/corelib/kernel/qobject.cpp:2174
#44 0x00007f1a719f1518 in QWidget::~QWidget() (this=0x126ae90, this=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.5.2/src/widgets/kernel/qwidget.cpp:1531
#45 0x0000000000414fc1 in SettingsBase::~SettingsBase() (this=0x126ae90, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/nico/kde6/src/systemsettings/app/SettingsBase.cpp:83
#46 0x00000000004150c9 in SettingsBase::~SettingsBase() (this=0x126ae90, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/nico/kde6/src/systemsettings/app/SettingsBase.cpp:83
#47 0x00007f1a6f5a4027 in QObject::event(QEvent*) (this=0x126ae90, e=0x3616940) at /usr/src/debug/qtbase-everywhere-src-6.5.2/src/corelib/kernel/qobject.cpp:1378
#48 0x00007f1a728fbb37 in KXmlGuiWindow::event(QEvent*) (this=0x126ae90, ev=0x3616940) at /home/nico/kde6/src/kxmlgui/src/kxmlguiwindow.cpp:220
#49 0x00007f1a719beb2e in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x126ae90, e=0x3616940) at /usr/src/debug/qtbase-everywhere-src-6.5.2/src/widgets/kernel/qapplication.cpp:3287
#50 0x00007f1a6f565d48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x126ae90, event=0x3616940) at /usr/src/debug/qtbase-everywhere-src-6.5.2/src/corelib/kernel/qcoreapplication.cpp:1118
#51 0x00007f1a6f565d89 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>) at /usr/src/debug/qtbase-everywhere-src-6.5.2/src/corelib/kernel/qcoreapplication.cpp:1536
#52 0x00007f1a6f566087 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) (receiver=0x0, event_type=0, data=0x1201b90) at /usr/src/debug/qtbase-everywhere-src-6.5.2/src/corelib/kernel/qcoreapplication.cpp:1898
#53 0x00007f1a6f7543e3 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x1288fc0) at /usr/src/debug/qtbase-everywhere-src-6.5.2/src/corelib/kernel/qeventdispatcher_glib.cpp:243
#54 0x00007f1a6ea3b988 in g_main_dispatch (context=0x7f1a68000f10) at ../glib/gmain.c:3460
#55 g_main_context_dispatch (context=context@entry=0x7f1a68000f10) at ../glib/gmain.c:4200
#56 0x00007f1a6ea3bd98 in g_main_context_iterate (context=context@entry=0x7f1a68000f10, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4276
#57 0x00007f1a6ea3be2c in g_main_context_iteration (context=0x7f1a68000f10, may_block=1) at ../glib/gmain.c:4343
#58 0x00007f1a6f751f4c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x12a2bb0, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.5.2/src/corelib/kernel/qeventdispatcher_glib.cpp:393
#59 0x00007f1a6f57016a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ffc45e8e4b0, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.5.2/build/include/QtCore/../../../src/corelib/global/qflags.h:34
#60 0x00007f1a6f569cb6 in QCoreApplication::exec() () at /usr/src/debug/qtbase-everywhere-src-6.5.2/build/include/QtCore/../../../src/corelib/global/qflags.h:74
#61 0x00007f1a6ffe0fcc in QGuiApplication::exec() () at /usr/src/debug/qtbase-everywhere-src-6.5.2/src/gui/kernel/qguiapplication.cpp:1908
#62 0x00007f1a719bbfd5 in QApplication::exec() () at /usr/src/debug/qtbase-everywhere-src-6.5.2/src/widgets/kernel/qapplication.cpp:2566
#63 0x000000000040e92f in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /home/nico/kde6/src/systemsettings/app/main.cpp:185
[Inferior 1 (process 4682) detached]
Comment 3 Nate Graham 2023-08-04 15:30:20 UTC
I think it's supposed to be fixed in Qt 6.5.3.