Bug 420253 - Mystery QML crashes when leaving KCM due to nested event loop
Summary: Mystery QML crashes when leaving KCM due to nested event loop
Status: RESOLVED WORKSFORME
Alias: None
Product: systemsettings
Classification: Applications
Component: kcm_kscreen (other bugs)
Version First Reported In: unspecified
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: kscreen-bugs-null@kde.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2020-04-18 14:23 UTC by Juanma
Modified: 2025-01-09 11:20 UTC (History)
3 users (show)

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


Attachments
File generated by the KDE Crash Reporting Assistant. (9.27 KB, text/plain)
2020-04-18 14:23 UTC, Juanma
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Juanma 2020-04-18 14:23:31 UTC
Created attachment 127644 [details]
File generated by the KDE Crash Reporting Assistant.

Crash when returning from Display settings


STEPS TO REPRODUCE
1. Open System Settings.
2. Go to "Display and Monitor".
3. Clink on "All Settings" to return to the main screen.

OBSERVED RESULT
System Settings crashes.

EXPECTED RESULT
You know.

SOFTWARE/OS VERSIONS
Application: systemsettings5 (5.17.5)
Qt Version: 5.12.5
Frameworks Version: 5.62.0
Operating System: Linux 5.5.0-1-amd64 x86_64
Distribution: Debian GNU/Linux bullseye/sid

ADDITIONAL INFORMATION
In attachment.
Comment 1 David Edmundson 2020-04-18 17:11:19 UTC
kscreen has some nested event loop including potentially one on closure  - that is known to cause mystery QML crashes.
Comment 2 Nate Graham 2022-11-10 22:07:51 UTC
Cool, let's use this to track that.
Comment 3 Nate Graham 2022-11-12 14:27:46 UTC
Example backtrace for one such mystery QML crash:

Thread 1 (Thread 0x7f369cbdc800 (LWP 3340)):
[KCrash Handler]
#6  0x00007f36a0a731e0 in QQuickWindow::maybeUpdate() () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#7  0x00007f36a0ac0f32 in QQuickText::setColor(QColor const&) () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#8  0x00007f36a0ac9bcd in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#9  0x00007f36a0aca02b in QQuickText::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Quick.so.5
#10 0x00007f369ae64a26 in QQuickLabel::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5QuickTemplates2.so.5
#11 0x00007f36a06995b6 in QV4::QQmlValueTypeWrapper::write(QObject*, int) const () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#12 0x00007f36a0692252 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#13 0x00007f36a069326c in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#14 0x00007f36a068faa4 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#15 0x00007f36a066c12d in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#16 0x00007f36a060968d in QQmlData::signalEmitted(QAbstractDeclarativeData*, QObject*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Qml.so.5
#17 0x00007f36a1569c6f in QMetaObject::activate(QObject*, int, int, void**) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#18 0x00007f369001ba20 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5Kirigami2.so.5
#19 0x00007f36a156adaa in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#20 0x00007f36a1fd5c32 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#21 0x00007f36a1fdf190 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007f36a153fa52 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007f36a1542648 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007f36a1596183 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#25 0x00007f369ef6360d in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007f369ef63890 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007f369ef6391f in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007f36a15957c1 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x00007f36a153e6db in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#30 0x00007f36a1546182 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#31 0x0000558c035c464a in ?? ()
#32 0x00007f36a0f59e0b in __libc_start_main (main=0x558c035c4250, argc=1, argv=0x7ffc4b57c6d8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffc4b57c6c8) at ../csu/libc-start.c:308
#33 0x0000558c035c46ca in _start ()
[Inferior 1 (process 3340) detached]
Comment 4 David Edmundson 2025-01-09 11:20:48 UTC
Crash reports that are this old are not very actionable. Given we have no new updates we can consider this closed.