Bug 441916

Summary: Partition Manager crashed while shrinking ntfs partition (Crash in PartWidget::paintEvent)
Product: [Applications] partitionmanager Reporter: balkemal98
Component: generalAssignee: Andrius Štikonas <andrius>
Status: RESOLVED FIXED    
Severity: crash CC: adrianedelen, anicette, brindisi, canaan, doubles676, fabiansenftlebe, jakubwydro, josenerja692, lee.head.5150, max.beikirch, nate, nite, sergiu, stepien241, velae, wrona1380
Priority: VHI Keywords: drkonqi
Version: 23.08.4   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In: 24.08.0
Sentry Crash Report:
Attachments: New crash information added by DrKonqi

Description balkemal98 2021-09-02 16:54:47 UTC
Application: partitionmanager (21.08.1)

Qt Version: 5.15.2
Frameworks Version: 5.85.0
Operating System: Linux 5.13.13-arch1-1 x86_64
Windowing System: X11
Drkonqi Version: 5.22.5
Distribution: "Arch Linux"

-- Information about the crash:
I was shrinking the ntfs(c:) partition it crashed when it came to 100% and after the error the ntfs partition got corrupted

The reporter is unsure if this crash is reproducible.

-- Backtrace:
Application: KDE Disk Bölümü Yöneticisi (partitionmanager), signal: Segmentation fault

[KCrash Handler]
#4  0x00007f69c5eea0c0 in FileSystem::sectorsUsed() const () from /usr/lib/libkpmcore.so.11
#5  0x00007f69c5f63a8d in PartWidget::paintEvent(QPaintEvent*) () from /usr/lib/libkpmcore.so.11
#6  0x00007f69c531d0be in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#7  0x00007f69c52d9d62 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#8  0x00007f69c48043ba in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#9  0x00007f69c5314cf8 in QWidgetPrivate::sendPaintEvent(QRegion const&) () from /usr/lib/libQt5Widgets.so.5
#10 0x00007f69c531555c in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#11 0x00007f69c5316a10 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#12 0x00007f69c531526d in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#13 0x00007f69c5316a10 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#14 0x00007f69c5316823 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#15 0x00007f69c531526d in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#16 0x00007f69c5316a10 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#17 0x00007f69c5316823 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#18 0x00007f69c5316823 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#19 0x00007f69c5316823 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#20 0x00007f69c5316823 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#21 0x00007f69c5316823 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#22 0x00007f69c5316823 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#23 0x00007f69c5316823 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#24 0x00007f69c531526d in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /usr/lib/libQt5Widgets.so.5
#25 0x00007f69c52eb278 in ?? () from /usr/lib/libQt5Widgets.so.5
#26 0x00007f69c531d829 in QWidget::event(QEvent*) () from /usr/lib/libQt5Widgets.so.5
#27 0x00007f69c5e57528 in KXmlGuiWindow::event(QEvent*) () from /usr/lib/libKF5XmlGui.so.5
#28 0x00007f69c52d9d62 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQt5Widgets.so.5
#29 0x00007f69c48043ba in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/libQt5Core.so.5
#30 0x00007f69c48074b9 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQt5Core.so.5
#31 0x00007f69c485d9b4 in ?? () from /usr/lib/libQt5Core.so.5
#32 0x00007f69c2ea410c in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#33 0x00007f69c2ef7ba9 in ?? () from /usr/lib/libglib-2.0.so.0
#34 0x00007f69c2ea1871 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#35 0x00007f69c485cfe6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#36 0x00007f69c4802d2c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQt5Core.so.5
#37 0x00007f69c480b294 in QCoreApplication::exec() () from /usr/lib/libQt5Core.so.5
#38 0x0000556674d65826 in main ()
[Inferior 1 (process 8690) detached]

Possible duplicates by query: bug 440137, bug 438516, bug 437297, bug 436863, bug 435915.

Reported using DrKonqi
Comment 1 Andrius Štikonas 2021-09-02 18:03:40 UTC
A bit hard to tell what is wrong without backtrace with debug symbols...

