Bug 311752

Summary: Split Transaction Crash
Product: [Applications] kmymoney Reporter: paul <stibbard>
Component: generalAssignee: KMyMoney Devel Mailing List <kmymoney-devel>
Status: RESOLVED FIXED    
Severity: crash CC: eaglexboy, onet.cristian, paladin45, skybox, waynebonner
Priority: NOR    
Version: 4.6.3   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In: 4.6.4
Sentry Crash Report:
Attachments: New crash information added by DrKonqi

Description paul 2012-12-15 22:22:41 UTC
Application: kmymoney (4.6.3)
KDE Platform Version: 4.9.4
Qt Version: 4.8.4
Operating System: Linux 3.6.10-1-ARCH x86_64
Distribution (Platform): Archlinux Packages

-- Information about the crash:
- What I was doing when the application crashed: Entering a split deposit transaction; crash occurs when adding an additional salary catagory.  Running under Arch Linux.  I have to reboot before KMYMONEY will again function.  Simply closing and reopening does not clear the error/problem - the crash will re-occur.

The crash can be reproduced some of the time.

-- Backtrace:
Application: KMyMoney (kmymoney), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[KCrash Handler]
#5  0x00007fa373c75a2f in QWidgetPrivate::setWSGeometry(bool, QRect const&) () from /usr/lib/libQtGui.so.4
#6  0x00007fa373c2cf51 in QWidgetPrivate::scrollChildren(int, int) () from /usr/lib/libQtGui.so.4
#7  0x00007fa373c78119 in QWidgetPrivate::scroll_sys(int, int) () from /usr/lib/libQtGui.so.4
#8  0x00007fa373c398ce in QWidget::scroll(int, int) () from /usr/lib/libQtGui.so.4
#9  0x00007fa374119731 in QTableView::scrollContentsBy(int, int) () from /usr/lib/libQtGui.so.4
#10 0x00007fa374ac7b8f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#11 0x00007fa37424b9be in QAbstractSlider::valueChanged(int) () from /usr/lib/libQtGui.so.4
#12 0x00007fa374119e80 in QTableView::updateGeometries() () from /usr/lib/libQtGui.so.4
#13 0x00007fa3740eca19 in QAbstractItemView::doItemsLayout() () from /usr/lib/libQtGui.so.4
#14 0x00007fa3741195e2 in QTableView::doItemsLayout() () from /usr/lib/libQtGui.so.4
#15 0x00007fa37411ead1 in QTableView::indexAt(QPoint const&) const () from /usr/lib/libQtGui.so.4
#16 0x00007fa3740ec706 in QAbstractItemView::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4
#17 0x00007fa374ab2816 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#18 0x00007fa373be615c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#19 0x00007fa373beba8a in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#20 0x00007fa3770b1df6 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#21 0x00007fa374ab26ae in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#22 0x00007fa373be6fcb in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4
#23 0x00007fa373be7454 in QApplicationPrivate::sendSyntheticEnterLeave(QWidget*) () from /usr/lib/libQtGui.so.4
#24 0x00007fa373c2febe in QWidget::~QWidget() () from /usr/lib/libQtGui.so.4
#25 0x00007fa3771776b9 in KPushButton::~KPushButton() () from /usr/lib/libkdeui.so.5
#26 0x00007fa374ac4db2 in QObjectPrivate::deleteChildren() () from /usr/lib/libQtCore.so.4
#27 0x00007fa373c2fcc4 in QWidget::~QWidget() () from /usr/lib/libQtGui.so.4
#28 0x00007fa373fe06b9 in QFrame::~QFrame() () from /usr/lib/libQtGui.so.4
#29 0x00007fa374ac7098 in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#30 0x00007fa373c3518a in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#31 0x00007fa373fe0d36 in QFrame::event(QEvent*) () from /usr/lib/libQtGui.so.4
#32 0x00007fa373be618c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#33 0x00007fa373bea60a in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#34 0x00007fa3770b1df6 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#35 0x00007fa374ab26ae in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#36 0x00007fa374ab6011 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4
#37 0x00007fa374ae09d3 in ?? () from /usr/lib/libQtCore.so.4
#38 0x00007fa36e63f845 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#39 0x00007fa36e63fb78 in ?? () from /usr/lib/libglib-2.0.so.0
#40 0x00007fa36e63fc34 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#41 0x00007fa374ae0b66 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#42 0x00007fa373c8669e in ?? () from /usr/lib/libQtGui.so.4
#43 0x00007fa374ab13ff in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#44 0x00007fa374ab1688 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#45 0x00007fa37409a758 in QDialog::exec() () from /usr/lib/libQtGui.so.4
#46 0x000000000069a8a0 in ?? ()
#47 0x00000000006b1477 in ?? ()
#48 0x00000000006b84e2 in ?? ()
#49 0x00007fa374ac7b8f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#50 0x00007fa37424b512 in QAbstractButton::clicked(bool) () from /usr/lib/libQtGui.so.4
#51 0x00007fa373f9fe7e in ?? () from /usr/lib/libQtGui.so.4
#52 0x00007fa373fa06b0 in ?? () from /usr/lib/libQtGui.so.4
#53 0x00007fa373fa091c in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4
#54 0x00007fa373c35a49 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#55 0x00007fa373be618c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#56 0x00007fa373beae6b in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#57 0x00007fa3770b1df6 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#58 0x00007fa374ab26ae in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#59 0x00007fa373be6fcb in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4
#60 0x00007fa373c61ad4 in ?? () from /usr/lib/libQtGui.so.4
#61 0x00007fa373c60861 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#62 0x00007fa373c86a22 in ?? () from /usr/lib/libQtGui.so.4
#63 0x00007fa36e63f845 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#64 0x00007fa36e63fb78 in ?? () from /usr/lib/libglib-2.0.so.0
#65 0x00007fa36e63fc34 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#66 0x00007fa374ae0b86 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#67 0x00007fa373c8669e in ?? () from /usr/lib/libQtGui.so.4
#68 0x00007fa374ab13ff in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#69 0x00007fa374ab1688 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#70 0x00007fa374ab6328 in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#71 0x00000000004585d6 in _start ()

