Bug 451834 - Calling app crashes trying to show a message box with KMessageBox::createKMessageBox()
Summary: Calling app crashes trying to show a message box with KMessageBox::createKMes...
Status: RESOLVED FIXED
Alias: None
Product: frameworks-kwidgetsaddons
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: 5.92.0
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Christoph Feck
URL:
Keywords: drkonqi, wayland
: 451885 455697 (view as bug list)
Depends on:
Blocks:
 
Reported: 2022-03-23 20:39 UTC by jwbradley2003
Modified: 2022-08-21 13:38 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.97


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description jwbradley2003 2022-03-23 20:39:46 UTC
Application: plasmashell (5.24.3)

Qt Version: 5.15.3
Frameworks Version: 5.92.0
Operating System: Linux 5.16.16-arch1-1 x86_64
Windowing System: Wayland
Distribution: "Arch Linux"
DrKonqi: 5.24.3 [KCrashBackend]

-- Information about the crash:
While connecting to an AT&T network that was offline, the plasma desktop crashed. This occured twice and I have not been able to replicate it reliably since.

The crash can be reproduced sometimes.

-- Backtrace:
Application: Plasma (plasmashell), signal: Segmentation fault

[KCrash Handler]
#4  0x00007fdd33412054 in QTransform::operator=(QTransform const&) () at /usr/lib/libQt5Gui.so.5
#5  0x00007fdd333a9ab9 in QRasterPaintEngine::updateOutlineMapper() () at /usr/lib/libQt5Gui.so.5
#6  0x00007fdd333adfc1 in QRasterPaintEngine::begin(QPaintDevice*) () at /usr/lib/libQt5Gui.so.5
#7  0x00007fdd333c3777 in QPainter::begin(QPaintDevice*) () at /usr/lib/libQt5Gui.so.5
#8  0x00007fdd30a1cc8f in QtWaylandClient::QWaylandShmBackingStore::beginPaint(QRegion const&) () at /usr/lib/libQt5WaylandClient.so.5
#9  0x00007fdd332e4c6e in QBackingStore::beginPaint(QRegion const&) () at /usr/lib/libQt5Gui.so.5
#10 0x00007fdd339d29b7 in  () at /usr/lib/libQt5Widgets.so.5
#11 0x00007fdd339fd855 in QWidget::event(QEvent*) () at /usr/lib/libQt5Widgets.so.5
#12 0x00007fdd339c71c6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#13 0x00007fdd32d745aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#14 0x00007fdd32d750a9 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#15 0x00007fdd32dbc678 in  () at /usr/lib/libQt5Core.so.5
#16 0x00007fdd31171163 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#17 0x00007fdd311c79e9 in  () at /usr/lib/libglib-2.0.so.0
#18 0x00007fdd3116e6c5 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#19 0x00007fdd32dc057a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#20 0x00007fdd32d6c88b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#21 0x00007fdd33bc1776 in QDialog::exec() () at /usr/lib/libQt5Widgets.so.5
#22 0x00007fdd31d76859 in KMessageBox::createKMessageBox(QDialog*, QDialogButtonBox*, QIcon const&, QString const&, QStringList const&, QString const&, bool*, QFlags<KMessageBox::Option>, QString const&, QMessageBox::Icon) () at /usr/lib/libKF5WidgetsAddons.so.5
#23 0x00007fdd31d76f55 in KMessageBox::createKMessageBox(QDialog*, QDialogButtonBox*, QMessageBox::Icon, QString const&, QStringList const&, QString const&, bool*, QFlags<KMessageBox::Option>, QString const&) () at /usr/lib/libKF5WidgetsAddons.so.5
#24 0x00007fdd31d796f7 in  () at /usr/lib/libKF5WidgetsAddons.so.5
#25 0x00007fdd31d79a99 in KMessageBox::warningYesNoCancel(QWidget*, QString const&, QString const&, KGuiItem const&, KGuiItem const&, KGuiItem const&, QString const&, QFlags<KMessageBox::Option>) () at /usr/lib/libKF5WidgetsAddons.so.5
#26 0x00007fdd3231d028 in KIO::JobUiDelegate::requestMessageBox(KIO::JobUiDelegateExtension::MessageBoxType, QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, KIO::MetaData const&) () at /usr/lib/libKF5KIOWidgets.so.5
#27 0x00007fdd30c46b12 in  () at /usr/lib/libKF5KIOCore.so.5
#28 0x00007fdd32d987d6 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#29 0x00007fdd339c71c6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#30 0x00007fdd32d745aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#31 0x00007fdd32d750a9 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#32 0x00007fdd32dbc678 in  () at /usr/lib/libQt5Core.so.5
#33 0x00007fdd31171163 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#34 0x00007fdd311c79e9 in  () at /usr/lib/libglib-2.0.so.0
#35 0x00007fdd3116e6c5 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#36 0x00007fdd32dc057a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#37 0x00007fdd32d6c88b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#38 0x00007fdd32bcfa56 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#39 0x00007fdd3457ddff in  () at /usr/lib/libQt5Quick.so.5
#40 0x00007fdd32bcc8cc in  () at /usr/lib/libQt5Core.so.5
#41 0x00007fdd327455c2 in start_thread () at /usr/lib/libc.so.6
#42 0x00007fdd327ca584 in clone () at /usr/lib/libc.so.6