We had a similar crash before  in the same function (paintEvent) but that should be fixed now. And I thought we added all required guards.

It might also be that https://invent.kde.org/system/kpmcore/-/commit/00e6b77c29eb0b889b59917c988327f513956c0d fixes this.
Comment 2 Nando 2022-01-24 01:52:38 UTC
Created attachment 145828 [details]
New crash information added by DrKonqi

partitionmanager (20.12.3) using Qt 5.15.2

- What I was doing when the application crashed:

I wanted to shrink 2 ntfs partitions, app crashed when I hit APPLY

-- Backtrace (Reduced):
#4  0x00007f7d382c84a7 in PartWidget::paintEvent(QPaintEvent*) () from /lib/x86_64-linux-gnu/libkpmcore.so.10
#5  0x00007f7d37749d6e in QWidget::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#6  0x00007f7d37709173 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#7  0x00007f7d36c2c22a in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007f7d37741e3a in QWidgetPrivate::sendPaintEvent(QRegion const&) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
Comment 3 Andrius Štikonas 2023-11-25 21:21:17 UTC
*** Bug 477523 has been marked as a duplicate of this bug. ***
Comment 4 Andrius Štikonas 2023-11-25 21:21:23 UTC
*** Bug 470678 has been marked as a duplicate of this bug. ***
Comment 5 Andrius Štikonas 2023-12-28 21:21:16 UTC
*** Bug 451601 has been marked as a duplicate of this bug. ***
Comment 6 Andrius Štikonas 2023-12-28 21:21:39 UTC
*** Bug 466421 has been marked as a duplicate of this bug. ***
Comment 7 Andrius Štikonas 2023-12-28 21:21:59 UTC
*** Bug 472310 has been marked as a duplicate of this bug. ***
Comment 8 Andrius Štikonas 2023-12-28 21:22:02 UTC
*** Bug 469111 has been marked as a duplicate of this bug. ***
Comment 9 Andrius Štikonas 2023-12-28 21:22:06 UTC
*** Bug 462318 has been marked as a duplicate of this bug. ***
Comment 10 Sergiu Bivol 2024-01-03 14:59:12 UTC
Here is a recent backtrace for the same issue. It happened when applying a partition move, and it is reproducible 100% of the time.

Partition Manager 23.08.4
KDE Frameworks 5.113.0
Kubuntu 24.04

-- Backtrace:
Thread 1 "partitionmanage" received signal SIGSEGV, Segmentation fault.
0x00007ffff7f5b0d0 in PartWidget::paintEvent(QPaintEvent*) () from /lib/x86_64-linux-gnu/libkpmcore.so.12
+backtrace full
#0  0x00007ffff7f5b0d0 in PartWidget::paintEvent(QPaintEvent*) () from /lib/x86_64-linux-gnu/libkpmcore.so.12
No symbol table info available.
#1  0x00007ffff71b0f78 in QWidget::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#2  0x00007ffff716bce5 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#3  0x00007ffff64d6558 in QCoreApplication::notifyInternal2 (receiver=0x555555da0f90, event=0x7fffffffccf0) at kernel/qcoreapplication.cpp:1064
        selfRequired = true
        result = false
        cbdata = {0x555555da0f90, 0x7fffffffccf0, 0x7fffffffcc8f}
        d = <optimized out>
        threadData = 0x555555614fa0
        scopeLevelCounter = {threadData = 0x555555614fa0}
