Summary: | KMyMoney crash after configure toolbar then select new view | ||
---|---|---|---|
Product: | [Applications] kmymoney | Reporter: | Paul Worrall <p.r.worrall> |
Component: | general | Assignee: | KMyMoney Devel Mailing List <kmymoney-devel> |
Status: | REPORTED --- | ||
Severity: | crash | CC: | nico.kruber |
Priority: | NOR | Keywords: | drkonqi |
Version: | 5.1.2 | ||
Target Milestone: | --- | ||
Platform: | Neon | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Attachments: | New crash information added by DrKonqi |
Description
Paul Worrall
2021-08-31 07:52:52 UTC
Also reproducible on current v5.1.80 under KDE Neon Unstable Also crashes after: 1. Configure Toolbar 2. Run Reconcile Wizard Application: KMyMoney (kmymoney), signal: Segmentation fault [New LWP 5555] [New LWP 5560] [New LWP 5561] [New LWP 5563] [New LWP 5564] [New LWP 5565] [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". 0x00007ff2c4ec299f in __GI___poll (fds=0x7fff887f3138, nfds=1, timeout=1000) at ../sysdeps/unix/sysv/linux/poll.c:29 __preamble__ [Current thread is 1 (Thread 0x7ff2c9be4ec0 (LWP 5493))] Thread 7 (Thread 0x7ff256bfe700 (LWP 5565)): #0 0x00007ff2c25d825d in g_source_ref () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #1 0x00007ff2c25d8328 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007ff2c25d9cbf in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007ff2c25da312 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #4 0x00007ff2c25da4a3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #5 0x00007ff2c56ef65b in QEventDispatcherGlib::processEvents (this=0x7ff248000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #6 0x00007ff2c569387b in QEventLoop::exec (this=this@entry=0x7ff256bfdbe0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #7 0x00007ff2c54ad442 in QThread::exec (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #8 0x00007ff2c54ae623 in QThreadPrivate::start (arg=0x55a3b44aee60) at thread/qthread_unix.cpp:331 #9 0x00007ff2c3890609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #10 0x00007ff2c4ecf133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 6 (Thread 0x7ff2573ff700 (LWP 5564)): #0 0x00007ff2c4ec299f in __GI___poll (fds=0x7ff250004e60, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007ff2c25da36e in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007ff2c25da4a3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007ff2c56ef65b in QEventDispatcherGlib::processEvents (this=0x7ff250000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #4 0x00007ff2c569387b in QEventLoop::exec (this=this@entry=0x7ff2573febe0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #5 0x00007ff2c54ad442 in QThread::exec (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #6 0x00007ff2c54ae623 in QThreadPrivate::start (arg=0x55a3b4472b50) at thread/qthread_unix.cpp:331 #7 0x00007ff2c3890609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #8 0x00007ff2c4ecf133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 5 (Thread 0x7ff29d80f700 (LWP 5563)): #0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x7ff2c91319b4) at ../sysdeps/nptl/futex-internal.h:183 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55a3b473bcd0, cond=0x7ff2c9131988) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=0x7ff2c9131988, mutex=0x55a3b473bcd0) at pthread_cond_wait.c:647 #3 0x00007ff2c51e8e30 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /lib/x86_64-linux-gnu/libstdc++.so.6 #4 0x00007ff2c86c2d01 in ?? () from /lib/x86_64-linux-gnu/libQt5WebKit.so.5 #5 0x00007ff2c86c2e1f in ?? () from /lib/x86_64-linux-gnu/libQt5WebKit.so.5 #6 0x00007ff2c51eede4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6 #7 0x00007ff2c3890609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #8 0x00007ff2c4ecf133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 4 (Thread 0x7ff29e847700 (LWP 5561)): #0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55a3b44e4968) at ../sysdeps/nptl/futex-internal.h:183 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55a3b44e4918, cond=0x55a3b44e4940) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=0x55a3b44e4940, mutex=0x55a3b44e4918) at pthread_cond_wait.c:647 #3 0x00007ff2b4c1d5eb in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so #4 0x00007ff2b4c1d1eb in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so #5 0x00007ff2c3890609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #6 0x00007ff2c4ecf133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 3 (Thread 0x7ff2b49ef700 (LWP 5560)): #0 futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x55a3b45f8eec) at ../sysdeps/nptl/futex-internal.h:183 #1 __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x55a3b45f8e98, cond=0x55a3b45f8ec0) at pthread_cond_wait.c:508 #2 __pthread_cond_wait (cond=0x55a3b45f8ec0, mutex=0x55a3b45f8e98) at pthread_cond_wait.c:647 #3 0x00007ff2b4c1d5eb in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so #4 0x00007ff2b4c1d1eb in ?? () from /usr/lib/x86_64-linux-gnu/dri/r600_dri.so #5 0x00007ff2c3890609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #6 0x00007ff2c4ecf133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 2 (Thread 0x7ff2bd767700 (LWP 5555)): #0 0x00007ff2c4ec299f in __GI___poll (fds=0x7ff2b0013f50, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29 #1 0x00007ff2c25da36e in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #2 0x00007ff2c25da4a3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #3 0x00007ff2c56ef65b in QEventDispatcherGlib::processEvents (this=0x7ff2b0000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425 #4 0x00007ff2c569387b in QEventLoop::exec (this=this@entry=0x7ff2bd766bb0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #5 0x00007ff2c54ad442 in QThread::exec (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #6 0x00007ff2c5950f4b in ?? () from /lib/x86_64-linux-gnu/libQt5DBus.so.5 #7 0x00007ff2c54ae623 in QThreadPrivate::start (arg=0x7ff2c59d4d80) at thread/qthread_unix.cpp:331 #8 0x00007ff2c3890609 in start_thread (arg=<optimized out>) at pthread_create.c:477 #9 0x00007ff2c4ecf133 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95 Thread 1 (Thread 0x7ff2c9be4ec0 (LWP 5493)): [KCrash Handler] #4 0x00007ff2c92e1c35 in QWidget::testAttribute_helper (this=0x55a3b47b9ec0, attribute=attribute@entry=Qt::WA_ForceDisabled) at kernel/qwidget.cpp:11144 #5 0x00007ff2c92ea040 in QWidget::testAttribute (attribute=Qt::WA_ForceDisabled, this=0x55a3b47b9ec0) at ../../include/QtWidgets/../../src/widgets/kernel/qwidget.h:884 #6 QWidget::setAttribute (this=0x55a3b47b9ec0, attribute=attribute@entry=Qt::WA_ForceDisabled, on=false) at kernel/qwidget.cpp:10926 #7 0x00007ff2c92f3932 in QWidget::setEnabled (this=<optimized out>, enable=enable@entry=true) at kernel/qwidget.cpp:3217 #8 0x000055a3b309da73 in KGlobalLedgerView::updateActions (this=0x55a3b47e5fc0, obj=...) at ./kmymoney/views/kgloballedgerview.cpp:227 #9 0x000055a3b30eb78a in KMyMoneyView::slotObjectSelected (this=0x55a3b47be720, obj=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h:236 #10 0x000055a3b30ee3ed in KMyMoneyView::slotSelectByObject (this=0x55a3b47be720, obj=..., intent=<optimized out>) at ./kmymoney/views/kmymoneyview.cpp:674 #11 0x00007ff2c56cbdfe in QtPrivate::QSlotObjectBase::call (a=0x7fff887f4060, r=0x55a3b47be720, this=0x55a3b48efc70) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #12 doActivate<false> (sender=0x55a3b47e5fc0, signal_index=7, argv=0x7fff887f4060) at kernel/qobject.cpp:3886 #13 0x00007ff2c56c51c7 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7ff2ca819d00 <KMyMoneyViewBase::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff887f4060) at kernel/qobject.cpp:3946 #14 0x00007ff2ca7b55a7 in KMyMoneyViewBase::selectByObject (this=<optimized out>, _t1=..., _t2=<optimized out>) at ./obj-x86_64-linux-gnu/kmymoney/widgets/kmm_widgets_autogen/EWIEGA46WW/moc_kmymoneyviewbase.cpp:172 #15 0x000055a3b30a36e4 in KGlobalLedgerView::slotSelectAccount (this=0x55a3b47e5fc0, id=..., transactionId=...) at ./kmymoney/views/kgloballedgerview.cpp:741 #16 0x000055a3b30a46e1 in KGlobalLedgerView::slotSelectAccount (this=<optimized out>, id=...) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qarraydata.h:257 #17 0x000055a3b30a488c in KGlobalLedgerView::slotSetReconcileAccount (this=0x55a3b47e5fc0, acc=..., reconciliationDate=..., endingBalance=...) at ./kmymoney/views/kgloballedgerview.cpp:489 #18 0x000055a3b30a684b in KGlobalLedgerView::slotContinueReconciliation (this=0x55a3b47e5fc0) at ./kmymoney/views/kgloballedgerview.cpp:592 #19 0x000055a3b30ee3bc in KMyMoneyView::slotSelectByObject (this=0x55a3b47be720, obj=..., intent=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:102 #20 0x00007ff2c56cbdfe in QtPrivate::QSlotObjectBase::call (a=0x7fff887f44d0, r=0x55a3b47be720, this=0x55a3b488ec70) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #21 doActivate<false> (sender=0x55a3b48f7380, signal_index=7, argv=0x7fff887f44d0) at kernel/qobject.cpp:3886 #22 0x00007ff2c56c51c7 in QMetaObject::activate (sender=sender@entry=0x55a3b48f7380, m=m@entry=0x7ff2ca819d00 <KMyMoneyViewBase::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff887f44d0) at kernel/qobject.cpp:3946 #23 0x00007ff2ca7b55a7 in KMyMoneyViewBase::selectByObject (this=this@entry=0x55a3b48f7380, _t1=..., _t2=<optimized out>, _t2@entry=eView::Intent::FinishEnteringOverdueScheduledTransactions) at ./obj-x86_64-linux-gnu/kmymoney/widgets/kmm_widgets_autogen/EWIEGA46WW/moc_kmymoneyviewbase.cpp:172 #24 0x000055a3b310395b in KScheduledView::slotEnterOverdueSchedules (this=0x55a3b48f7380, acc=...) at ./kmymoney/views/kscheduledview.cpp:230 #25 0x000055a3b30ee5b6 in KMyMoneyView::slotSelectByObject (this=0x55a3b47be720, obj=..., intent=<optimized out>) at /usr/include/x86_64-linux-gnu/qt5/QtCore/qrefcount.h:102 #26 0x00007ff2c56cbdfe in QtPrivate::QSlotObjectBase::call (a=0x7fff887f4710, r=0x55a3b47be720, this=0x55a3b48efc70) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #27 doActivate<false> (sender=0x55a3b47e5fc0, signal_index=7, argv=0x7fff887f4710) at kernel/qobject.cpp:3886 #28 0x00007ff2c56c51c7 in QMetaObject::activate (sender=<optimized out>, m=m@entry=0x7ff2ca819d00 <KMyMoneyViewBase::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7fff887f4710) at kernel/qobject.cpp:3946 #29 0x00007ff2ca7b55a7 in KMyMoneyViewBase::selectByObject (this=<optimized out>, _t1=..., _t2=<optimized out>) at ./obj-x86_64-linux-gnu/kmymoney/widgets/kmm_widgets_autogen/EWIEGA46WW/moc_kmymoneyviewbase.cpp:172 #30 0x000055a3b309c1d3 in KGlobalLedgerView::slotStartReconciliation (this=0x55a3b47e5fc0) at ./kmymoney/views/kgloballedgerview.cpp:1954 #31 0x00007ff2c56cbdfe in QtPrivate::QSlotObjectBase::call (a=0x7fff887f4870, r=0x55a3b47e5fc0, this=0x55a3b4720dd0) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398 #32 doActivate<false> (sender=0x55a3b442f920, signal_index=4, argv=0x7fff887f4870) at kernel/qobject.cpp:3886 #33 0x00007ff2c56c51c7 in QMetaObject::activate (sender=sender@entry=0x55a3b442f920, m=m@entry=0x7ff2c97c91c0 <QAction::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7fff887f4870) at kernel/qobject.cpp:3946 #34 0x00007ff2c92af8e6 in QAction::triggered (this=this@entry=0x55a3b442f920, _t1=<optimized out>) at .moc/moc_qaction.cpp:376 #35 0x00007ff2c92b1fb8 in QAction::activate (this=0x55a3b442f920, event=<optimized out>) at kernel/qaction.cpp:1161 #36 0x00007ff2c93afa90 in QAbstractButtonPrivate::click (this=0x55a3bc6df080) at widgets/qabstractbutton.cpp:398 #37 0x00007ff2c93afcb5 in QAbstractButton::mouseReleaseEvent (this=0x55a3bc7e4280, e=0x7fff887f4e10) at widgets/qabstractbutton.cpp:1044 #38 0x00007ff2c94a747e in QToolButton::mouseReleaseEvent (this=<optimized out>, e=<optimized out>) at widgets/qtoolbutton.cpp:622 #39 0x00007ff2c92f8d76 in QWidget::event (this=0x55a3bc7e4280, event=0x7fff887f4e10) at kernel/qwidget.cpp:8677 #40 0x00007ff2c93b0ee3 in QAbstractButton::event (this=this@entry=0x55a3bc7e4280, e=e@entry=0x7fff887f4e10) at widgets/qabstractbutton.cpp:1001 #41 0x00007ff2c94a7528 in QToolButton::event (this=0x55a3bc7e4280, event=0x7fff887f4e10) at widgets/qtoolbutton.cpp:1012 #42 0x00007ff2c92b5dc3 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55a3bc7e4280, e=0x7fff887f4e10) at kernel/qapplication.cpp:3637 #43 0x00007ff2c92bedc7 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3081 #44 0x00007ff2c5694d7a in QCoreApplication::notifyInternal2 (receiver=0x55a3bc7e4280, event=0x7fff887f4e10) at ../../include/QtCore/5.15.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:332 #45 0x00007ff2c92be0c7 in QApplicationPrivate::sendMouseEvent (receiver=receiver@entry=0x55a3bc7e4280, event=event@entry=0x7fff887f4e10, alienWidget=alienWidget@entry=0x55a3bc7e4280, nativeWidget=0x7ff2b000c7e0, buttonDown=<optimized out>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2619 #46 0x00007ff2c9313f64 in QWidgetWindow::handleMouseEvent (this=0x55a3b4899d30, event=0x7fff887f5290) at /usr/include/c++/9/bits/atomic_base.h:413 #47 0x00007ff2c9317284 in QWidgetWindow::event (event=0x7fff887f5290, this=0x55a3b4899d30) at kernel/qwidgetwindow.cpp:300 #48 QWidgetWindow::event (this=0x55a3b4899d30, event=0x7fff887f5290) at kernel/qwidgetwindow.cpp:239 #49 0x00007ff2c92b5dc3 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x55a3b4899d30, e=0x7fff887f5290) at kernel/qapplication.cpp:3637 #50 0x00007ff2c92bebd8 in QApplication::notify(QObject*, QEvent*) () at kernel/qapplication.cpp:3161 #51 0x00007ff2c5694d7a in QCoreApplication::notifyInternal2 (receiver=0x55a3b4899d30, event=0x7fff887f5290) at ../../include/QtCore/5.15.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:332 #52 0x00007ff2c5ce8578 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () at kernel/qguiapplication.cpp:2282 #53 0x00007ff2c5ce9be5 in QGuiApplicationPrivate::processWindowSystemEvent (e=0x55a3b848f770) at kernel/qguiapplication.cpp:2002 #54 0x00007ff2c5cc17bc in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169 #55 0x00007ff2bed101ce in xcbSourceDispatch (source=<optimized out>) at qxcbeventdispatcher.cpp:105 #56 0x00007ff2c25da17d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #57 0x00007ff2c25da400 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #58 0x00007ff2c25da4a3 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #59 0x00007ff2c56ef642 in QEventDispatcherGlib::processEvents (this=0x55a3b437e910, flags=...) at kernel/qeventdispatcher_glib.cpp:423 #60 0x00007ff2c569387b in QEventLoop::exec (this=this@entry=0x7fff887f5630, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:141 #61 0x00007ff2c569ba24 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121 #62 0x000055a3b3054959 in runKMyMoney (splash=std::unique_ptr<class QSplashScreen> = {...}, file=..., noFile=<optimized out>, a=...) at ./kmymoney/main.cpp:376 #63 0x000055a3b3052375 in main (argc=<optimized out>, argv=<optimized out>) at /usr/include/c++/9/bits/move.h:74 [Inferior 1 (process 5493) detached] Still present in 5.1.80 (from KDE Neon Unstable repos) Easy to reproduce. I just reproduced the crash on - 5.1.2 from Artix Linux - Appimage build 179 (the most recent successful build.) - git head master kmymoney 5.1.80-1db929625f on Gentoo The toolbar change seems to be saved before the crash. > Still present in 5.1.80 (from KDE Neon Unstable repos) > > Easy to reproduce. ... but somewhat hard to fix. I expect it has something to do with the way we make use of the KXmlGui stuff and don't play it right at some point. I took already a few attempts but never understood how this stuff works. BTW, I have seen this in Version 4.x already. Workaround: restart KMyMoney because the setting changes made it to permanent storage and will be effective after the restart :) Created attachment 154898 [details]
New crash information added by DrKonqi
kmymoney (5.1.3) using Qt 5.15.7
Similar to the original post, I removed two icons from the menu bar while I was in the ledger view. Then I filtered it for some string and clicked on one of the transactions in the view which is when kmymoney crashed.
-- Backtrace (Reduced):
#4 QWidgetPrivate::setEnabled_helper (this=0x55816ed3ee00, enable=false) at kernel/qwidget.h:883
#5 0x00007f4455fe17df in QWidget::setEnabled (this=<optimized out>, enable=enable@entry=false) at kernel/qwidget.cpp:3227
#6 0x00005581673aea1e in KGlobalLedgerView::updateLedgerActionsInternal (this=0x558168f7c860) at /usr/src/debug/kmymoney-5.1.3/kmymoney/views/kgloballedgerview.cpp:294
#7 0x00005581673c253e in KGlobalLedgerView::updateLedgerActions (list=..., this=0x558168f7c860) at /usr/src/debug/kmymoney-5.1.3/kmymoney/views/kgloballedgerview.cpp:272
#8 KGlobalLedgerView::slotTransactionsSelected (this=0x558168f7c860, list=...) at /usr/src/debug/kmymoney-5.1.3/kmymoney/views/kgloballedgerview.cpp:2148
It seems to be triggered by adding Show ... entry to the toolbar (select one of the main Views) and not other configuration changes. If you do that, and close KMM, when you restart, that tool button is not present, but if you Configure Toolbars... it is shown there. However, any change which makes it actually show up on the toolbar (change text, change order) does seem to enable the crash, which can be triggered by almost any action, not just selecting a different view. So, I wonder if there is a difference in how those Show ... actions differ from other ones. |