Application: kmymoney (4.5.3) KDE Platform Version: 4.6.2 (4.6.2) Qt Version: 4.7.2 Operating System: Linux 2.6.38-8-generic i686 Distribution: Ubuntu 11.04 -- Information about the crash: Attempting to import a gnucash file (10MB), it dies right after finishing the configuration and starting the import. I have no 0 prices. I have Ubuntu 11.04 running inside VMWare Player 3.1.4 running on Windows 7 SP1. The crash can be reproduced every time. -- Backtrace: Application: KMyMoney (kmymoney), signal: Aborted [Current thread is 1 (Thread 0xb7818930 (LWP 2593))] Thread 3 (Thread 0xb75ecb70 (LWP 2595)): #0 0x007be416 in __kernel_vsyscall () #1 0x087c2f76 in poll () from /lib/i386-linux-gnu/libc.so.6 #2 0x027f584b in g_poll () from /lib/i386-linux-gnu/libglib-2.0.so.0 #3 0x027e51af in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #4 0x027e592b in g_main_loop_run () from /lib/i386-linux-gnu/libglib-2.0.so.0 #5 0x01f70304 in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0 #6 0x0280e2df in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #7 0x001e3e99 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0 #8 0x087d173e in clone () from /lib/i386-linux-gnu/libc.so.6 Thread 2 (Thread 0xb24aeb70 (LWP 2603)): #0 0x09dbfe8e in ?? () from /usr/lib/libQtCore.so.4 #1 0x09ee0ff5 in ?? () from /usr/lib/libQtCore.so.4 #2 0x027e3fd4 in g_main_context_prepare () from /lib/i386-linux-gnu/libglib-2.0.so.0 #3 0x027e4e63 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #4 0x027e5524 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0 #5 0x09ee1577 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #6 0x09eb3289 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #7 0x09eb3522 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #8 0x09dbd2a0 in QThread::exec() () from /usr/lib/libQtCore.so.4 #9 0x09e94fdb in ?? () from /usr/lib/libQtCore.so.4 #10 0x09dbfda2 in ?? () from /usr/lib/libQtCore.so.4 #11 0x001e3e99 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0 #12 0x087d173e in clone () from /lib/i386-linux-gnu/libc.so.6 Thread 1 (Thread 0xb7818930 (LWP 2593)): [KCrash Handler] #7 0x007be416 in __kernel_vsyscall () #8 0x0872be71 in raise () from /lib/i386-linux-gnu/libc.so.6 #9 0x0872f34e in abort () from /lib/i386-linux-gnu/libc.so.6 #10 0x09db53ba in qt_message_output(QtMsgType, char const*) () from /usr/lib/libQtCore.so.4 #11 0x09db5581 in ?? () from /usr/lib/libQtCore.so.4 #12 0x09db5689 in qFatal(char const*, ...) () from /usr/lib/libQtCore.so.4 #13 0x083bdec6 in MyMoneyGncReader::readFile (this=0xa9d64f0, pDevice=0xa299788, storage=0xa92c714) at /build/buildd/kmymoney-4.5.3/kmymoney/converter/mymoneygncreader.cpp:1278 #14 0x080ff7e5 in KMyMoneyView::readFile (this=0xa2a1670, url=...) at /build/buildd/kmymoney-4.5.3/kmymoney/views/kmymoneyview.cpp:738 #15 0x080bcc42 in KMyMoneyApp::slotGncImport (this=0xa1a3558) at /build/buildd/kmymoney-4.5.3/kmymoney/kmymoney.cpp:2195 #16 0x080d5140 in KMyMoneyApp::qt_metacall (this=0xa1a3558, _c=QMetaObject::InvokeMetaMethod, _id=35, _a=0xbfe7f468) at /build/buildd/kmymoney-4.5.3/obj-i686-linux-gnu/kmymoney/kmymoney.moc:438 #17 0x09eba6ba in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4 #18 0x09eca4ff in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4 #19 0x0699c8d9 in QAction::triggered(bool) () from /usr/lib/libQtGui.so.4 #20 0x0699cb38 in QAction::activate(QAction::ActionEvent) () from /usr/lib/libQtGui.so.4 #21 0x06e2e8ad in ?? () from /usr/lib/libQtGui.so.4 #22 0x06e3516b in ?? () from /usr/lib/libQtGui.so.4 #23 0x06e35ffe in QMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4 #24 0x0064dcf4 in KMenu::mouseReleaseEvent(QMouseEvent*) () from /usr/lib/libkdeui.so.5 #25 0x069fc13a in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4 #26 0x06e364d7 in QMenu::event(QEvent*) () from /usr/lib/libQtGui.so.4 #27 0x069a3d24 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #28 0x069a9201 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4 #29 0x005703ca in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5 #30 0x09eb40bb in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4 #31 0x069a4c3b in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4 #32 0x06a2e4c3 in ?? () from /usr/lib/libQtGui.so.4 #33 0x06a2c746 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4 #34 0x06a57b84 in ?? () from /usr/lib/libQtGui.so.4 #35 0x027e4aa8 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0 #36 0x027e5270 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0 #37 0x027e5524 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0 #38 0x09ee153c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #39 0x06a57775 in ?? () from /usr/lib/libQtGui.so.4 #40 0x09eb3289 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #41 0x09eb3522 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4 #42 0x09eb7ecc in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4 #43 0x069a18e7 in QApplication::exec() () from /usr/lib/libQtGui.so.4 #44 0x08086c4f in main (argc=) at /build/buildd/kmymoney-4.5.3/kmymoney/main.cpp:260 Possible duplicates by query: bug 264313, bug 264312. Reported using DrKonqi
Before attempting the import, I did a "Check & Repair All" in Gnucash. The error message reported is: Import failed: Input file cannot be parsed; may be corrupt error triggered by consumer
The gnucash file I was importing was on a Windows drive accessed via a VMWare "Shared Folder". When I copied the file to my Ubuntu home dir the import completed OK. An easy workaround, but perhaps there should be some error handling upon failure to read the import file. I did also note the gnucash import crashed if my gnucash file was compressed.
SVN commit 1233113 by conet: BUG: 273770 Replace all usage of qFatal with qWarning in KMyMoney. I mean I've heard of assertive programming but this pushes it over the edge. qFatal('Can't open file') - I prefer letting the user know that there was an error and keep running to bringing down the whole application (it provides a feeling of instability) over a file open failure. If I went too far with this change sorry but I prefer discussing re-adding the qFatal calls on a point-by-point basis. In most cases it's a shortcut for poor error handling. M +13 -13 converter/mymoneygncreader.cpp M +1 -1 converter/webpricequote.cpp M +1 -1 mymoney/mymoneyfile.cpp M +1 -1 mymoney/mymoneytransactionfilter.cpp M +1 -1 mymoney/storage/mymoneydbdriver.cpp M +2 -2 mymoney/storage/mymoneystoragesql.cpp M +1 -1 views/kscheduledview.cpp M +1 -1 wizards/newloanwizard/keditloanwizard.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1233113