#4  0x00007ffff71a8c6e in QWidgetPrivate::sendPaintEvent(QRegion const&) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#5  0x00007ffff71a9629 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#6  0x00007ffff71aaa9d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#7  0x00007ffff71a9243 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#8  0x00007ffff71aaa9d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#9  0x00007ffff71a9243 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#10 0x00007ffff71aaa9d in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#11 0x00007ffff71aa8f0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#12 0x00007ffff71aa8f0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#13 0x00007ffff71a9243 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, QFlags<QWidgetPrivate::DrawWidgetFlag>, QPainter*, QWidgetRepaintManager*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#14 0x00007ffff717ddd8 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#15 0x00007ffff71b15ec in QWidget::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#16 0x00007ffff7e664ef in KXmlGuiWindow::event(QEvent*) () from /lib/x86_64-linux-gnu/libKF5XmlGui.so.5
No symbol table info available.
#17 0x00007ffff716bce5 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
No symbol table info available.
#18 0x00007ffff64d6558 in QCoreApplication::notifyInternal2 (receiver=0x5555557031a0, event=0x555555e50340) at kernel/qcoreapplication.cpp:1064
        selfRequired = true
        result = false
        cbdata = {0x5555557031a0, 0x555555e50340, 0x7fffffffddaf}
        d = <optimized out>
        threadData = 0x555555614fa0
        scopeLevelCounter = {threadData = 0x555555614fa0}
#19 0x00007ffff64d6772 in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1462
No locals.
#20 0x00007ffff64d9d7d in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x555555614fa0) at kernel/qcoreapplication.cpp:1821
        e = 0x555555e50340
        pe = <optimized out>
        r = <optimized out>
        relocker = <optimized out>
        event_deleter = {d = 0x555555e50340}
        locker = {_M_device = 0x555555614fd0, _M_owns = false}
        startOffset = 0
        i = @0x555555614fc4: 102
        cleanup = {receiver = 0x0, event_type = 0, data = 0x555555614fa0, exceptionCaught = true}
#21 0x00007ffff64da2fd in QCoreApplication::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>) at kernel/qcoreapplication.cpp:1680
        data = <optimized out>
#22 0x00007ffff6533eff in postEventSourceDispatch (s=0x5555556e1160) at kernel/qeventdispatcher_glib.cpp:277
        source = 0x5555556e1160
#23 0x00007ffff56ddb7c in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#24 0x00007ffff573952f in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#25 0x00007ffff56dbd70 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#26 0x00007ffff6533569 in QEventDispatcherGlib::processEvents (this=0x5555556e6740, flags=...) at kernel/qeventdispatcher_glib.cpp:423
        d = 0x5555556f2810
        canWait = <optimized out>
        savedFlags = {i = 0}
        result = <optimized out>
#27 0x00007ffff64d4ecb in QEventLoop::exec (this=this@entry=0x7fffffffe0c0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
        d = 0x555555a31130
        threadData = <optimized out>
        locker = {val = 93824993023560}
        ref = <optimized out>
        app = <optimized out>
#28 0x00007ffff64dd828 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
        threadData = 0x555555614fa0
        eventLoop = {<QObject> = {_vptr.QObject = 0x7ffff67698c8 <vtable for QEventLoop+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff66b0b00 <qt_meta_stringdata_QObject>, data = 0x7ffff66b09e0 <qt_meta_data_QObject>, static_metacall = 0x7ffff650f010 <QObject::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}, d_ptr = {d = 0x555555a31130}, static staticQtMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7ffff66b3aa0 <qt_meta_stringdata_Qt>, data = 0x7ffff66b0c20 <qt_meta_data_Qt>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}}, static staticMetaObject = {d = {superdata = {direct = 0x7ffff6761180 <QObject::staticMetaObject>}, stringdata = 0x7ffff66acca0 <qt_meta_stringdata_QEventLoop>, data = 0x7ffff66acc40 <qt_meta_data_QEventLoop>, static_metacall = 0x7ffff64d4bc0 <QEventLoop::qt_static_metacall(QObject*, QMetaObject::Call, int, void**)>, relatedMetaObjects = 0x0, extradata = 0x0}}}
        returnCode = <optimized out>
#29 0x00005555555865b3 in ?? ()
No symbol table info available.
#30 0x00007ffff5a280d0 in __libc_start_call_main (main=main@entry=0x555555585920, argc=argc@entry=1, argv=argv@entry=0x7fffffffe468) at ../sysdeps/nptl/libc_start_call_main.h:58
        self = <optimized out>
        result = <optimized out>
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140737488348264, -6011611584052671701, 0, 140737488348280, 93824992858968, 140737354125312, 6011611584976702251, 6011632981492419371}, mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x7fffffffe468, 0x1}, data = {prev = 0x0, cleanup = 0x0, canceltype = -7064}}}
        not_first_call = <optimized out>