Thread 12 (Thread 0x7fdcff7fe640 (LWP 1255) "QQmlThread"):
#1  0x00007fdd32dbcc33 in  () at /usr/lib/libQt5Core.so.5
#2  0x00007fdd31170d33 in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0
#3  0x00007fdd311c77e6 in  () at /usr/lib/libglib-2.0.so.0
#4  0x00007fdd3116e6c5 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#5  0x00007fdd32dc05f7 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#6  0x00007fdd32d6c88b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#7  0x00007fdd32bcfa56 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#8  0x00007fdd34244d00 in  () at /usr/lib/libQt5Qml.so.5
#9  0x00007fdd32bcc8cc in  () at /usr/lib/libQt5Core.so.5
#10 0x00007fdd327455c2 in start_thread () at /usr/lib/libc.so.6
#11 0x00007fdd327ca584 in clone () at /usr/lib/libc.so.6

Thread 11 (Thread 0x7fdcfffff640 (LWP 1229) "plasmashel:sh5"):
#1  0x00007fdd32744960 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libc.so.6
#2  0x00007fdd1e46e51c in  () at /usr/lib/dri/iris_dri.so
#3  0x00007fdd1e46756c in  () at /usr/lib/dri/iris_dri.so
#4  0x00007fdd327455c2 in start_thread () at /usr/lib/libc.so.6
#5  0x00007fdd327ca584 in clone () at /usr/lib/libc.so.6

Thread 10 (Thread 0x7fdd14c30640 (LWP 1228) "plasmashel:sh4"):
#1  0x00007fdd32744960 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libc.so.6
#2  0x00007fdd1e46e51c in  () at /usr/lib/dri/iris_dri.so
#3  0x00007fdd1e46756c in  () at /usr/lib/dri/iris_dri.so
#4  0x00007fdd327455c2 in start_thread () at /usr/lib/libc.so.6
#5  0x00007fdd327ca584 in clone () at /usr/lib/libc.so.6

Thread 9 (Thread 0x7fdd15431640 (LWP 1227) "plasmashel:sh3"):
#1  0x00007fdd32744960 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libc.so.6
#2  0x00007fdd1e46e51c in  () at /usr/lib/dri/iris_dri.so
#3  0x00007fdd1e46756c in  () at /usr/lib/dri/iris_dri.so
#4  0x00007fdd327455c2 in start_thread () at /usr/lib/libc.so.6
#5  0x00007fdd327ca584 in clone () at /usr/lib/libc.so.6

Thread 8 (Thread 0x7fdd15c32640 (LWP 1226) "plasmashel:sh2"):
#1  0x00007fdd32744960 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libc.so.6
#2  0x00007fdd1e46e51c in  () at /usr/lib/dri/iris_dri.so
#3  0x00007fdd1e46756c in  () at /usr/lib/dri/iris_dri.so
#4  0x00007fdd327455c2 in start_thread () at /usr/lib/libc.so.6
#5  0x00007fdd327ca584 in clone () at /usr/lib/libc.so.6

