Bug 485671

Summary: plasma-systemmonitor crashes when re-edit settings in history page.
Product: [Applications] plasma-systemmonitor Reporter: BryanLiang <liangrui.ch>
Component: generalAssignee: KSysGuard Developers <ksysguard-bugs>
Status: RESOLVED FIXED    
Severity: crash CC: ahiemstra, nate, plasma-bugs-null
Priority: NOR    
Version First Reported In: 6.0.3   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In: 6.4.0
Sentry Crash Report:
Attachments: the stack trace of the coredump file
Another stacktrace of the same situation

Description BryanLiang 2024-04-17 11:27:54 UTC
Created attachment 168612 [details]
the stack trace of the coredump file

***
If you're not sure this is actually a bug, instead post about it at https://discuss.kde.org

If you're reporting a crash, attach a backtrace with debug symbols; see https://community.kde.org/Guidelines_and_HOWTOs/Debugging/How_to_create_useful_crash_reports
***

SUMMARY
plamsa-systemmonitor crashes when discarding settings in history page.

STEPS TO REPRODUCE
1. Open the plasma-systemmonitor
2. Go to the history page and click `Edit the page` located at right top corner.
3. Click `discard settings` and the page will be white.
4. Try to `Edit the page` again and the application will crash.

OBSERVED RESULT
The application will not be white and will not crash when re-edit.


EXPECTED RESULT
The application crashed.

