Bug 258290 - Crashed when selected split in a new scheduled deposit
Summary: Crashed when selected split in a new scheduled deposit
Status: RESOLVED FIXED
Alias: None
Product: kmymoney
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: KMyMoney Devel Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-11-29 16:58 UTC by iwaddox
Modified: 2011-01-05 15:17 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
New crash information added by DrKonqi (9.55 KB, text/plain)
2010-11-29 17:12 UTC, iwaddox
Details
New crash information added by DrKonqi (8.91 KB, text/plain)
2011-01-05 15:17 UTC, Guy Shoebridge
Details

Note You need to log in before you can comment on or make changes to this bug.
Description iwaddox 2010-11-29 16:58:34 UTC
Application: kmymoney (4.5.0)
KDE Platform Version: 4.5.1 (KDE 4.5.1)
Qt Version: 4.7.0
Operating System: Linux 2.6.35-23-generic i686
Distribution: Ubuntu 10.10

-- Information about the crash:
- What I was doing when the application crashed:

Creating a new scheduled deposit, selected the split symbol, it crashed.

-- Backtrace:
Application: KMyMoney (kmymoney), signal: Aborted
[Current thread is 1 (Thread 0xb776a710 (LWP 1734))]

Thread 2 (Thread 0xb276eb70 (LWP 1735)):
#0  0x024bee36 in clock_gettime () from /lib/librt.so.1
#1  0x05ef050b in do_gettime () at tools/qelapsedtimer_unix.cpp:105
#2  qt_gettime () at tools/qelapsedtimer_unix.cpp:119
#3  0x05fc76e5 in QTimerInfoList::updateCurrentTime (this=0xb1e01134) at kernel/qeventdispatcher_unix.cpp:339
#4  0x05fc772a in QTimerInfoList::timerWait (this=0xb1e01134, tm=...) at kernel/qeventdispatcher_unix.cpp:442
#5  0x05fc57a8 in timerSourcePrepareHelper (src=<value optimized out>, timeout=0xb276e0bc) at kernel/qeventdispatcher_glib.cpp:136
#6  0x05fc583d in timerSourcePrepare (source=0x0, timeout=0x24c2ff4) at kernel/qeventdispatcher_glib.cpp:169
#7  0x023f7e6a in g_main_context_prepare () from /lib/libglib-2.0.so.0
#8  0x023f8279 in ?? () from /lib/libglib-2.0.so.0
#9  0x023f8848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#10 0x05fc559f in QEventDispatcherGlib::processEvents (this=0xa78ae00, flags=...) at kernel/qeventdispatcher_glib.cpp:417
#11 0x05f95609 in QEventLoop::processEvents (this=0xb276e290, flags=) at kernel/qeventloop.cpp:149
#12 0x05f95a8a in QEventLoop::exec (this=0xb276e290, flags=...) at kernel/qeventloop.cpp:201
#13 0x05e91b7e in QThread::exec (this=0xa789350) at thread/qthread.cpp:490
#14 0x05f7435b in QInotifyFileSystemWatcherEngine::run (this=0xa789350) at io/qfilesystemwatcher_inotify.cpp:248
#15 0x05e94df9 in QThreadPrivate::start (arg=0xa789350) at thread/qthread_unix.cpp:266
#16 0x0062fcc9 in start_thread () from /lib/libpthread.so.0
#17 0x050046be in clone () from /lib/libc.so.6

