Bug 506418 - Crash when editing a transaction split
Summary: Crash when editing a transaction split
Status: RESOLVED WORKSFORME
Alias: None
Product: kmymoney
Classification: Applications
Component: general (other bugs)
Version First Reported In: 5.2.0
Platform: Other Linux
: NOR normal
Target Milestone: ---
Assignee: KMyMoney Devel Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-07-01 02:51 UTC by TraceyC
Modified: 2025-08-21 02:31 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description TraceyC 2025-07-01 02:51:09 UTC
SUMMARY
I was editing a split transaction when KMyMoney Crashed


STEPS TO REPRODUCE
1. Edit a split transaction
2. Change the sign of a couple of entered split rows

OBSERVED RESULT
Crash

EXPECTED RESULT
No crash

SOFTWARE/OS VERSIONS
Operating System: Solus 4.7
KDE Plasma Version: 6.4.80
KDE Frameworks Version: 6.16.0
Qt Version: 6.9.1
Kernel Version: 6.14.11-320.current (64-bit)
Graphics Platform: Wayland
Processors: 16 × 11th Gen Intel® Core™ i7-11800H @ 2.30GHz
Memory: 64 GiB of RAM (62.5 GiB usable)
Graphics Processor 1: Intel® UHD Graphics
Graphics Processor 2: NVIDIA GeForce RTX 3060 Laptop GPU


ADDITIONAL INFORMATION
I had been running kmymoney from command line and saw this


qt.qpa.wayland: Failed to create popup. Ensure popup  QWidgetWindow(0x5587b8377710, name="qtooltip_labelWindow") has a transientParent set.
qt.qpa.wayland: Failed to create popup. Ensure popup  QWidgetWindow(0x5587b7d6aeb0, name="qtooltip_labelWindow") has a transientParent set.
qt.qpa.wayland: Failed to create popup. Ensure popup  QWidgetWindow(0x5587b840ff80, name="qtooltip_labelWindow") has a transientParent set.
qt.qpa.wayland: Failed to create popup. Ensure popup  QWidgetWindow(0x5587b83ea390, name="qtooltip_labelWindow") has a transientParent set.
qt.qpa.wayland: Failed to create popup. Ensure popup  QWidgetWindow(0x5587b84aa510, name="qtooltip_labelWindow") has a transientParent set.
qt.qpa.wayland: Failed to create popup. Ensure popup  QWidgetWindow(0x5587b8428410, name="qtooltip_labelWindow") has a transientParent set.
qt.qpa.wayland: Failed to create popup. Ensure popup  QWidgetWindow(0x5587b7db3780, name="qtooltip_labelWindow") has a transientParent set.
qt.qpa.wayland: Failed to create popup. Ensure popup  QWidgetWindow(0x5587b8697b00, name="qtooltip_labelWindow") has a transientParent set.
qt.qpa.wayland: Failed to create popup. Ensure popup  QWidgetWindow(0x5587b8224a30, name="qtooltip_labelWindow") has a transientParent set.
double free or corruption (out)
[1]    308382 IOT instruction (core dumped)  kmymoney


The reason I had been trying to change the sign of some of the rows in the split was that they were automatically entered incorrectly. The credit card charge has 3 items, sales tax, and a discount. 

