Version: 3.97.2-svn1121075 (using 4.3.5 (KDE 4.3.5) "release 0", openSUSE 11.2) Compiler: gcc OS: Linux (i686) release 2.6.31.12-0.2-desktop In an investment account, I opened a new transaction of type Dividend, entered the asset account and interest category. For the amount, I entered £-10.00 and KMM crashed on hitting 'enter'. This is reproducible. (The reason for entering a negative dividend is that I have a file where a dividend is received then transferred back to fund a buy transaction. In Ledger View, the two transactions appear, but both are shown as positive. As a test, I was entering a negative value, to confirm the above prior to querying the apparent anomaly.) Backtrace. Application: KMyMoney (kmymoney), signal: Segmentation fault [KCrash Handler] #6 0xb5f4f3d4 in QListData::shared_null () from /usr/lib/libQtCore.so.4 #7 0x083a7f6c in KMyMoneyRegister::RegisterItemDelegate::paint (this=0x8db3b00, painter=0xbffc4e34, option=..., index=...) at /home/aga/KMM4/kmymoney/kmymoney/widgets/register.cpp:459 #8 0xb5a1a017 in ?? () from /usr/lib/libQtGui.so.4 #9 0xb5a1b243 in QTableView::paintEvent(QPaintEvent*) () from /usr/lib/libQtGui.so.4 #10 0xb54f8946 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4 #11 0xb5895bb5 in QFrame::event(QEvent*) () from /usr/lib/libQtGui.so.4 #12 0xb593612c in QAbstractScrollArea::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4 #13 0xb59eda44 in QAbstractItemView::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4 #14 0xb5938786 in ?? () from /usr/lib/libQtGui.so.4 #15 0xb5e5a50e in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x86ea6a0, receiver=0x8d644a8, event=0xbffc5534) at kernel/qcoreapplication.cpp:726 #16 0xb54a18d0 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #17 0xb54a929e in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #18 0xb6a18521 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #19 0xb5e5b32e in QCoreApplication::notifyInternal (this=0x86ea610, receiver=0x8d644a8, event=0xbffc5534) at kernel/qcoreapplication.cpp:610 #20 0xb5500b79 in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/libQtGui.so.4 #21 0xb56952f4 in ?? () from /usr/lib/libQtGui.so.4 #22 0xb54f180e in QWidgetPrivate::syncBackingStore() () from /usr/lib/libQtGui.so.4 #23 0xb54f8720 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4 #24 0xb58b3aa4 in QMainWindow::event(QEvent*) () from /usr/lib/libQtGui.so.4 #25 0xb6b04204 in KMainWindow::event(QEvent*) () from /usr/lib/libkdeui.so.5 #26 0xb6b4bda2 in KXmlGuiWindow::event(QEvent*) () from /usr/lib/libkdeui.so.5 #27 0xb54a18fc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #28 0xb54a929e in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #29 0xb6a18521 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #30 0xb5e5b32e in QCoreApplication::notifyInternal (this=0x86ea610, receiver=0x879df90, event=0xbffc5d74) at kernel/qcoreapplication.cpp:610 #31 0xb5692579 in ?? () from /usr/lib/libQtGui.so.4 #32 0xb5695bb4 in ?? () from /usr/lib/libQtGui.so.4 #33 0xb54f39e8 in QWidget::repaint(QRect const&) () from /usr/lib/libQtGui.so.4 #34 0xb54f3b11 in QWidget::repaint() () from /usr/lib/libQtGui.so.4 #35 0xb58f0010 in QProgressBar::setValue(int) () from /usr/lib/libQtGui.so.4 #36 0x08092f34 in KMyMoneyApp::slotStatusProgressBar (this=0x879df90, current=1, total=0) at /home/aga/KMM4/kmymoney/kmymoney/kmymoney.cpp:1881 #37 0x0816703b in KGlobalLedgerView::loadView (this=0x8a62398) at /home/aga/KMM4/kmymoney/kmymoney/views/kgloballedgerview.cpp:447 #38 0x08170578 in KGlobalLedgerView::slotLoadView (this=0x8a62398) at /home/aga/KMM4/kmymoney/kmymoney/views/kgloballedgerview.cpp:294 #39 0x081706dc in KGlobalLedgerView::slotLeaveEditMode (this=0x8a62398, list=...) at /home/aga/KMM4/kmymoney/kmymoney/views/kgloballedgerview.cpp:1227 #40 0x08170f76 in KGlobalLedgerView::qt_metacall (this=0x8a62398, _c=InvokeMetaMethod, _id=19, _a=0xbffc6748) at /home/aga/KMM4/kmymoney/build/kmymoney/views/kgloballedgerview.moc:213 #41 0xb5e71864 in QMetaObject::activate (sender=0x9269f08, from_signal_index=4, to_signal_index=4, argv=0xbffc6748) at kernel/qobject.cpp:3113 #42 0xb5e72585 in QMetaObject::activate (sender=0x9269f08, m=0x86ba9e8, local_signal_index=0, argv=0xbffc6748) at kernel/qobject.cpp:3187 #43 0x0835a4f3 in TransactionEditor::finishEdit (this=0x9269f08, _t1=...) at /home/aga/KMM4/kmymoney/build/kmymoney/dialogs/transactioneditor.moc:136 #44 0x0835c9f7 in TransactionEditor::~TransactionEditor (this=0x9269f08, __in_chrg=<value optimized out>) at /home/aga/KMM4/kmymoney/kmymoney/dialogs/transactioneditor.cpp:91 #45 0x082654ea in InvestTransactionEditor::~InvestTransactionEditor (this=0x9269f08, __in_chrg=<value optimized out>) at /home/aga/KMM4/kmymoney/kmymoney/dialogs/investtransactioneditor.cpp:96 #46 0x080917a8 in KMyMoneyApp::deleteTransactionEditor (this=0x879df90) at /home/aga/KMM4/kmymoney/kmymoney/kmymoney.cpp:4882 #47 0x080ce17c in KMyMoneyApp::slotTransactionsEnter (this=0x879df90) at /home/aga/KMM4/kmymoney/kmymoney/kmymoney.cpp:4942 #48 0x080decf5 in KMyMoneyApp::qt_metacall (this=0x879df90, _c=InvokeMetaMethod, _id=73, _a=0xbffc6c08) at /home/aga/KMM4/kmymoney/build/kmymoney/kmymoney.moc:457 #49 0xb5e71864 in QMetaObject::activate (sender=0x87e3ff0, from_signal_index=5, to_signal_index=6, argv=0xbffc6c08) at kernel/qobject.cpp:3113 #50 0xb5e71d41 in QMetaObject::activate (sender=0x87e3ff0, m=0xb5cfb108, from_local_signal_index=1, to_local_signal_index=2, argv=0xbffc6c08) at kernel/qobject.cpp:3207 #51 0xb549b0c5 in QAction::triggered(bool) () from /usr/lib/libQtGui.so.4 #52 0xb549c6f2 in QAction::activate(QAction::ActionEvent) () from /usr/lib/libQtGui.so.4 #53 0xb592f8e0 in QToolButton::nextCheckState() () from /usr/lib/libQtGui.so.4 #54 0xb5846aa7 in ?? () from /usr/lib/libQtGui.so.4 #55 0xb5846d86 in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4 #56 0xb592fded in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4 #57 0xb54f8bac in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4 #58 0xb5844c40 in QAbstractButton::event(QEvent*) () from /usr/lib/libQtGui.so.4 #59 0xb593283c in QToolButton::event(QEvent*) () from /usr/lib/libQtGui.so.4 #60 0xb54a18fc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #61 0xb54a9bbb in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #62 0xb6a18521 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #63 0xb5e5b32e in QCoreApplication::notifyInternal (this=0x86ea610, receiver=0x8df4bf8, event=0xbffc71d0) at kernel/qcoreapplication.cpp:610 #64 0xb54a8bdc in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&) () from /usr/lib/libQtGui.so.4 #65 0xb551980a in ?? () from /usr/lib/libQtGui.so.4 #66 0xb5518d7e in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4 #67 0xb5543b68 in ?? () from /usr/lib/libQtGui.so.4 #68 0xb49514c2 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #69 0xb4954d98 in ?? () from /usr/lib/libglib-2.0.so.0 #70 0xb4954ebe in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #71 0xb5e87011 in QEventDispatcherGlib::processEvents (this=0x86cff58, flags=...) at kernel/qeventdispatcher_glib.cpp:407 #72 0xb554329a in ?? () from /usr/lib/libQtGui.so.4 #73 0xb5e5998d in QEventLoop::processEvents (this=0xbffc8ab4, flags=) at kernel/qeventloop.cpp:149 #74 0xb5e59dd9 in QEventLoop::exec (this=0xbffc8ab4, flags=...) at kernel/qeventloop.cpp:201 #75 0xb5e5c270 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888 #76 0xb54a1774 in QApplication::exec() () from /usr/lib/libQtGui.so.4 #77 0x0808f397 in main (argc=1, argv=0xbffc8f34) at /home/aga/KMM4/kmymoney/kmymoney/main.cpp:277
*** Bug 235963 has been marked as a duplicate of this bug. ***
Created attachment 43204 [details] A possible fix for this bug Could you please test if this patch fixes the crash? I'm asking you because I could not reproduce the crash on my setup. Based on the stack trace that you have provided me this would seem like a solution. Thanks.
I will do, but first I wanted to confirm I could still reproduce the fault. It took three goes, but did crash, and this time I got a better BT, which doesn't exactly correspond to the other bug, so here it is, in case it may help later.
Backtrace - Application: KMyMoney (kmymoney), signal: Segmentation fault [KCrash Handler] #6 0x00000001 in ?? () #7 0xb5965017 in QTableViewPrivate::drawCell (this=0x8c20080, painter=0xbfa016b4, option=..., index=...) at itemviews/qtableview.cpp:409 #8 0xb5966243 in QTableView::paintEvent (this=0x8c20dd8, event=0x93886b8) at itemviews/qtableview.cpp:854 #9 0xb5443946 in QWidget::event (this=0x8c20dd8, event=0xbfa01db4) at kernel/qwidget.cpp:7692 #10 0xb57e0bb5 in QFrame::event (this=0x8c20dd8, e=0xbfa01db4) at widgets/qframe.cpp:559 #11 0xb588112c in QAbstractScrollArea::viewportEvent (this=0xbfa0127c, e=0x91ac0d0) at widgets/qabstractscrollarea.cpp:962 #12 0xb5938a44 in QAbstractItemView::viewportEvent (this=0x8c20dd8, event=0xbfa01db4) at itemviews/qabstractitemview.cpp:1476 #13 0xb5883786 in viewportEvent (event=<value optimized out>, this=<value optimized out>) at widgets/qabstractscrollarea_p.h:100 #14 QAbstractScrollAreaFilter::eventFilter (event=<value optimized out>, this=<value optimized out>) at widgets/qabstractscrollarea_p.h:111 #15 0xb5da550e in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x86ea650, receiver=0x8c20dc0, event=0xbfa01db4) at kernel/qcoreapplication.cpp:726 #16 0xb53ec8d0 in QApplicationPrivate::notify_helper (this=0x86ea650, receiver=0x8c20dc0, e=0xbfa01db4) at kernel/qapplication.cpp:4061 #17 0xb53f429e in QApplication::notify (this=0x86ea5c0, receiver=0x8c20dc0, e=0xbfa01db4) at kernel/qapplication.cpp:4030 #18 0xb6963521 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #19 0xb5da632e in QCoreApplication::notifyInternal (this=0x86ea5c0, receiver=0x8c20dc0, event=0xbfa01db4) at kernel/qcoreapplication.cpp:610 #20 0xb544bb79 in sendSpontaneousEvent (event=<value optimized out>, receiver=<value optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:216 #21 QWidgetPrivate::drawWidget (event=<value optimized out>, receiver=<value optimized out>) at kernel/qwidget.cpp:5084 #22 0xb55e02f4 in QWidgetBackingStore::sync (this=0x87a0bf0) at painting/qbackingstore.cpp:1264 #23 0xb543c80e in QWidgetPrivate::syncBackingStore (this=0x8787268) at kernel/qwidget.cpp:1603 #24 0xb5443720 in QWidget::event (this=0x8792f40, event=0xbfa025f4) at kernel/qwidget.cpp:7832 #25 0xb57feaa4 in QMainWindow::event (this=0x8792f40, event=0xbfa025f4) at widgets/qmainwindow.cpp:1399 #26 0xb6a4f204 in KMainWindow::event(QEvent*) () from /usr/lib/libkdeui.so.5 #27 0xb6a96da2 in KXmlGuiWindow::event(QEvent*) () from /usr/lib/libkdeui.so.5 #28 0xb53ec8fc in QApplicationPrivate::notify_helper (this=0x86ea650, receiver=0x8792f40, e=0xbfa025f4) at kernel/qapplication.cpp:4065 #29 0xb53f429e in QApplication::notify (this=0x86ea5c0, receiver=0x8792f40, e=0xbfa025f4) at kernel/qapplication.cpp:4030 #30 0xb6963521 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #31 0xb5da632e in QCoreApplication::notifyInternal (this=0x86ea5c0, receiver=0x8792f40, event=0xbfa025f4) at kernel/qcoreapplication.cpp:610 #32 0xb55dd579 in sendEvent (event=<value optimized out>, receiver=<value optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:213 #33 sendUpdateRequest (event=<value optimized out>, receiver=<value optimized out>) at painting/qbackingstore.cpp:511 #34 0xb55e0bb4 in QWidgetBackingStore::markDirty (this=0x87a0bf0, rect=..., widget=0x87aad10, updateImmediately=true, invalidateBuffer=false) at painting/qbackingstore.cpp:654 #35 0xb543e9e8 in QWidget::repaint (this=0x87aad10, rect=...) at kernel/qwidget.cpp:9477 #36 0xb543eb11 in QWidget::repaint (this=0x87aad10) at kernel/qwidget.cpp:9433 #37 0xb583b010 in QProgressBar::setValue (this=0x87aad10, value=1) at widgets/qprogressbar.cpp:320 #38 0x08092f34 in KMyMoneyApp::slotStatusProgressBar (this=0x8792f40, current=1, total=0) at /home/aga/KMM4/kmymoney/kmymoney/kmymoney.cpp:1881 #39 0x0816703b in KGlobalLedgerView::loadView (this=0x8cbc0b0) at /home/aga/KMM4/kmymoney/kmymoney/views/kgloballedgerview.cpp:447 #40 0x08170578 in KGlobalLedgerView::slotLoadView (this=0x8cbc0b0) at /home/aga/KMM4/kmymoney/kmymoney/views/kgloballedgerview.cpp:294 #41 0x081706dc in KGlobalLedgerView::slotLeaveEditMode (this=0x8cbc0b0, list=...) at /home/aga/KMM4/kmymoney/kmymoney/views/kgloballedgerview.cpp:1227 #42 0x08170f76 in KGlobalLedgerView::qt_metacall (this=0x8cbc0b0, _c=InvokeMetaMethod, _id=19, _a=0xbfa02fc8) at /home/aga/KMM4/kmymoney/build/kmymoney/views/kgloballedgerview.moc:213 #43 0xb5dbc864 in QMetaObject::activate (sender=0x93e6fc8, from_signal_index=4, to_signal_index=4, argv=0xbfa02fc8) at kernel/qobject.cpp:3113 #44 0xb5dbd585 in QMetaObject::activate (sender=0x93e6fc8, m=0x86ba9e8, local_signal_index=0, argv=0xbfa02fc8) at kernel/qobject.cpp:3187 #45 0x0835a4f3 in TransactionEditor::finishEdit (this=0x93e6fc8, _t1=...) at /home/aga/KMM4/kmymoney/build/kmymoney/dialogs/transactioneditor.moc:136 #46 0x0835c9f7 in TransactionEditor::~TransactionEditor (this=0x93e6fc8, __in_chrg=<value optimized out>) at /home/aga/KMM4/kmymoney/kmymoney/dialogs/transactioneditor.cpp:91 #47 0x082654ea in InvestTransactionEditor::~InvestTransactionEditor (this=0x93e6fc8, __in_chrg=<value optimized out>) at /home/aga/KMM4/kmymoney/kmymoney/dialogs/investtransactioneditor.cpp:96 #48 0x080917a8 in KMyMoneyApp::deleteTransactionEditor (this=0x8792f40) at /home/aga/KMM4/kmymoney/kmymoney/kmymoney.cpp:4882 #49 0x080ce17c in KMyMoneyApp::slotTransactionsEnter (this=0x8792f40) at /home/aga/KMM4/kmymoney/kmymoney/kmymoney.cpp:4942 #50 0x080decf5 in KMyMoneyApp::qt_metacall (this=0x8792f40, _c=InvokeMetaMethod, _id=73, _a=0xbfa03488) at /home/aga/KMM4/kmymoney/build/kmymoney/kmymoney.moc:457 #51 0xb5dbc864 in QMetaObject::activate (sender=0x87dee58, from_signal_index=5, to_signal_index=6, argv=0xbfa03488) at kernel/qobject.cpp:3113 #52 0xb5dbcd41 in QMetaObject::activate (sender=0x87dee58, m=0xb5c46108, from_local_signal_index=1, to_local_signal_index=2, argv=0xbfa03488) at kernel/qobject.cpp:3207 #53 0xb53e60c5 in QAction::triggered (this=0x87dee58, _t1=false) at .moc/release-shared/moc_qaction.cpp:236 #54 0xb53e76f2 in QAction::activate (this=0x87dee58, event=Trigger) at kernel/qaction.cpp:1167 #55 0xb587a8e0 in trigger (this=<value optimized out>) at ../../src/gui/kernel/qaction.h:203 #56 QToolButton::nextCheckState (this=<value optimized out>) at widgets/qtoolbutton.cpp:1135 #57 0xb5791aa7 in QAbstractButtonPrivate::click (this=0x8e05458) at widgets/qabstractbutton.cpp:525 #58 0xb5791d86 in QAbstractButton::mouseReleaseEvent (this=0x8e053a8, e=0xbfa03a50) at widgets/qabstractbutton.cpp:1115 #59 0xb587aded in QToolButton::mouseReleaseEvent (this=0x8e053a8, e=0xbfa03a50) at widgets/qtoolbutton.cpp:709 #60 0xb5443bac in QWidget::event (this=0x8e053a8, event=0xbfa03a50) at kernel/qwidget.cpp:7554 #61 0xb578fc40 in QAbstractButton::event (this=0x8e053a8, e=0x93886b8) at widgets/qabstractbutton.cpp:1077 #62 0xb587d83c in QToolButton::event (this=0x8e053a8, event=0xbfa03a50) at widgets/qtoolbutton.cpp:1151 #63 0xb53ec8fc in QApplicationPrivate::notify_helper (this=0x86ea650, receiver=0x8e053a8, e=0xbfa03a50) at kernel/qapplication.cpp:4065 #64 0xb53f4bbb in QApplication::notify (this=0x8e053a8, receiver=0x8e053a8, e=0xbfa03a50) at kernel/qapplication.cpp:3767 #65 0xb6963521 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #66 0xb5da632e in QCoreApplication::notifyInternal (this=0x86ea5c0, receiver=0x8e053a8, event=0xbfa03a50) at kernel/qcoreapplication.cpp:610 #67 0xb53f3bdc in sendSpontaneousEvent (event=<value optimized out>, receiver=<value optimized out>) at ../../src/corelib/kernel/qcoreapplication.h:216 #68 QApplicationPrivate::sendMouseEvent (event=<value optimized out>, receiver=<value optimized out>) at kernel/qapplication.cpp:2924 #69 0xb546480a in QETWidget::translateMouseEvent (this=0x8cbc0b0, event=0xbfa0507c) at kernel/qapplication_x11.cpp:4409 #70 0xb5463d7e in QApplication::x11ProcessEvent (this=0x86ea5c0, event=0xbfa0507c) at kernel/qapplication_x11.cpp:3428 #71 0xb548eb68 in x11EventSourceDispatch (s=0x86ed870, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146 #72 0xb489c4c2 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 #73 0xb489fd98 in ?? () from /usr/lib/libglib-2.0.so.0 #74 0xb489febe in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0 #75 0xb5dd2011 in QEventDispatcherGlib::processEvents (this=0x86cff58, flags=...) at kernel/qeventdispatcher_glib.cpp:407 #76 0xb548e29a in QGuiEventDispatcherGlib::processEvents (this=0x86cff58, flags=...) at kernel/qguieventdispatcher_glib.cpp:202 #77 0xb5da498d in QEventLoop::processEvents (this=0xbfa05334, flags=) at kernel/qeventloop.cpp:149 #78 0xb5da4dd9 in QEventLoop::exec (this=0xbfa05334, flags=...) at kernel/qeventloop.cpp:201 #79 0xb5da7270 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:888 #80 0xb53ec774 in QApplication::exec () at kernel/qapplication.cpp:3525 #81 0x0808f397 in main (argc=1, argv=0xbfa057b4) at /home/aga/KMM4/kmymoney/kmymoney/main.cpp:277
Now tested four times with both operations and all looks good.
SVN commit 1122539 by conet: BUG: 235929 Fix a crash that occurs when paint is called while reloading the register (although updatesEnabled is false). M +1 -1 register.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1122539