Bug 468633 - segfault when hidding reconciliated transacion
Summary: segfault when hidding reconciliated transacion
Status: RESOLVED FIXED
Alias: None
Product: kmymoney
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR crash
Target Milestone: ---
Assignee: KMyMoney Devel Mailing List
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2023-04-17 21:04 UTC by Jonatan Cloutier
Modified: 2023-04-22 03:00 UTC (History)
0 users

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jonatan Cloutier 2023-04-17 21:04:55 UTC
Application: kmymoney (5.1.80-)

Qt Version: 5.15.8
Frameworks Version: 5.104.0
Operating System: Linux 6.2.8-arch1-1 x86_64
Windowing System: X11
Distribution: "Arch Linux"
DrKonqi: 5.27.3 [KCrashBackend]

-- Information about the crash:
When on the ledger with reconciled. If I got on the view menu and select "hide reconcilated transaction" (my own translation) KMyMoney crash.

This is using the master from today

The crash can be reproduced every time.

-- Backtrace:
Application: KMyMoney (kmymoney), signal: Segmentation fault

[KCrash Handler]
#4  0x000055ec99af17d8 in LedgerViewSettings::hideTransactionsBefore() const (this=0x55eca32c16a0) at /build/kmymoney/views/ledgerviewsettings.cpp:130
#5  0x000055ec99add021 in <lambda()>::operator() (__closure=0x55eca2f01760, __closure=0x55eca2f01760) at /build/kmymoney/views/ledgerviewpage.cpp:126
#6  QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, LedgerViewPage::initModel()::<lambda()> >::call (arg=<optimized out>, f=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:146
#7  QtPrivate::Functor<LedgerViewPage::initModel()::<lambda()>, 0>::call<QtPrivate::List<>, void> (arg=<optimized out>, f=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:256
#8  QtPrivate::QFunctorSlotObject<LedgerViewPage::initModel()::<lambda()>, 0, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x55eca2f01750, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qobjectdefs_impl.h:443
#9  0x00007f4b430bea71 in  () at /usr/lib/libQt5Core.so.5
#10 0x00007f4b430bea71 in  () at /usr/lib/libQt5Core.so.5
#11 0x00007f4b430c0fcf in QTimer::timeout(QTimer::QPrivateSignal) () at /usr/lib/libQt5Core.so.5
#12 0x00007f4b430b1b56 in QObject::event(QEvent*) () at /usr/lib/libQt5Core.so.5
#13 0x00007f4b43d78b5c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /usr/lib/libQt5Widgets.so.5
#14 0x00007f4b4308df48 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () at /usr/lib/libQt5Core.so.5
#15 0x00007f4b430d84b3 in QTimerInfoList::activateTimers() () at /usr/lib/libQt5Core.so.5
#16 0x00007f4b430d8aaa in  () at /usr/lib/libQt5Core.so.5
#17 0x00007f4b40b0f53b in g_main_dispatch (context=0x7f4b20000ee0) at ../glib/glib/gmain.c:3460
#18 g_main_context_dispatch (context=0x7f4b20000ee0) at ../glib/glib/gmain.c:4200
#19 0x00007f4b40b6c219 in g_main_context_iterate.constprop.0 (context=0x7f4b20000ee0, block=1, dispatch=1, self=<optimized out>) at ../glib/glib/gmain.c:4276
#20 0x00007f4b40b0e1a2 in g_main_context_iteration (context=0x7f4b20000ee0, may_block=1) at ../glib/glib/gmain.c:4343
#21 0x00007f4b430d8c6c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#22 0x00007f4b430866ec in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /usr/lib/libQt5Core.so.5
#23 0x00007f4b43091219 in QCoreApplication::exec() () at /usr/lib/libQt5Core.so.5
#24 0x000055ec9982443d in runKMyMoney(QUrl const&, bool, QApplication&) (file=..., noFile=noFile@entry=false, a=...) at /build/kmymoney/main.cpp:384
#25 0x000055ec9981e6a7 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /build/kmymoney/main.cpp:293
[Inferior 1 (process 3813812) detached]

Reported using DrKonqi
Comment 1 Jack 2023-04-17 23:28:27 UTC
I tested with a build from master from several days ago and had some very strange results.  In one investment account, Ctl-R (do not show reconciled transactions) had no effect - reconciled transactions remained displayed, and no crash.  In the brokerage account for that investment account, Ctl-R did what it is supposed to do, still no crash.  I then tested in a cash account and got a crash.  I just updated git and am building again and will test with a wider variety of accounts.
Comment 2 Jack 2023-04-17 23:50:42 UTC
I confirm the crash, now in all accounts I've tested.  BT looks the same as posted above.  I'll try a git bisect, but probably not until tomorrow.
Confirmed with kmymoney 5.1.80-7f771f516.
Comment 3 Thomas Baumgart 2023-04-19 10:27:53 UTC
Git commit 60f113119ff2a080037ee6668c5764d8425daeb0 by Thomas Baumgart.
Committed on 19/04/2023 at 10:27.
Pushed by tbaumgart into branch 'master'.

Fix crash when changing option
FIXED-IN: 5.2

M  +13   -7    kmymoney/models/specialledgeritemfilter.cpp
M  +5    -0    kmymoney/models/specialledgeritemfilter.h
M  +5    -4    kmymoney/views/ledgerviewpage.cpp

https://invent.kde.org/office/kmymoney/commit/60f113119ff2a080037ee6668c5764d8425daeb0
Comment 4 Jonatan Cloutier 2023-04-22 02:20:49 UTC
I confirm it's fixed, thank you