Thread 1 (Thread 0xb776a710 (LWP 1734)):
[KCrash Handler]
#7  0x00110416 in __kernel_vsyscall ()
#8  0x04f5e941 in raise () from /lib/libc.so.6
#9  0x04f61e42 in abort () from /lib/libc.so.6
#10 0x00d82055 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/libstdc++.so.6
#11 0x00d7ff35 in ?? () from /usr/lib/libstdc++.so.6
#12 0x00d7ff72 in std::terminate() () from /usr/lib/libstdc++.so.6
#13 0x00d8014b in __cxa_rethrow () from /usr/lib/libstdc++.so.6
#14 0x05fafb35 in QMetaObject::activate (sender=0xb18ff58, m=0x1f53704, local_signal_index=2, argv=<value optimized out>) at kernel/qobject.cpp:3290
#15 0x01d30019 in QAbstractButton::clicked (this=0xb18ff58, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:206
#16 0x019efff9 in QAbstractButtonPrivate::emitClicked (this=0xb18ff78) at widgets/qabstractbutton.cpp:546
#17 0x019f16f4 in QAbstractButtonPrivate::click (this=0xb18ff78) at widgets/qabstractbutton.cpp:539
#18 0x019f19ae in QAbstractButton::mouseReleaseEvent (this=0xb18ff58, e=0xbf8855b0) at widgets/qabstractbutton.cpp:1121
#19 0x0161fe08 in QWidget::event (this=0xb18ff58, event=0xbf8855b0) at kernel/qwidget.cpp:8187
#20 0x019efe9e in QAbstractButton::event (this=0xb18ff58, e=0x6) at widgets/qabstractbutton.cpp:1080
#21 0x01a9dc22 in QPushButton::event (this=0xb18ff58, e=0xbf8855b0) at widgets/qpushbutton.cpp:683
#22 0x015c1fdc in QApplicationPrivate::notify_helper (this=0xa275d70, receiver=0xb18ff58, e=0xbf8855b0) at kernel/qapplication.cpp:4396
#23 0x015c8c2e in QApplication::notify (this=0xa275c80, receiver=0xb18ff58, e=0xbf8855b0) at kernel/qapplication.cpp:3959
#24 0x0044068a in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#25 0x05f96b3b in QCoreApplication::notifyInternal (this=0xa275c80, receiver=0xb18ff58, event=0xbf8855b0) at kernel/qcoreapplication.cpp:732
#26 0x015c7094 in sendEvent (receiver=0xb18ff58, event=0xbf8855b0, alienWidget=0xb18ff58, nativeWidget=0xaee2b30, buttonDown=0x1f5c3c0, lastMouseReceiver=..., spontaneous=true) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#27 QApplicationPrivate::sendMouseEvent (receiver=0xb18ff58, event=0xbf8855b0, alienWidget=0xb18ff58, nativeWidget=0xaee2b30, buttonDown=0x1f5c3c0, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3058
#28 0x01655d10 in QETWidget::translateMouseEvent (this=0xaee2b30, event=0xbf885acc) at kernel/qapplication_x11.cpp:4403
#29 0x01655151 in QApplication::x11ProcessEvent (this=0xa275c80, event=0xbf885acc) at kernel/qapplication_x11.cpp:3414
#30 0x0168436a in x11EventSourceDispatch (s=0xa279000, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#31 0x023f4855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#32 0x023f8668 in ?? () from /lib/libglib-2.0.so.0
#33 0x023f8848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#34 0x05fc5565 in QEventDispatcherGlib::processEvents (this=0xa25bb78, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#35 0x01683be5 in QGuiEventDispatcherGlib::processEvents (this=0xa25bb78, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#36 0x05f95609 in QEventLoop::processEvents (this=0xbf885dc0, flags=) at kernel/qeventloop.cpp:149
#37 0x05f95a8a in QEventLoop::exec (this=0xbf885dc0, flags=...) at kernel/qeventloop.cpp:201
#38 0x01b2c873 in QDialog::exec (this=0xaee2b30) at dialogs/qdialog.cpp:552
#39 0x08092db7 in KMyMoneyApp::slotScheduleNew (this=0xa2eb610, _t=..., occurrence=MyMoneySchedule::OCCUR_MONTHLY) at /build/buildd/kmymoney-4.5/kmymoney/kmymoney.cpp:4155
#40 0x08093189 in KMyMoneyApp::slotScheduleNew (this=0xa2eb610) at /build/buildd/kmymoney-4.5/kmymoney/kmymoney.cpp:4133
#41 0x080d9dda in KMyMoneyApp::qt_metacall (this=0xa2eb610, _c=QMetaObject::InvokeMetaMethod, _id=153, _a=0xbf8862f8) at /build/buildd/kmymoney-4.5/obj-i686-linux-gnu/kmymoney/kmymoney.moc:562
#42 0x05f9c8ca in QMetaObject::metacall (object=0xa2eb610, cl=1734, idx=199, argv=0xbf8862f8) at kernel/qmetaobject.cpp:237
#43 0x05faf6ad in QMetaObject::activate (sender=0xa405ba8, m=0x1f40370, local_signal_index=1, argv=0x0) at kernel/qobject.cpp:3280
#44 0x015b9f99 in QAction::triggered (this=0xa405ba8, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
#45 0x015bb8dc in QAction::activate (this=0xa405ba8, event=QAction::Trigger) at kernel/qaction.cpp:1256
#46 0x015bdedb in trigger (this=0xa405ba8, _c=QMetaObject::InvokeMetaMethod, _id=8, _a=0xbf886558) at kernel/qaction.h:218
#47 QAction::qt_metacall (this=0xa405ba8, _c=QMetaObject::InvokeMetaMethod, _id=8, _a=0xbf886558) at .moc/release-shared/moc_qaction.cpp:174
#48 0x0162d95a in QWidgetAction::qt_metacall (this=0xa405ba8, _c=QMetaObject::InvokeMetaMethod, _id=12, _a=0xbf886558) at .moc/release-shared/moc_qwidgetaction.cpp:67
#49 0x0033efaa in KAction::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkdeui.so.5
#50 0x05f9c8ca in QMetaObject::metacall (object=0xa405ba8, cl=1734, idx=12, argv=0x0) at kernel/qmetaobject.cpp:237
#51 0x05faf6ad in QMetaObject::activate (sender=0xa6741d0, m=0x1f53704, local_signal_index=2, argv=0x0) at kernel/qobject.cpp:3280
#52 0x01d30019 in QAbstractButton::clicked (this=0xa6741d0, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:206
#53 0x019efff9 in QAbstractButtonPrivate::emitClicked (this=0xa6747d0) at widgets/qabstractbutton.cpp:546
#54 0x019f16f4 in QAbstractButtonPrivate::click (this=0xa6747d0) at widgets/qabstractbutton.cpp:539
#55 0x019f19ae in QAbstractButton::mouseReleaseEvent (this=0xa6741d0, e=0xbf886ca0) at widgets/qabstractbutton.cpp:1121
#56 0x0161fe08 in QWidget::event (this=0xa6741d0, event=0xbf886ca0) at kernel/qwidget.cpp:8187
#57 0x019efe9e in QAbstractButton::event (this=0xa6741d0, e=0x6) at widgets/qabstractbutton.cpp:1080
#58 0x01a9dc22 in QPushButton::event (this=0xa6741d0, e=0xbf886ca0) at widgets/qpushbutton.cpp:683
#59 0x015c1fdc in QApplicationPrivate::notify_helper (this=0xa275d70, receiver=0xa6741d0, e=0xbf886ca0) at kernel/qapplication.cpp:4396
#60 0x015c8c2e in QApplication::notify (this=0xa275c80, receiver=0xa6741d0, e=0xbf886ca0) at kernel/qapplication.cpp:3959
#61 0x0044068a in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#62 0x05f96b3b in QCoreApplication::notifyInternal (this=0xa275c80, receiver=0xa6741d0, event=0xbf886ca0) at kernel/qcoreapplication.cpp:732
#63 0x015c7094 in sendEvent (receiver=0xa6741d0, event=0xbf886ca0, alienWidget=0xa6741d0, nativeWidget=0xa674350, buttonDown=0x1f5c3c0, lastMouseReceiver=..., spontaneous=true) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#64 QApplicationPrivate::sendMouseEvent (receiver=0xa6741d0, event=0xbf886ca0, alienWidget=0xa6741d0, nativeWidget=0xa674350, buttonDown=0x1f5c3c0, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3058
#65 0x01655d10 in QETWidget::translateMouseEvent (this=0xa674350, event=0xbf8871bc) at kernel/qapplication_x11.cpp:4403
#66 0x01655151 in QApplication::x11ProcessEvent (this=0xa275c80, event=0xbf8871bc) at kernel/qapplication_x11.cpp:3414
#67 0x0168436a in x11EventSourceDispatch (s=0xa279000, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#68 0x023f4855 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#69 0x023f8668 in ?? () from /lib/libglib-2.0.so.0
#70 0x023f8848 in g_main_context_iteration () from /lib/libglib-2.0.so.0
#71 0x05fc5565 in QEventDispatcherGlib::processEvents (this=0xa25bb78, flags=...) at kernel/qeventdispatcher_glib.cpp:415
#72 0x01683be5 in QGuiEventDispatcherGlib::processEvents (this=0xa25bb78, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#73 0x05f95609 in QEventLoop::processEvents (this=0xbf8874b4, flags=) at kernel/qeventloop.cpp:149
#74 0x05f95a8a in QEventLoop::exec (this=0xbf8874b4, flags=...) at kernel/qeventloop.cpp:201
#75 0x05f9a00f in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#76 0x015c0e07 in QApplication::exec () at kernel/qapplication.cpp:3672
#77 0x08086107 in main (argc=2, argv=0xbf887944) at /build/buildd/kmymoney-4.5/kmymoney/main.cpp:260

