Bug 493060

Summary: Konsole crash when trying to change font
Product: [Frameworks and Libraries] frameworks-kwidgetsaddons Reporter: Aurélien COUDERC <coucouf>
Component: generalAssignee: Christoph Feck <cfeck>
Status: RESOLVED FIXED    
Severity: crash CC: 404895077, christoph, kdelibs-bugs, rikmills
Priority: NOR    
Version: 6.6.0   
Target Milestone: ---   
Platform: Debian unstable   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Aurélien COUDERC 2024-09-13 13:15:48 UTC
SUMMARY
Konsole crashes when trying to select a font.
Either for the main font or the emoji font.

STEPS TO REPRODUCE
1. Launch Konsole
2. Open profile configuration page
3. In the Appearance section click the « Choose » button to select a font.

OBSERVED RESULT
SIGSEGV

EXPECTED RESULT
Font selection dialog

SOFTWARE/OS VERSIONS
Linux/KDE Plasma: Debian unstable/linux 6.11-rc5
KDE Plasma Version: 6.1.5
KDE Frameworks Version: 6.6.0
Qt Version: 6.6.2

ADDITIONAL INFORMATION
Thread 1 "konsole" received signal SIGSEGV, Segmentation fault.
KFontChooserPrivate::init (this=0x555556794190) at /usr/include/c++/14/bits/unique_ptr.h:193
193           pointer    _M_ptr() const noexcept { return std::get<0>(_M_t); }
(gdb) bt
#0  KFontChooserPrivate::init (this=0x555556794190) at /usr/include/c++/14/bits/unique_ptr.h:193
#1  0x00007ffff58f4934 in KFontChooser::KFontChooser (this=this@entry=0x555556783ad0, flags=..., 
    flags@entry=..., parent=parent@entry=0x555556794560) at ./src/kfontchooser.cpp:145
#2  0x00007ffff7ca1990 in Konsole::FontDialog::FontDialog
    (this=this@entry=0x555556794560, parent=parent@entry=0x5555563bea70, emoji=emoji@entry=false, font=...)
    at /usr/include/x86_64-linux-gnu/qt6/QtCore/qflags.h:74
#3  0x00007ffff7d0fd2d in Konsole::EditProfileDialog::showFontDialog (this=0x5555563bea70) at ./src/widgets/EditProfileDialog.cpp:1253
#4  0x00007ffff63d12d1 in ??? () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#5  0x00007ffff74bf196 in QAbstractButton::clicked (this=<optimized out>, _t1=<optimized out>)
    at ./obj-x86_64-linux-gnu/src/widgets/Widgets_autogen/include/moc_qabstractbutton.cpp:408
#6  0x00007ffff74b6c6e in QAbstractButtonPrivate::emitClicked (this=0x555556558ee0) at ./src/widgets/widgets/qabstractbutton.cpp:379
#7  0x00007ffff74b6f4d in QAbstractButtonPrivate::click (this=0x555556558ee0) at ./src/widgets/widgets/qabstractbutton.cpp:372
#8  0x00007ffff74c5009 in QAbstractButton::mouseReleaseEvent (this=0x555556558e50, e=0x7fffffffcfb0)
    at ./src/widgets/widgets/qabstractbutton.cpp:974
#9  0x00007ffff73fa8b3 in QWidget::event (this=0x555556558e50, event=0x7fffffffcfb0) at ./src/widgets/kernel/qwidget.cpp:8959
#10 0x00007ffff73afae2 in QApplicationPrivate::notify_helper
    (this=this@entry=0x555555588340, receiver=receiver@entry=0x555556558e50, e=e@entry=0x7fffffffcfb0)
    at ./src/widgets/kernel/qapplication.cpp:3296
#11 0x00007ffff73b4540 in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=0x7fffffffcfb0)
    at ./src/widgets/kernel/qapplication.cpp:2782