Possible duplicates by query: bug 261551, bug 258557, bug 258355, bug 254607, bug 247877.

Reported using DrKonqi
Comment 1 Cristian Oneț 2013-09-12 08:31:18 UTC
Judging by the backtrace this seems to be the same problem that was fixed in the ledger with the in-line transaction editor BUG 258355 but in the split table. So the same fix (hiding the widget before removing it) should be done in kMyMoneySplitTable::destroyEditWidgets.
Comment 2 Cristian Oneț 2013-09-12 21:13:15 UTC
Git commit 0dec8fb48594a4e09911b97fa32d2e9394846944 by Cristian Oneț.
Committed on 12/09/2013 at 21:11.
Pushed by conet into branch 'master'.

Fixed a crash while closing the edit widgets of a split transaction.
Using the same approach as in the register - hide the widgets before
removing them.

M  +11   -4    kmymoney/dialogs/kmymoneysplittable.cpp
M  +1    -0    kmymoney/dialogs/kmymoneysplittable.h

http://commits.kde.org/kmymoney/0dec8fb48594a4e09911b97fa32d2e9394846944
Comment 3 Cristian Oneț 2013-09-12 21:13:56 UTC
Git commit bf7b0dc55c7c63c14d61294ea56708e24f2d6573 by Cristian Oneț.
Committed on 12/09/2013 at 21:11.
Pushed by conet into branch '4.6'.

Fixed a crash while closing the edit widgets of a split transaction.
Using the same approach as in the register - hide the widgets before
removing them.
(cherry picked from commit 0dec8fb48594a4e09911b97fa32d2e9394846944)

M  +11   -4    kmymoney/dialogs/kmymoneysplittable.cpp
M  +1    -0    kmymoney/dialogs/kmymoneysplittable.h

http://commits.kde.org/kmymoney/bf7b0dc55c7c63c14d61294ea56708e24f2d6573
Comment 4 Cristian Oneț 2013-09-15 15:56:06 UTC
*** Bug 282240 has been marked as a duplicate of this bug. ***
Comment 5 Eleazar 2013-09-29 20:42:51 UTC
Created attachment 82551 [details]
New crash information added by DrKonqi

kmymoney (4.6.3) on KDE Platform 4.10.5 using Qt 4.8.4

- What I was doing when the application crashed:
I was entering a second category for the split transaction table and when I clicked ok to save the entry it crashed.

-- Backtrace (Reduced):
#7  0x00007f0c333b37de in QWidget::event (this=this@entry=0x70f6ef0, event=event@entry=0x7fff13c87200) at kernel/qwidget.cpp:8553
#8  0x00007f0c33777bc7 in QLineEdit::event (this=this@entry=0x70f6ef0, e=e@entry=0x7fff13c87200) at widgets/qlineedit.cpp:1524
#9  0x00007f0c368a19d8 in KLineEdit::event (this=0x70f6ef0, ev=0x7fff13c87200) at ../../kdeui/widgets/klineedit.cpp:1397
#10 0x00007f0c3373879f in QComboBox::contextMenuEvent (this=<optimized out>, e=0x7fff13c87200) at widgets/qcombobox.cpp:3114
#11 0x00007f0c333b37de in QWidget::event (this=0x70fd290, event=0x7fff13c87200) at kernel/qwidget.cpp:8553
Comment 6 Jekyll Wu 2014-01-23 04:20:10 UTC
*** Bug 330310 has been marked as a duplicate of this bug. ***
Comment 7 Cristian Oneț 2014-02-06 10:17:39 UTC
*** Bug 330092 has been marked as a duplicate of this bug. ***