Possible duplicates by query: bug 257114, bug 256278, bug 255512, bug 255074, bug 253151.

Reported using DrKonqi
Comment 1 iwaddox 2010-11-29 17:12:55 UTC
Created attachment 53862 [details]
New crash information added by DrKonqi

kmymoney (4.5.0) on KDE Platform 4.5.1 (KDE 4.5.1) using Qt 4.7.0

- What I was doing when the application crashed:

I can reproduce this crash at will.

Open KMyMoney
Click Scheduled transactions
Click New Scheduled
Click Deposit tab
Click Split symbol

-- Backtrace (Reduced):
#15 0x03a33019 in QAbstractButton::clicked (this=0x9afa260, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:206
#16 0x036f2ff9 in QAbstractButtonPrivate::emitClicked (this=0x9afa280) at widgets/qabstractbutton.cpp:546
#17 0x036f46f4 in QAbstractButtonPrivate::click (this=0x9afa280) at widgets/qabstractbutton.cpp:539
#18 0x036f49ae in QAbstractButton::mouseReleaseEvent (this=0x9afa260, e=0xbfbdac50) at widgets/qabstractbutton.cpp:1121
#19 0x03322e08 in QWidget::event (this=0x9afa260, event=0xbfbdac50) at kernel/qwidget.cpp:8187
Comment 2 iwaddox 2010-11-29 17:17:13 UTC
If you select 