Thread 7 (Thread 0x7fdd16433640 (LWP 1225) "plasmashel:sh1"):
#1  0x00007fdd32744960 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libc.so.6
#2  0x00007fdd1e46e51c in  () at /usr/lib/dri/iris_dri.so
#3  0x00007fdd1e46756c in  () at /usr/lib/dri/iris_dri.so
#4  0x00007fdd327455c2 in start_thread () at /usr/lib/libc.so.6
#5  0x00007fdd327ca584 in clone () at /usr/lib/libc.so.6

Thread 6 (Thread 0x7fdd16c34640 (LWP 1224) "plasmashel:sh0"):
#1  0x00007fdd32744960 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libc.so.6
#2  0x00007fdd1e46e51c in  () at /usr/lib/dri/iris_dri.so
#3  0x00007fdd1e46756c in  () at /usr/lib/dri/iris_dri.so
#4  0x00007fdd327455c2 in start_thread () at /usr/lib/libc.so.6
#5  0x00007fdd327ca584 in clone () at /usr/lib/libc.so.6

Thread 5 (Thread 0x7fdd17435640 (LWP 1223) "plasmas:disk$0"):
#1  0x00007fdd32744960 in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libc.so.6
#2  0x00007fdd1e46e51c in  () at /usr/lib/dri/iris_dri.so
#3  0x00007fdd1e46756c in  () at /usr/lib/dri/iris_dri.so
#4  0x00007fdd327455c2 in start_thread () at /usr/lib/libc.so.6
#5  0x00007fdd327ca584 in clone () at /usr/lib/libc.so.6

Thread 4 (Thread 0x7fdd2c87a640 (LWP 1202) "QDBusConnection"):
#1  0x00007fdd31170c13 in g_main_context_prepare () at /usr/lib/libglib-2.0.so.0
#2  0x00007fdd311c77e6 in  () at /usr/lib/libglib-2.0.so.0
#3  0x00007fdd3116e6c5 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#4  0x00007fdd32dc05f7 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#5  0x00007fdd32d6c88b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#6  0x00007fdd32bcfa56 in QThread::exec() () at /usr/lib/libQt5Core.so.5
#7  0x00007fdd3369d3a9 in  () at /usr/lib/libQt5DBus.so.5
#8  0x00007fdd32bcc8cc in  () at /usr/lib/libQt5Core.so.5
#9  0x00007fdd327455c2 in start_thread () at /usr/lib/libc.so.6
#10 0x00007fdd327ca584 in clone () at /usr/lib/libc.so.6

Thread 3 (Thread 0x7fdd2d111640 (LWP 1196) "WaylandEventThr"):
#1  0x00007fdd30a25306 in  () at /usr/lib/libQt5WaylandClient.so.5
#2  0x00007fdd32bcc8cc in  () at /usr/lib/libQt5Core.so.5
#3  0x00007fdd327455c2 in start_thread () at /usr/lib/libc.so.6
#4  0x00007fdd327ca584 in clone () at /usr/lib/libc.so.6

Thread 2 (Thread 0x7fdd2d912640 (LWP 1195) "WaylandEventThr"):
#1  0x00007fdd32bc82c6 in QBasicMutex::lockInternal() () at /usr/lib/libQt5Core.so.5
#2  0x00007fdd32bd3ccb in QWaitCondition::wait(QMutex*, QDeadlineTimer) () at /usr/lib/libQt5Core.so.5
#3  0x00007fdd30a252a7 in  () at /usr/lib/libQt5WaylandClient.so.5
#4  0x00007fdd32bcc8cc in  () at /usr/lib/libQt5Core.so.5
#5  0x00007fdd327455c2 in start_thread () at /usr/lib/libc.so.6
#6  0x00007fdd327ca584 in clone () at /usr/lib/libc.so.6