Entered item 1, which was determined to be a "deposit" which is incorrect, it should be "charge" but that can't be changed. 
Entered item 2, shown as "deposit"
Entered item 3, shown as "deposit", which makes the total so far greater than the charge (overassigned)
Went to enter the sales tax, this shows incorrectly as Payment, which I realized after I entered the line item. I re-edited the line item, and that's when the crash happened.
Comment 1 TraceyC 2025-07-01 02:51:40 UTC
Backtrace

]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
Core was generated by `/usr/bin/kmymoney'.
Program terminated with signal SIGABRT, Aborted.
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=6, no_tid=0) at pthread_kill.c:44

warning: 44     pthread_kill.c: No such file or directory
[Current thread is 1 (Thread 0x7feaf88d2100 (LWP 308382))]
installed pretty printer for Alkimia
Function(s) ^std::(move|forward|as_const|(__)?addressof) will be skipped when stepping.
Function(s) ^std::(shared|unique)_ptr<.*>::(get|operator) will be skipped when stepping.
Function(s) ^std::(basic_string|vector|array|deque|(forward_)?list|(unordered_|flat_)?(multi)?(map|set)|span)<.*>::(c?r?(begin|end)|front|back|data|size|empty) will be skipped when stepping.
Function(s) ^std::(basic_string|vector|array|deque|span)<.*>::operator.] will be skipped when stepping.
(gdb) bt
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=6, no_tid=0) at pthread_kill.c:44
#1  __pthread_kill_internal (threadid=<optimized out>, signo=6) at pthread_kill.c:89
#2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at pthread_kill.c:100
#3  0x00007feb11c47326 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4  0x00007feb11c29286 in __GI_abort () at abort.c:73
#5  0x00007feb11c2a470 in __libc_message_impl (fmt=fmt@entry=0x7feb11dd1dad "%s\n") at ../sysdeps/posix/libc_fatal.c:134
#6  0x00007feb11cb2b35 in malloc_printerr (str=str@entry=0x7feb11dd5018 "double free or corruption (out)") at malloc.c:5832
#7  0x00007feb11cb4fd0 in _int_free_merge_chunk (av=0x7feb11e0aac0 <main_arena>, p=0x7ffef85ea960, size=140733065374240) at malloc.c:4721
#8  0x00007feb11cb511d in _int_free_chunk (av=0x7feb11e0aac0 <main_arena>, p=<optimized out>, size=<optimized out>, have_lock=<optimized out>) at malloc.c:4670
#9  0x00007feb11cb81c0 in _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at malloc.c:4702
#10 __GI___libc_free (mem=<optimized out>) at malloc.c:3479
#11 0x00007feb1273c3a1 in QObjectPrivate::deleteChildren (this=0x5587b8e5b5f0) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qobject.cpp:2223
#12 0x00007feb1389df29 in QWidget::~QWidget (this=0x5587b843b010) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/kernel/qwidget.cpp:1569
#13 0x0000558782a19262 in TransactionEditorBase::~TransactionEditorBase (this=0x5587b843b010)
    at /home/build/YPKG/root/kmymoney/build/kmymoney-5.2.0/kmymoney/views/transactioneditorbase.cpp:88
#14 NewTransactionEditor::~NewTransactionEditor (this=0x5587b843b010) at /home/build/YPKG/root/kmymoney/build/kmymoney-5.2.0/kmymoney/views/newtransactioneditor.cpp:1278
#15 NewTransactionEditor::~NewTransactionEditor (this=0x5587b843b010) at /home/build/YPKG/root/kmymoney/build/kmymoney-5.2.0/kmymoney/views/newtransactioneditor.cpp:1277
#16 0x00007feb1273d731 in QObject::event (this=0x5587b843b010, e=0x5587b9200de0) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qobject.cpp:1416
#17 0x00007feb138b516c in QWidget::event (this=<optimized out>, event=<optimized out>)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/kernel/qwidget.cpp:9426
#18 0x00007feb1384e2f0 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5587b843b010, e=0x5587b9200de0)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/kernel/qapplication.cpp:3303
#19 0x00007feb1384f57d in QApplication::notify (this=<optimized out>, receiver=0x5587b843b010, e=0x5587b9200de0)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/kernel/qapplication.cpp:2695
#20 0x00007feb126e3a79 in QCoreApplication::notifyInternal2 (receiver=0x5587b843b010, event=<optimized out>)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qcoreapplication.cpp:1106
#21 QCoreApplication::sendEvent (receiver=0x5587b843b010, event=<optimized out>)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qcoreapplication.cpp:1546
#22 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5587b0b34940)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qcoreapplication.cpp:1879
#23 0x00007feb12a00c9f in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qcoreapplication.cpp:1733
#24 postEventSourceDispatch (s=0x5587b0b9cf30) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#25 0x00007feb0599a43b in g_main_dispatch (context=0x7feaec000f00) at ../glib/gmain.c:3398
#26 0x00007feb0599b490 in g_main_context_dispatch_unlocked (context=0x7feaec000f00) at ../glib/gmain.c:4249
#27 g_main_context_iterate_unlocked (context=context@entry=0x7feaec000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4314
#28 0x00007feb0599b578 in g_main_context_iteration (context=0x7feaec000f00, may_block=1) at ../glib/gmain.c:4379
#29 0x00007feb12a0044e in QEventDispatcherGlib::processEvents (this=0x5587b0b9d0c0, flags=...)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#30 0x00007feb126ee396 in QEventLoop::processEvents (this=0x7ffef85ea840, flags=...)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qeventloop.cpp:104
#31 QEventLoop::exec (this=0x7ffef85ea840, flags=...) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qeventloop.cpp:186
#32 0x00007feb13b2c2e3 in QDialog::exec (this=0x5587b84cc120) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/dialogs/qdialog.cpp:575
#33 0x0000558782a14c5c in NewTransactionEditor::Private::editSplits (this=0x5587b8517f40)
    at /home/build/YPKG/root/kmymoney/build/kmymoney-5.2.0/kmymoney/views/newtransactioneditor.cpp:765
#34 0x00007feb12747cb4 in QtPrivate::QSlotObjectBase::call (this=0x5587b899c290, r=0x5587b843b010, a=0x7ffef85eab38)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qobjectdefs_impl.h:461
#35 doActivate<false> (sender=0x5587b7ef9c30, signal_index=21, argv=0x7ffef85eab38)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qobject.cpp:4146
#36 0x00007feb12747cb4 in QtPrivate::QSlotObjectBase::call (this=0x5587b807a1f0, r=0x5587b7ef9c30, a=0x7ffef85eac50)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qobjectdefs_impl.h:461
#37 doActivate<false> (sender=0x5587b8076c60, signal_index=7, argv=0x7ffef85eac50) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qobject.cpp:4146
#38 0x00007feb13323099 in QMetaObject::activate<void, bool> (sender=<optimized out>, mo=<optimized out>, local_signal_index=<optimized out>, ret=<optimized out>, args=<optimized out>)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qobjectdefs.h:306
#39 QAction::triggered (this=<optimized out>, _t1=<optimized out>) at src/gui/Gui_autogen/include/moc_qaction.cpp:372
#40 0x00007feb13323099 in QAction::activate () at /usr/lib/libQt6Gui.so.6
#41 0x00007feb1399c41f in QAbstractButtonPrivate::click (this=0x5587b8077d50)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/widgets/qabstractbutton.cpp:364
--Type <RET> for more, q to quit, c to continue without paging-- c
#42 0x00007feb1399e023 in QAbstractButton::mouseReleaseEvent (this=0x5587b8072180, e=0x7ffef85eb1e0)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/widgets/qabstractbutton.cpp:976
#43 0x00007feb13b0717d in QToolButton::mouseReleaseEvent (this=0x5587b8072180, e=0x7ffef85eb1e0)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/widgets/qtoolbutton.cpp:588
#44 0x00007feb138b4cc5 in QWidget::event (this=0x4b49e, event=0x4b49e) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/kernel/qwidget.cpp:8987
#45 0x00007feb13b082f3 in QToolButton::event (this=0x4b49e, event=0x4b49e) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/widgets/qtoolbutton.cpp:1003
#46 0x00007feb1384e2f0 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5587b8072180, e=0x7ffef85eb1e0)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/kernel/qapplication.cpp:3303
#47 0x00007feb13851247 in QApplication::notify (this=<optimized out>, receiver=0x5587b8072180, e=0x7ffef85eb1e0)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/kernel/qapplication.cpp:2780
#48 0x00007feb126e3284 in QCoreApplication::notifyInternal2 (receiver=0x5587b8072180, event=0x7ffef85eb1e0)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qcoreapplication.cpp:1106
#49 QCoreApplication::sendSpontaneousEvent (receiver=0x5587b8072180, event=0x7ffef85eb1e0)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qcoreapplication.cpp:1560
#50 0x00007feb1384eaf1 in QApplicationPrivate::sendMouseEvent
    (receiver=0x5587b8072180, event=0x7ffef85eb1e0, alienWidget=0x5587b8072180, nativeWidget=0x5587b100e3b0, buttonDown=0x7feb13d92dd8 <qt_button_down>, lastMouseReceiver=..., spontaneous=<optimized out>, onlyDispatchEnterLeave=<optimized out>) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/kernel/qapplication.cpp:2361
#51 0x00007feb138d0dba in QWidgetWindow::handleMouseEvent (this=0x5587b0ebaca0, event=0x7ffef85eb580)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/kernel/qwidgetwindow.cpp:669
#52 QWidgetWindow::event (this=0x5587b0ebaca0, event=0x7ffef85eb580) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/kernel/qwidgetwindow.cpp:292
#53 0x00007feb1384e2f0 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5587b0ebaca0, e=0x7ffef85eb580)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/kernel/qapplication.cpp:3303
#54 0x00007feb1384f57d in QApplication::notify (this=<optimized out>, receiver=0x5587b0ebaca0, e=0x7ffef85eb580)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/kernel/qapplication.cpp:2695
#55 0x00007feb126e3284 in QCoreApplication::notifyInternal2 (receiver=0x5587b0ebaca0, event=0x7ffef85eb580)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qcoreapplication.cpp:1106
#56 QCoreApplication::sendSpontaneousEvent (receiver=0x5587b0ebaca0, event=0x7ffef85eb580)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qcoreapplication.cpp:1560
#57 0x00007feb12eccf91 in QGuiApplicationPrivate::processMouseEvent (e=0x5587b727eb70)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/gui/kernel/qguiapplication.cpp:2476
#58 0x00007feb12f4abfc in QWindowSystemInterface::sendWindowSystemEvents (flags=...)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/gui/kernel/qwindowsysteminterface.cpp:1113
#59 0x00007feb12f4a78a in QWindowSystemInterface::flushWindowSystemEvents (flags=...)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/gui/kernel/qwindowsysteminterface.cpp:1082
#60 0x00007feb1273d93a in QObject::event (this=0x5587b0ba0e40, e=0x7feae40049d0) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qobject.cpp:1431
#61 0x00007feb1384e2f0 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5587b0ba0e40, e=0x7feae40049d0)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/kernel/qapplication.cpp:3303
#62 0x00007feb1384f57d in QApplication::notify (this=<optimized out>, receiver=0x5587b0ba0e40, e=0x7feae40049d0)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/widgets/kernel/qapplication.cpp:2695
#63 0x00007feb126e3a79 in QCoreApplication::notifyInternal2 (receiver=0x5587b0ba0e40, event=<optimized out>)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qcoreapplication.cpp:1106
#64 QCoreApplication::sendEvent (receiver=0x5587b0ba0e40, event=<optimized out>)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qcoreapplication.cpp:1546
#65 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x5587b0b34940)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qcoreapplication.cpp:1879
#66 0x00007feb12a00c9f in QCoreApplication::sendPostedEvents (receiver=0x0, event_type=0)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qcoreapplication.cpp:1733
#67 postEventSourceDispatch (s=0x5587b0b9cf30) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qeventdispatcher_glib.cpp:246
#68 0x00007feb0599a43b in g_main_dispatch (context=0x7feaec000f00) at ../glib/gmain.c:3398
#69 0x00007feb0599b490 in g_main_context_dispatch_unlocked (context=0x7feaec000f00) at ../glib/gmain.c:4249
#70 g_main_context_iterate_unlocked (context=context@entry=0x7feaec000f00, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4314
#71 0x00007feb0599b578 in g_main_context_iteration (context=0x7feaec000f00, may_block=1) at ../glib/gmain.c:4379
#72 0x00007feb12a0044e in QEventDispatcherGlib::processEvents (this=0x5587b0b9d0c0, flags=...)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qeventdispatcher_glib.cpp:399
#73 0x00007feb126ee396 in QEventLoop::processEvents (this=0x7ffef85ebcf0, flags=...)
    at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qeventloop.cpp:104
#74 QEventLoop::exec (this=0x7ffef85ebcf0, flags=...) at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qeventloop.cpp:186
#75 0x00007feb126e2d39 in QCoreApplication::exec () at /home/build/YPKG/root/qt6-base/build/qtbase-everywhere-src-6.9.1/src/corelib/kernel/qcoreapplication.cpp:1449
#76 0x00005587828d430c in runKMyMoney (a=<optimized out>, file=<optimized out>, noFile=false) at /home/build/YPKG/root/kmymoney/build/kmymoney-5.2.0/kmymoney/main.cpp:366
#77 0x00005587828d300b in main (argc=<optimized out>, argv=<optimized out>) at /home/build/YPKG/root/kmymoney/build/kmymoney-5.2.0/kmymoney/main.cpp:273
(gdb)
Comment 2 Jack 2025-08-14 23:33:59 UTC
Does this still happen with 5.2.1?
Comment 3 TraceyC 2025-08-21 02:31:02 UTC
I'm no longer able to reproduce the crash. Thanks!