SOFTWARE/OS VERSIONS
Operating System: Arch Linux 
KDE Plasma Version: 6.0.3
KDE Frameworks Version: 6.0.0
Qt Version: 6.6.3
Kernel Version: 6.8.6-zen1-1-zen-cjktty (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 5800H with Radeon Graphics
Memory: 13.5 GiB of RAM
Graphics Processor: AMD Radeon Graphics

ADDITIONAL INFORMATION
Here is the screen record of the crash.
https://1drv.ms/v/s!At2ldyxceuOnrlk3j6itCwTgNRHN?e=jNGSn9
Comment 1 BryanLiang 2024-04-17 15:51:05 UTC
Created attachment 168621 [details]
Another stacktrace of the same situation
Comment 2 Nate Graham 2025-05-08 14:59:38 UTC
Thread 1 (Thread 0x7c44d51f69c0 (LWP 17527)):
#0  0x00007c44d9984bbc in QObjectPrivate::connectImpl(QObject const*, int, QObject const*, void**, QtPrivate::QSlotObjectBase*, int, int const*, QMetaObject const*) () at /usr/lib/libQt6Core.so.6
#1  0x00007c44d9984efb in QObject::connectImpl(QObject const*, void**, QObject const*, void**, QtPrivate::QSlotObjectBase*, Qt::ConnectionType, int const*, QMetaObject const*) () at /usr/lib/libQt6Core.so.6
#2  0x00007c44b7cfc714 in QObject::connect<void (KSysGuard::SensorFaceController::*)(), void (PageDataObject::*)()> (type=Qt::AutoConnection, slot=@0x7ffd9bf73020: (void (PageDataObject::*)(class PageDataObject * const)) 0x7c44b7cf6080 <PageDataObject::markDirty()>, context=0x60c3121767b0, signal=(void (KSysGuard::SensorFaceController::*)(class KSysGuard::SensorFaceController * const)) 0x7c44c5a341d0 <KSysGuard::SensorFaceController::faceIdChanged()>, sender=0x60c30f7cffe0) at /usr/include/qt6/QtCore/qobject.h:240
        types = 0x0
        pSlot = 0x7ffd9bf73020
        types = <optimized out>
        pSlot = <optimized out>
#3  FaceLoader::setDataObject (this=<optimized out>, newDataObject=<optimized out>) at /usr/src/debug/plasma-systemmonitor/plasma-systemmonitor-6.0.3/src/page/FaceLoader.cpp:71
        faceConfig = {d = {d = 0x60c3115971f0, ptr = 0x60c311597200 u"Face-94107150101264", size = 19}, static _empty = 0 u'\000'}
        cacheName = {d = {d = 0x60c31309ba80, ptr = 0x60c31309ba90 u"history.page_Face-94107150101264", size = 32}, static _empty = 0 u'\000'}
#4  0x00007c44daa30138 in ??? () at /usr/lib/libQt6Qml.so.6
#5  0x00007c44daa38988 in ??? () at /usr/lib/libQt6Qml.so.6
#6  0x00007c44daa4231a in QQmlBinding::doUpdate(QQmlJavaScriptExpression::DeleteWatcher const&, QFlags<QQmlPropertyData::WriteFlag>, QV4::Scope&) () at /usr/lib/libQt6Qml.so.6
#7  0x00007c44daa418f4 in QQmlBinding::update(QFlags<QQmlPropertyData::WriteFlag>) () at /usr/lib/libQt6Qml.so.6
#8  0x00007c44daad3ac3 in QQmlObjectCreator::finalize(QQmlInstantiationInterrupt&) () at /usr/lib/libQt6Qml.so.6
#9  0x00007c44daaabfb7 in QQmlIncubatorPrivate::incubate(QQmlInstantiationInterrupt&) () at /usr/lib/libQt6Qml.so.6
#10 0x00007c44daaad2c0 in QQmlIncubationController::incubateFor(int) () at /usr/lib/libQt6Qml.so.6
#11 0x00007c44d999189b in ??? () at /usr/lib/libQt6Core.so.6
#12 0x00007c44cf9c6f3d in ??? () at /usr/lib/libQt6Quick.so.6
#13 0x00007c44cf834939 in QQuickWindow::event(QEvent*) () at /usr/lib/libQt6Quick.so.6
#14 0x00007c44daef437b in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt6Widgets.so.6
#15 0x00007c44d993a198 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt6Core.so.6
#16 0x00007c44d9fb4660 in QPlatformWindow::deliverUpdateRequest() () at /usr/lib/libQt6Gui.so.6
#17 0x00007c44d997cbb7 in QObject::event(QEvent*) () at /usr/lib/libQt6Core.so.6
#18 0x00007c44daef437b in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt6Widgets.so.6
#19 0x00007c44d993a198 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt6Core.so.6
#20 0x00007c44d993a51b in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () at /usr/lib/libQt6Core.so.6
#21 0x00007c44d9b75ba4 in ??? () at /usr/lib/libQt6Core.so.6
#22 0x00007c44d8d26199 in g_main_dispatch (context=0x7c44d0000f00) at ../glib/glib/gmain.c:3344
        dispatch = 0x7c44d9b75b80
        prev_source = 0x0
        begin_time_nsec = 5651069448923
        was_in_call = 0
        user_data = 0x0
        callback = 0x0
        cb_funcs = 0x0
        cb_data = 0x0
        need_destroy = <optimized out>
        source = 0x60c30eb4be30
        current = 0x60c30fac4410
        i = 0
        __func__ = "g_main_dispatch"
#23 0x00007c44d8d853bf in g_main_context_dispatch_unlocked (context=0x7c44d0000f00) at ../glib/glib/gmain.c:4152
#24 g_main_context_iterate_unlocked.isra.0 (context=context@entry=0x7c44d0000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4217
        max_priority = 0
        timeout = 0
        some_ready = 1
        nfds = 5
        allocated_nfds = 5
        fds = 0x60c3102322f0
        begin_time_nsec = 5651069444764
#25 0x00007c44d8d25712 in g_main_context_iteration (context=0x7c44d0000f00, may_block=1) at ../glib/glib/gmain.c:4282
        retval = <optimized out>
#26 0x00007c44d9b73cd4 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#27 0x00007c44d99446ee in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt6Core.so.6
#28 0x00007c44d993cc38 in QCoreApplication::exec() () at /usr/lib/libQt6Core.so.6
#29 0x000060c30d4ce2a0 in main (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/plasma-systemmonitor/plasma-systemmonitor-6.0.3/src/main.cpp:116
        format = {d = 0x60c30eb1eb00}
        app = <incomplete type>
        aboutData = {d = std::unique_ptr<class KAboutDataPrivate> = {get() = 0x60c30ec31d10}}
        service = <incomplete type>
        parser = Python Exception <class 'gdb.error'>: value has been optimized out

        sessionManager = <optimized out>
        engine = <incomplete type>
        busInterface = 0x7c44d0003b60
Comment 3 Nate Graham 2025-05-08 15:05:30 UTC
Aha, this was fixed recently for Plasma 6.4.