Thread 1 (Thread 0x7fdd2df9f1c0 (LWP 1176) "plasmashell"):
#1  0x00007fdd3274a3a5 in __pthread_mutex_unlock_usercnt () at /usr/lib/libc.so.6
#2  0x00007fdd32bd3a38 in QWaitCondition::wakeOne() () at /usr/lib/libQt5Core.so.5
#3  0x00007fdd30a255ab in QtWaylandClient::QWaylandDisplay::flushRequests() () at /usr/lib/libQt5WaylandClient.so.5
#4  0x00007fdd32d987d6 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#5  0x00007fdd339c71c6 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#6  0x00007fdd32d745aa in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#7  0x00007fdd32d750a9 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt5Core.so.5
#8  0x00007fdd32dbc678 in  () at /usr/lib/libQt5Core.so.5
#9  0x00007fdd31171163 in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#10 0x00007fdd311c79e9 in  () at /usr/lib/libglib-2.0.so.0
#11 0x00007fdd3116e6c5 in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#12 0x00007fdd32dc057a in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#13 0x00007fdd32d6c88b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#14 0x00007fdd32d77fd7 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#15 0x0000561dd2349f81 in  ()
#16 0x00007fdd326e5310 in __libc_start_call_main () at /usr/lib/libc.so.6
#17 0x00007fdd326e53c1 in __libc_start_main_impl () at /usr/lib/libc.so.6
#18 0x0000561dd234a335 in  ()
[Inferior 1 (process 1176) detached]

Reported using DrKonqi
Comment 1 Nate Graham 2022-03-27 02:26:08 UTC
Crashing while trying to show a message box?

#21 0x00007fdd33bc1776 in QDialog::exec() () at /usr/lib/libQt5Widgets.so.5
#22 0x00007fdd31d76859 in KMessageBox::createKMessageBox(QDialog*, QDialogButtonBox*, QIcon const&, QString const&, QStringList const&, QString const&, bool*, QFlags<KMessageBox::Option>, QString const&, QMessageBox::Icon) () at /usr/lib/libKF5WidgetsAddons.so.5
#23 0x00007fdd31d76f55 in KMessageBox::createKMessageBox(QDialog*, QDialogButtonBox*, QMessageBox::Icon, QString const&, QStringList const&, QString const&, bool*, QFlags<KMessageBox::Option>, QString const&) () at /usr/lib/libKF5WidgetsAddons.so.5
#24 0x00007fdd31d796f7 in  () at /usr/lib/libKF5WidgetsAddons.so.5
#25 0x00007fdd31d79a99 in KMessageBox::warningYesNoCancel(QWidget*, QString const&, QString const&, KGuiItem const&, KGuiItem const&, KGuiItem const&, QString const&, QFlags<KMessageBox::Option>) () at /usr/lib/libKF5WidgetsAddons.so.5
#26 0x00007fdd3231d028 in KIO::JobUiDelegate::requestMessageBox(KIO::JobUiDelegateExtension::MessageBoxType, QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, QString const&, KIO::MetaData const&) () at /usr/lib/libKF5KIOWidgets.so.5
#27 0x00007fdd30c46b12 in  () at /usr/lib/libKF5KIOCore.so.5
Comment 2 Nate Graham 2022-03-27 16:38:10 UTC
*** Bug 451885 has been marked as a duplicate of this bug. ***
Comment 4 Bug Janitor Service 2022-05-17 11:38:07 UTC
A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kio/-/merge_requests/794
Comment 5 Nate Graham 2022-06-21 18:14:09 UTC
*** Bug 455697 has been marked as a duplicate of this bug. ***
Comment 6 Ahmad Samir 2022-08-21 13:38:17 UTC
Git commit 5f7fe0501725564d4c8247f74731bcee52cd711d by Ahmad Samir.
Committed on 21/08/2022 at 11:59.
Pushed by ahmadsamir into branch 'master'.

Use AskUserActionInterface (async) in UserNotificationHandler

This avoids using QDialog::exec(), which uses a nested eventloop, with all
the problems that come from such usage.
FIXED-IN: 5.97

M  +31   -23   src/core/usernotificationhandler.cpp
M  +1    -0    src/core/usernotificationhandler_p.h

https://invent.kde.org/frameworks/kio/commit/5f7fe0501725564d4c8247f74731bcee52cd711d