#31 0x00007ffff5a28189 in __libc_start_main_impl (main=0x555555585920, argc=1, argv=0x7fffffffe468, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffe458) at ../csu/libc-start.c:360

+info registers
rax            0x555555eab020      93825002024992
rbx            0x555555da0f90      93825000935312
rcx            0x5401              21505
rdx            0x555555de8e01      93825001229825
rsi            0x1                 1
rdi            0x0                 0
rbp            0x7fffffffcb00      0x7fffffffcb00
rsp            0x7fffffffcad0      0x7fffffffcad0
r8             0x0                 0
r9             0x0                 0
r10            0x0                 0
r11            0x0                 0
r12            0x7fffffffccf0      140737488342256
r13            0x23d51e00          601169408
r14            0x555555613030      93824993013808
r15            0x411               1041
rip            0x7ffff7f5b0d0      0x7ffff7f5b0d0 <PartWidget::paintEvent(QPaintEvent*)+192>
eflags         0x10202             [ IF RF ]
cs             0x33                51
ss             0x2b                43
ds             0x0                 0
es             0x0                 0
fs             0x0                 0
gs             0x0                 0
fs_base        0x7ffff23c7e80      140737257438848
gs_base        0x0                 0

+x/16i $pc
=> 0x7ffff7f5b0d0 <_ZN10PartWidget10paintEventEP11QPaintEvent+192>: mov    (%rdi),%rax
   0x7ffff7f5b0d3 <_ZN10PartWidget10paintEventEP11QPaintEvent+195>: call   *0x178(%rax)
   0x7ffff7f5b0d9 <_ZN10PartWidget10paintEventEP11QPaintEvent+201>: lea    0x60(%rsp),%r14
   0x7ffff7f5b0de <_ZN10PartWidget10paintEventEP11QPaintEvent+206>: movslq %eax,%rdx
   0x7ffff7f5b0e1 <_ZN10PartWidget10paintEventEP11QPaintEvent+209>: mov    %rbx,%rsi
   0x7ffff7f5b0e4 <_ZN10PartWidget10paintEventEP11QPaintEvent+212>: shl    $0x4,%rdx
   0x7ffff7f5b0e8 <_ZN10PartWidget10paintEventEP11QPaintEvent+216>: mov    %r14,%rdi
   0x7ffff7f5b0eb <_ZN10PartWidget10paintEventEP11QPaintEvent+219>: add    0x40(%rbx),%rdx
   0x7ffff7f5b0ef <_ZN10PartWidget10paintEventEP11QPaintEvent+223>: call   0x7ffff7f595b0 <_ZNK10PartWidget11activeColorERK6QColor>
   0x7ffff7f5b0f4 <_ZN10PartWidget10paintEventEP11QPaintEvent+228>: mov    0x30(%rbx),%rax
   0x7ffff7f5b0f8 <_ZN10PartWidget10paintEventEP11QPaintEvent+232>: mov    0x38(%rax),%eax
   0x7ffff7f5b0fb <_ZN10PartWidget10paintEventEP11QPaintEvent+235>: test   $0x2,%al
   0x7ffff7f5b0fd <_ZN10PartWidget10paintEventEP11QPaintEvent+237>: jne    0x7ffff7f5b400 <_ZN10PartWidget10paintEventEP11QPaintEvent+1008>
   0x7ffff7f5b103 <_ZN10PartWidget10paintEventEP11QPaintEvent+243>: test   $0x8,%al
   0x7ffff7f5b105 <_ZN10PartWidget10paintEventEP11QPaintEvent+245>: je     0x7ffff7f5b320 <_ZN10PartWidget10paintEventEP11QPaintEvent+784>
   0x7ffff7f5b10b <_ZN10PartWidget10paintEventEP11QPaintEvent+251>: mov    0x28(%rbx),%rax