#12 0x00007ffff63801c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#13 0x00007ffff73a927e in QApplicationPrivate::sendMouseEvent
    (receiver=0x555556558e50, event=0x7fffffffcfb0, alienWidget=<optimized out>, nativeWidget=0x5555563bea70, buttonDown=<optimized out>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at ./src/widgets/kernel/qapplication.cpp:2366
#14 0x00007ffff740e448 in QWidgetWindow::handleMouseEvent (this=0x555556714820, event=0x7fffffffd3c0)
    at ./src/widgets/kernel/qwidgetwindow.cpp:653
#15 0x00007ffff7409f38 in QWidgetWindow::event (this=0x555556714820, event=0x7fffffffd3c0) at ./src/widgets/kernel/qwidgetwindow.cpp:267
#16 0x00007ffff73afae2 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x555556714820, e=0x7fffffffd3c0)
    at ./src/widgets/kernel/qapplication.cpp:3296
#17 0x00007ffff63801c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
--Type <RET> for more, q to quit, c to continue without paging--
#18 0x00007ffff6bc4f9b in QGuiApplicationPrivate::processMouseEvent (e=0x7fffe0002a90) at ./src/gui/kernel/qguiapplication.cpp:2325
#19 0x00007ffff6c1db7c in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at ./src/gui/kernel/qwindowsysteminterface.cpp:1109
#20 0x00007ffff6f51d54 in userEventSourceDispatch (source=<optimized out>) at ./src/gui/platform/unix/qeventdispatcher_glib.cpp:38
#21 0x00007ffff36bf7df in g_main_dispatch (context=context@entry=0x7fffe8000f00) at ../../../glib/gmain.c:3357
#22 0x00007ffff36c1a17 in g_main_context_dispatch_unlocked (context=0x7fffe8000f00) at ../../../glib/gmain.c:4208
#23 g_main_context_iterate_unlocked
    (context=context@entry=0x7fffe8000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at ../../../glib/gmain.c:4273
#24 0x00007ffff36c2180 in g_main_context_iteration (context=0x7fffe8000f00, may_block=1) at ../../../glib/gmain.c:4338
#25 0x00007ffff657a1b3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /lib/x86_64-linux-gnu/libQt6Core.so.6
#26 0x00007ffff638a38b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#27 0x00007ffff6383908 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#28 0x00007ffff6bc00a0 in QGuiApplication::exec () at ./src/gui/kernel/qguiapplication.cpp:1925
#29 0x00007ffff73ac049 in QApplication::exec () at ./src/widgets/kernel/qapplication.cpp:2574
#30 0x0000555555558e26 in main (argc=<optimized out>, argv=<optimized out>) at ./src/main.cpp:260
Comment 1 Aurélien COUDERC 2024-09-13 21:28:07 UTC
I’m having the same issue with systemsettings so this bug report should probably be moved to frameworks' kwidgetsaddons.

Thread 1 "systemsettings" received signal SIGSEGV, Segmentation fault.
KFontChooserPrivate::init (this=0x55555897abd0) at /usr/include/c++/14/bits/unique_ptr.h:193
193           pointer    _M_ptr() const noexcept { return std::get<0>(_M_t); }
(gdb) bt
#0  KFontChooserPrivate::init (this=0x55555897abd0) at /usr/include/c++/14/bits/unique_ptr.h:193
#1  0x00007ffff74f4934 in KFontChooser::KFontChooser (this=this@entry=0x555559348260, flags=..., parent=parent@entry=0x7fffdc0034b0)
    at ./src/kfontchooser.cpp:145
#2  0x00007ffff74f92e0 in KFontChooserDialog::KFontChooserDialog (this=0x7fffdc0034b0, flags=..., parent=<optimized out>)
    at ./src/kfontchooserdialog.cpp:26
#3  0x00007ffff74f9895 in KFontChooserDialog::getFont (theFont=..., flags=..., parent=parent@entry=0x0) at ./src/kfontchooserdialog.cpp:92
#4  0x00007fffa4667189 in KFonts::adjustFont (this=0x55555937ccd0, font=<optimized out>, category=...) at ./kcms/fonts/fonts.cpp:162
#5  0x00007fffa4664da8 in KFonts::qt_metacall (this=0x55555937ccd0, _c=QMetaObject::InvokeMetaMethod, _id=8, _a=0x7fffffff99e8)
    at ./obj-x86_64-linux-gnu/kcms/fonts/kcm_fonts_autogen/EWIEGA46WW/moc_fonts.cpp:351
#6  0x00007ffff611e7b3 in ??? () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#7  0x00007ffff5ff90dd in ??? () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#8  0x00007ffff60015b1 in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const ()
    at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#9  0x00007ffff604514a in ??? () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#10 0x00007ffff6048623 in ??? () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#11 0x00007ffff5fba2ae in ??? () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#12 0x00007ffff5fbd155 in QV4::Function::call(QObject*, void**, QMetaType const*, int, QV4::ExecutionContext*) ()
    at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#13 0x00007ffff60f2579 in QQmlJavaScriptExpression::evaluate(void**, QMetaType const*, int) () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#14 0x00007ffff608d09b in QQmlBoundSignalExpression::evaluate(void**) () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#15 0x00007ffff609222b in ??? () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#16 0x00007ffff6111c67 in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () at /lib/x86_64-linux-gnu/libQt6Qml.so.6
#17 0x00007ffff51d10b8 in ??? () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#18 0x00007fffed8e492a in QQuickAbstractButtonPrivate::handleRelease(QPointF const&, unsigned long) ()
    at /lib/x86_64-linux-gnu/libQt6QuickTemplates2.so.6
#19 0x00007fffed8fcafd in QQuickControl::mouseReleaseEvent(QMouseEvent*) () at /lib/x86_64-linux-gnu/libQt6QuickTemplates2.so.6
#20 0x00007ffff660bde3 in QQuickItem::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#21 0x00007ffff6dafae2 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5555593c9be0, e=0x7fffffffc990)
    at ./src/widgets/kernel/qapplication.cpp:3296
#22 0x00007ffff51801c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
--Type <RET> for more, q to quit, c to continue without paging--
#23 0x00007ffff675f3ab in QQuickDeliveryAgentPrivate::deliverMatchingPointsToItem(QQuickItem*, bool, QPointerEvent*, bool) ()
    at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#24 0x00007ffff67611c6 in QQuickDeliveryAgentPrivate::deliverUpdatedPoints(QPointerEvent*) () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#25 0x00007ffff6762a23 in QQuickDeliveryAgentPrivate::deliverPointerEvent(QPointerEvent*) () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#26 0x00007ffff6763b34 in QQuickDeliveryAgentPrivate::handleMouseEvent(QMouseEvent*) () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#27 0x00007ffff6759ce8 in QQuickDeliveryAgent::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#28 0x00007ffff669e02c in QQuickWindow::event(QEvent*) () at /lib/x86_64-linux-gnu/libQt6Quick.so.6
#29 0x00007ffff6dafae2 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55555932b740, e=0x7fffffffc990)
    at ./src/widgets/kernel/qapplication.cpp:3296
#30 0x00007ffff51801c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#31 0x00007ffff77d8f8d in QQuickWidget::mouseReleaseEvent(QMouseEvent*) () at /lib/x86_64-linux-gnu/libQt6QuickWidgets.so.6
#32 0x00007ffff6dfa8b3 in QWidget::event (this=0x55555932b710, event=0x7fffffffcf40) at ./src/widgets/kernel/qwidget.cpp:8959
#33 0x00007ffff6dafae2 in QApplicationPrivate::notify_helper
    (this=this@entry=0x5555555e5340, receiver=receiver@entry=0x55555932b710, e=e@entry=0x7fffffffcf40)
    at ./src/widgets/kernel/qapplication.cpp:3296
#34 0x00007ffff6db4540 in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=0x7fffffffcf40)
    at ./src/widgets/kernel/qapplication.cpp:2782
#35 0x00007ffff51801c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#36 0x00007ffff6da927e in QApplicationPrivate::sendMouseEvent
    (receiver=0x55555932b710, event=0x7fffffffcf40, alienWidget=<optimized out>, nativeWidget=0x555555c35200, buttonDown=<optimized out>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at ./src/widgets/kernel/qapplication.cpp:2366
#37 0x00007ffff6e0e448 in QWidgetWindow::handleMouseEvent (this=0x555555f17950, event=0x7fffffffd350)
    at ./src/widgets/kernel/qwidgetwindow.cpp:653
#38 0x00007ffff6e09f38 in QWidgetWindow::event (this=0x555555f17950, event=0x7fffffffd350) at ./src/widgets/kernel/qwidgetwindow.cpp:267
#39 0x00007ffff6dafae2 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x555555f17950, e=0x7fffffffd350)
    at ./src/widgets/kernel/qapplication.cpp:3296
#40 0x00007ffff51801c8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#41 0x00007ffff57c4f9b in QGuiApplicationPrivate::processMouseEvent (e=0x7fffe0003ba0) at ./src/gui/kernel/qguiapplication.cpp:2325
#42 0x00007ffff581db7c in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at ./src/gui/kernel/qwindowsysteminterface.cpp:1109
#43 0x00007ffff5b51d54 in userEventSourceDispatch (source=<optimized out>) at ./src/gui/platform/unix/qeventdispatcher_glib.cpp:38
--Type <RET> for more, q to quit, c to continue without paging--
#44 0x00007ffff410c7df in g_main_dispatch (context=context@entry=0x7fffe8000f00) at ../../../glib/gmain.c:3357
#45 0x00007ffff410ea17 in g_main_context_dispatch_unlocked (context=0x7fffe8000f00) at ../../../glib/gmain.c:4208
#46 g_main_context_iterate_unlocked
    (context=context@entry=0x7fffe8000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>)
    at ../../../glib/gmain.c:4273
#47 0x00007ffff410f180 in g_main_context_iteration (context=0x7fffe8000f00, may_block=1) at ../../../glib/gmain.c:4338
#48 0x00007ffff537a1b3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
    at /lib/x86_64-linux-gnu/libQt6Core.so.6
#49 0x00007ffff518a38b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#50 0x00007ffff5183908 in QCoreApplication::exec() () at /lib/x86_64-linux-gnu/libQt6Core.so.6
#51 0x00007ffff57c00a0 in QGuiApplication::exec () at ./src/gui/kernel/qguiapplication.cpp:1925
#52 0x00007ffff6dac049 in QApplication::exec () at ./src/widgets/kernel/qapplication.cpp:2574
#53 0x000055555556cf22 in main (argc=<optimized out>, argv=<optimized out>) at ./app/main.cpp:175
Comment 2 Aurélien COUDERC 2024-09-20 21:47:29 UTC
Reverting https://invent.kde.org/frameworks/kwidgetsaddons/-/commit/810903365c3dd25d1e6b859a9b853df298ed23a5 fixes the crash.
Comment 3 Christoph Cullmann 2024-10-01 17:02:25 UTC
Git commit 4e2f8b785bc751a45756a705ddbd5d3795698b89 by Christoph Cullmann.
Committed on 01/10/2024 at 17:02.
Pushed by cullmann into branch 'master'.

fix crash with older Qt

hide after the stuff got constructed

M  +6    -4    src/kfontchooser.cpp

https://invent.kde.org/frameworks/kwidgetsaddons/-/commit/4e2f8b785bc751a45756a705ddbd5d3795698b89
Comment 4 Waqar Ahmed 2024-11-14 07:52:32 UTC
*** Bug 495866 has been marked as a duplicate of this bug. ***