Direct Deposit
Account
Payee

Before selecting split it does NOT crash
Comment 3 Cristian Oneț 2010-12-01 18:14:46 UTC
SVN commit 1202624 by conet:

BUG: 258290
Disable the split button until a proper account was selected. The code is there on the KDE3 version don't know how it got lost during the port.

 M  +3 -0      transactioneditor.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1202624
Comment 4 David Houlden 2010-12-02 00:02:29 UTC
I think this fix has broken the ledger view transaction form. On 4.5 cvs head and 1.0.5 I used to be able to enter a split transaction without a "pay to" or "pay from". Now, the split button is disabled.
Comment 5 Thomas Baumgart 2010-12-02 07:26:48 UTC
I agree with David. If it's only a problem with scheduled transactions then we should not make it mandatory for all other transactions as well. I have many of those split transactions w/o a payee assignment. None of them came from a scheduled transaction though.

Bug entry reopened.
Comment 6 Cristian Oneț 2010-12-02 09:11:01 UTC
Sorry for breaking things. I just took the code from the 1.x version. At least no we have the answer why it was removed in the KDE4 version.
I see two solutions to this problem. 
1. From the ledger call slotUpdateAccount(const QString&) with the current account after creating the edit widgets
2. Replace "if (category->splitButton())" with 
"if (m_item->showRowInForm(0) && category->splitButton())"
Comment 7 Cristian Oneț 2010-12-02 17:47:03 UTC
SVN commit 1202895 by conet:

BUG: 258290
Disable the split button only if the editors account is not a valid one like in a new scheduled transaction when an account is not yet selected.

 M  +1 -1      transactioneditor.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1202895
Comment 8 Cristian Oneț 2010-12-02 17:47:54 UTC
SVN commit 1202896 by conet:

BUG: 258290
Disable the split button only if the editors account is not a valid one like in a new scheduled transaction when an account is not yet selected.
Merged into the stable branch.

 M  +1 -1      transactioneditor.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1202896
Comment 9 Guy Shoebridge 2011-01-05 15:17:04 UTC
Created attachment 55602 [details]
New crash information added by DrKonqi

kmymoney (4.5.0) on KDE Platform 4.5.1 (KDE 4.5.1) using Qt 4.7.0

- What I was doing when the application crashed:creating a new deposit transaction and making this a split cost. When presing the split button the application crashed

-- Backtrace (Reduced):
#15 0x04824019 in QAbstractButton::clicked (this=0xf824540, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:206
#16 0x044e3ff9 in QAbstractButtonPrivate::emitClicked (this=0xfaf32f8) at widgets/qabstractbutton.cpp:546
#17 0x044e56f4 in QAbstractButtonPrivate::click (this=0xfaf32f8) at widgets/qabstractbutton.cpp:539
#18 0x044e59ae in QAbstractButton::mouseReleaseEvent (this=0xf824540, e=0xbfbbf7b0) at widgets/qabstractbutton.cpp:1121
#19 0x04113e08 in QWidget::event (this=0xf824540, event=0xbfbbf7b0) at kernel/qwidget.cpp:8187