+info frame
Stack level 0, frame at 0x7fffffffcbb0:
 rip = 0x7ffff7f5b0d0 in PartWidget::paintEvent(QPaintEvent*); saved rip = 0x7ffff71b0f78
 called by frame at 0x7fffffffcc50
 Arglist at 0x7fffffffcac8, args:
 Locals at 0x7fffffffcac8, Previous frame's sp is 0x7fffffffcbb0
 Saved registers:
  rbx at 0x7fffffffcb78, rbp at 0x7fffffffcb80, r12 at 0x7fffffffcb88, r13 at 0x7fffffffcb90, r14 at 0x7fffffffcb98, r15 at 0x7fffffffcba0, rip at 0x7fffffffcba8
Comment 11 Sergiu Bivol 2024-01-03 15:06:45 UTC
Adding a bit more detail from the same backtrace:

#6  0x00007fde1763c0d0 in PartWidget::paintEvent (this=0x56141ec260c0) at /usr/src/kpmcore-23.08.4-0ubuntu1/src/gui/partwidget.cpp:99
        partitionCapacity = 458888921742462219
        usedPercentage = 0
        w = <optimized out>
        painter = {d_ptr = {d = 0x56141ead2c50}}
        base = {cspec = 366405224, ct = {argb = {alpha = 32734, red = 0, green = 64848, blue = 53793, pad = 32765}, ahsv = {alpha = 32734, hue = 0, saturation = 64848, value = 53793, pad = 32765}, acmyk = {alpha = 32734, cyan = 0, magenta = 64848, yellow = 53793, black = 32765}, ahsl = {alpha = 32734, hue = 0, saturation = 64848, lightness = 53793, pad = 32765}, argbExtended = {alphaF16 = 32734, redF16 = 0, greenF16 = 64848, blueF16 = 53793, pad = 32765}, array = {32734, 0, 64848, 53793, 32765}}}
        text = {d = 0x7ffdd221fe80}
        textRect = {x1 = -769524464, y1 = 32765, x2 = 377172317, y2 = 32734}
        boundingRect = <optimized out>
#7  0x00007fde167b0f78 in QWidget::event (this=0x56141ec260c0, event=0x7ffdd221fe80) at kernel/qwidget.cpp:9045
        d = <optimized out>
#8  0x00007fde1676bce5 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x56141ec260c0, e=0x7ffdd221fe80) at kernel/qapplication.cpp:3640
        consumed = false
        filtered = false
#9  0x00007fde15ad6558 in QCoreApplication::notifyInternal2 (receiver=0x56141ec260c0, event=0x7ffdd221fe80) at kernel/qcoreapplication.cpp:1064
        selfRequired = true
        result = false
        cbdata = {0x56141ec260c0, 0x7ffdd221fe80, 0x7ffdd221fe1f}
        d = <optimized out>
        threadData = 0x56141e51dfa0
        scopeLevelCounter = {threadData = 0x56141e51dfa0}
#10 0x00007fde15ad6792 in QCoreApplication::sendSpontaneousEvent (receiver=<optimized out>, event=<optimized out>) at kernel/qcoreapplication.cpp:1474
No locals.
#11 0x00007fde167a8c6e in QWidgetPrivate::sendPaintEvent (this=this@entry=0x56141ebe8120, toBePainted=...) at kernel/qwidget.cpp:5479
        q = 0x56141ec260c0
        e = {<QEvent> = {_vptr.QEvent = 0x7fde164dc298 <vtable for QPaintEvent+16>, static staticMetaObject = {d = {superdata = {direct = 0x0}, stringdata = 0x7fde15cad940 <qt_meta_stringdata_QEvent>, data = 0x7fde15cad380 <qt_meta_data_QEvent>, static_metacall = 0x0, relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 12, posted = 0, spont = 1, m_accept = 1, reserved = 0}, m_rect = {x1 = 0, y1 = 0, x2 = 29, y2 = 59}, m_region = {d = 0x56141ebbdf80}, m_erased = false}
#12 0x00007fde167a9629 in QWidgetPrivate::drawWidget (this=this@entry=0x56141ebe8120, pdev=pdev@entry=0x56141eb2eec8, rgn=..., offset=..., flags=flags@entry=..., sharedPainter=sharedPainter@entry=0x0, repaintManager=<optimized out>) at kernel/qwidget.cpp:5429
        paintEngine = <optimized out>
        skipPaintEvent = <optimized out>
        q = <optimized out>
        asRoot = <optimized out>
        onScreen = <optimized out>
        alsoOnScreen = false
        recursive = true
        alsoInvisible = false
        toBePainted = {d = 0x56141ebbdf80, static shared_empty = {ref = {atomic = {_q_value = std::atomic<int> = { -1 }}}, qt_rgn = 0x7fde164f4140 <qrp>}}
Comment 12 Andrius Štikonas 2024-01-03 21:58:17 UTC
Thanks, this is probably the most detailed backtrace so far
Comment 13 Andrius Štikonas 2024-01-03 22:05:50 UTC
(In reply to Sergiu Bivol from comment #11)
> Adding a bit more detail from the same backtrace:
> 
> #6  0x00007fde1763c0d0 in PartWidget::paintEvent (this=0x56141ec260c0) at
> /usr/src/kpmcore-23.08.4-0ubuntu1/src/gui/partwidget.cpp:99
>         partitionCapacity = 458888921742462219
>         usedPercentage = 0
>         w = <optimized out>
>         painter = {d_ptr = {d = 0x56141ead2c50}}
>         base = {cspec = 366405224, ct = {argb = {alpha = 32734, red = 0,
> green = 64848, blue = 53793, pad = 32765}, ahsv = {alpha = 32734, hue = 0,
> saturation = 64848, value = 53793, pad = 32765}, acmyk = {alpha = 32734,
> cyan = 0, magenta = 64848, yellow = 53793, black = 32765}, ahsl = {alpha =
> 32734, hue = 0, saturation = 64848, lightness = 53793, pad = 32765},
> argbExtended = {alphaF16 = 32734, redF16 = 0, greenF16 = 64848, blueF16 =
> 53793, pad = 32765}, array = {32734, 0, 64848, 53793, 32765}}}
>         text = {d = 0x7ffdd221fe80}
>         textRect = {x1 = -769524464, y1 = 32765, x2 = 377172317, y2 = 32734}
>         boundingRect = <optimized out>
> #7  0x00007fde167b0f78 in QWidget::event (this=0x56141ec260c0,
> event=0x7ffdd221fe80) at kernel/qwidget.cpp:9045
>         d = <optimized out>
> #8  0x00007fde1676bce5 in QApplicationPrivate::notify_helper
> (this=<optimized out>, receiver=0x56141ec260c0, e=0x7ffdd221fe80) at
> kernel/qapplication.cpp:3640
>         consumed = false
>         filtered = false
> #9  0x00007fde15ad6558 in QCoreApplication::notifyInternal2
> (receiver=0x56141ec260c0, event=0x7ffdd221fe80) at
> kernel/qcoreapplication.cpp:1064
>         selfRequired = true
>         result = false
>         cbdata = {0x56141ec260c0, 0x7ffdd221fe80, 0x7ffdd221fe1f}
>         d = <optimized out>
>         threadData = 0x56141e51dfa0
>         scopeLevelCounter = {threadData = 0x56141e51dfa0}
> #10 0x00007fde15ad6792 in QCoreApplication::sendSpontaneousEvent
> (receiver=<optimized out>, event=<optimized out>) at
> kernel/qcoreapplication.cpp:1474
> No locals.
> #11 0x00007fde167a8c6e in QWidgetPrivate::sendPaintEvent
> (this=this@entry=0x56141ebe8120, toBePainted=...) at kernel/qwidget.cpp:5479
>         q = 0x56141ec260c0
>         e = {<QEvent> = {_vptr.QEvent = 0x7fde164dc298 <vtable for
> QPaintEvent+16>, static staticMetaObject = {d = {superdata = {direct = 0x0},
> stringdata = 0x7fde15cad940 <qt_meta_stringdata_QEvent>, data =
> 0x7fde15cad380 <qt_meta_data_QEvent>, static_metacall = 0x0,
> relatedMetaObjects = 0x0, extradata = 0x0}}, d = 0x0, t = 12, posted = 0,
> spont = 1, m_accept = 1, reserved = 0}, m_rect = {x1 = 0, y1 = 0, x2 = 29,
> y2 = 59}, m_region = {d = 0x56141ebbdf80}, m_erased = false}
> #12 0x00007fde167a9629 in QWidgetPrivate::drawWidget
> (this=this@entry=0x56141ebe8120, pdev=pdev@entry=0x56141eb2eec8, rgn=...,
> offset=..., flags=flags@entry=..., sharedPainter=sharedPainter@entry=0x0,
> repaintManager=<optimized out>) at kernel/qwidget.cpp:5429
>         paintEngine = <optimized out>
>         skipPaintEvent = <optimized out>
>         q = <optimized out>
>         asRoot = <optimized out>
>         onScreen = <optimized out>
>         alsoOnScreen = false
>         recursive = true
>         alsoInvisible = false
>         toBePainted = {d = 0x56141ebbdf80, static shared_empty = {ref =
> {atomic = {_q_value = std::atomic<int> = { -1 }}}, qt_rgn = 0x7fde164f4140
> <qrp>}}

Any chance you could see value of partition()->fileSystem().type()) in gdb? 

It looks like something might be wrong here, but I don't understand what...
const QColor base = activeColor(m_fileSystemColorCode[ static_cast<int>(partition()->fileSystem().type()) ]);
Somehow array goes out of bounds?
Comment 14 Andrius Štikonas 2024-02-10 12:00:15 UTC
*** Bug 480472 has been marked as a duplicate of this bug. ***
Comment 15 Andrius Štikonas 2024-02-10 12:01:04 UTC
*** Bug 481117 has been marked as a duplicate of this bug. ***
Comment 16 Andrius Štikonas 2024-03-08 16:47:14 UTC
*** Bug 482896 has been marked as a duplicate of this bug. ***
Comment 17 Andrius Štikonas 2024-03-19 23:08:52 UTC
*** Bug 484028 has been marked as a duplicate of this bug. ***
Comment 18 Andrius Štikonas 2024-04-20 20:30:04 UTC
*** Bug 485862 has been marked as a duplicate of this bug. ***
Comment 19 Bug Janitor Service 2024-07-09 12:51:02 UTC
A possibly relevant merge request was started @ https://invent.kde.org/system/kpmcore/-/merge_requests/53
Comment 20 Thomas Bertels 2024-07-09 12:53:57 UTC
Git commit bfe349a8f813e0eae3aa75cc5f6678faff0acac3 by Thomas Bertels.
Committed on 09/07/2024 at 12:48.
Pushed by stikonas into branch 'master'.

Check if fileSystem pointer is nullptr before trying to read its type

M  +3    -0    src/core/partition.h
M  +1    -1    src/gui/partwidget.cpp

https://invent.kde.org/system/kpmcore/-/commit/bfe349a8f813e0eae3aa75cc5f6678faff0acac3
Comment 21 Andrius Štikonas 2024-07-09 17:57:28 UTC
Git commit c21838d233ce305094d91334e359cd4bcd824e99 by Andrius Štikonas, on behalf of Thomas Bertels.
Committed on 09/07/2024 at 17:57.
Pushed by stikonas into branch 'release/24.05'.

Check if fileSystem pointer is nullptr before trying to read its type

M  +3    -0    src/core/partition.h
M  +1    -1    src/gui/partwidget.cpp

https://invent.kde.org/system/kpmcore/-/commit/c21838d233ce305094d91334e359cd4bcd824e99
Comment 22 Andrius Štikonas 2024-08-18 19:17:46 UTC
*** Bug 491871 has been marked as a duplicate of this bug. ***