KMyMoney Crash with AqBanking

Ryan Novosielski ryan at novosielski.com
Tue May 23 03:36:05 UTC 2017


On Mon, May 22, 2017, at 07:55 AM, Thomas Baumgart wrote:
> Hi,
> 
> On Sunday 21 May 2017 16:41:14 Ryan Novosielski wrote:
> 
> > Hi all,
> > 
> > Some time back I moved to AqBanking for my Chase accounts. It's not as
> > convenient as it was before they broke the usual method for downloads,
> > but it works.
> > 
> > Fast forward some and I upgraded Ubuntu at some point (not certain which
> > upgrade) and it broke something in the whole chain. I navigate through
> > the screen where it asks me what date range to use, asks for a password,
> > downloads, and then when it gets to "Operation finished, you can now
> > close this window," I click close and KMyMoney crashes 100% of the time
> > with a signal 11. I'm currently on Ubuntu 17.04, which has KMyMoney
> > 4.8.0 and AqBanking 5.6.12.
> > 
> > If I run KMyMoney from the command line, I get the following in the
> > Terminal window after I click "close" and the software crashes:
> > 
> > Executed a job which was not in queue. Please inform the KMyMoney
> > developers.
> > Executed a job which was not in queue. Please inform the KMyMoney
> > developers.
> > KMyMoneyPlugin::KMMStatementInterface::import start
> > KCrash: Application 'kmymoney' crashing...
> > KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit
> > KCrash: Connect sock_file=/home/ryanov/.kde/socket-obelisk/kdeinit4__0
> > 
> > (kmymoney:9704): GLib-GIO-ERROR **: inotify read(): Bad file descriptor
> > 
> > [1]+  Trace/breakpoint trap   (core dumped) kmymoney
> > 
> > I'm a pretty savvy user, have a lot of experience building kernels and
> > all the rest of it, but so far, I've been stymied by attempting to put
> > together a debug build on Ubuntu. Following the directions never quite
> > seems to get me what I need, and apparently there has been some paradigm
> > shift in the debug builds anyway that makes the directions incorrect.
> > 
> > Can anyone suggest how I can get started helping to solve this problem?
> > Thanks!
> 
> The first thing I would do is to run KMyMoney under gdb control, so on
> the 
> command line run
> 
> 
>    gdb kmymoney
> 
> and once gdb comes up with its prompt execute
> 
>    run
> 
> Here's how this looks for me
> 
> ---8<---
> thb at thb-nb:~$ gdb kmymoney 
> GNU gdb (GDB; openSUSE 13.1) 7.6.50.20130731-cvs
> Copyright (C) 2013 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later
> <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show
> copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-suse-linux".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <http://bugs.opensuse.org/>.
> Find the GDB manual and other documentation resources online at:
> <http://www.gnu.org/software/gdb/documentation/>.
> For help, type "help".
> Type "apropos word" to search for commands related to "word".
> ..
> Reading symbols from /usr/bin/kmymoney...done.
> (gdb) run
> Starting program: /usr/bin/kmymoney 
> ...
> ---8<---
> 
> 
> Now run the code that causes the crash and check if you can extract some
> more 
> information.

Thanks, Thomas. Here's what happens:

KMyMoneyPlugin::KMMStatementInterface::import start

Thread 1 "kmymoney" received signal SIGSEGV, Segmentation fault.
0xb59f8673 in hash (n=<optimized out>, p=0x2) at tools/qhash.cpp:85
85      tools/qhash.cpp: No such file or directory.

I also ran a backtrace, which I think is not going to be helpful -- at
least that's what the Ubuntu bug thing says, but here it is anyway:

(gdb) backtrace
#0  0xb59f8673 in hash (n=<optimized out>, p=0x2) at tools/qhash.cpp:85
#1  qHash (key=...) at tools/qhash.cpp:99
#2  0xb74d726f in ?? () from /usr/lib/libkmm_mymoney.so.4
#3  0xb74d031c in MyMoneyObjectContainer::account(QString const&) ()
from /usr/lib/libkmm_mymoney.so.4
#4  0xb7461903 in MyMoneyFile::account(QString const&) const () from
/usr/lib/libkmm_mymoney.so.4
#5  0x084aa0ae in ?? ()
#6  0x080c59aa in _start ()

> Next would be to build KMyMoney with debug symbols which involves
> building 
> from source in case your distro does not provide the debug version.

Either this got way easier since the last time I tried this, or I got
way smarter. The answer is to install debugging symbols from the
-dbgsyms repository, detailed here:
https://wiki.ubuntu.com/Debug%20Symbol%20Packages -- quite easy, just a
couple of minutes of work. Here's the proper backtrace:

(gdb) backtrace
#0  0xb59f8673 in hash (n=<optimized out>, p=0x38) at tools/qhash.cpp:85
#1  qHash (key=...) at tools/qhash.cpp:99
#2  0xb74d726f in QHash<QString, MyMoneyAccount const*>::findNode
(this=0x87a4d88, akey=..., ahp=0x0)
    at /usr/include/qt4/QtCore/qhash.h:882
#3  0xb74d031c in QHash<QString, MyMoneyAccount const*>::find (akey=...,
this=0x87a4d88)
    at /usr/include/qt4/QtCore/qhash.h:868
#4  MyMoneyObjectContainer::account (this=0x87a640c, id=...)
    at
    /build/kmymoney-CDqgbI/kmymoney-4.8.0/kmymoney/mymoney/mymoneyobjectcontainer.cpp:209
#5  0xb7461903 in MyMoneyFile::account (this=0xb755f680
<MyMoneyFile::file>, id=...)
    at
    /build/kmymoney-CDqgbI/kmymoney-4.8.0/kmymoney/mymoney/mymoneyfile.cpp:667
#6  0x084aa0ae in MyMoneyStatementReader::import (this=0xa8bbc80, s=...,
messages=...)
    at
    /build/kmymoney-CDqgbI/kmymoney-4.8.0/kmymoney/converter/mymoneystatementreader.cpp:344
#7  0x080c59aa in KMyMoneyApp::slotStatementImport (this=0x8ac0b78,
s=...)
    at /build/kmymoney-CDqgbI/kmymoney-4.8.0/kmymoney/kmymoney.cpp:2419
#8  0x085cf6ed in KMyMoneyPlugin::KMMStatementInterface::import
(this=0x8ad3898, s=...)
    at
    /build/kmymoney-CDqgbI/kmymoney-4.8.0/kmymoney/plugins/interfaces/kmmstatementinterface.cpp:44
#9  0xabb92aab in KBankingPlugin::importStatement (s=...,
this=<optimized out>)
    at
    /build/kmymoney-CDqgbI/kmymoney-4.8.0/kmymoney/plugins/kbanking/mymoneybanking.cpp:833
#10 KMyMoneyBanking::importAccountInfo (this=0x8d330c8, ai=0xa8e9400)
    at
    /build/kmymoney-CDqgbI/kmymoney-4.8.0/kmymoney/plugins/kbanking/mymoneybanking.cpp:1513
#11 0xabb9d3cb in AB_Banking::importContext (this=0x8d330c8,
ctx=0xaa46d88, flags=0)
    at
    /build/kmymoney-CDqgbI/kmymoney-4.8.0/kmymoney/plugins/kbanking/banking.cpp:199
#12 0xabb95a7e in KBankingPlugin::executeQueue
(this=this at entry=0x9101048)
    at
    /build/kmymoney-CDqgbI/kmymoney-4.8.0/kmymoney/plugins/kbanking/mymoneybanking.cpp:571
#13 0xabb95b73 in KBankingPlugin::executeQueue (this=0x9101048)
    at
    /build/kmymoney-CDqgbI/kmymoney-4.8.0/kmymoney/plugins/kbanking/mymoneybanking.cpp:566
#14 0xabb95c74 in KBankingPlugin::updateAccount (this=0x9101048,
acc=..., moreAccounts=false)
    at
    /build/kmymoney-CDqgbI/kmymoney-4.8.0/kmymoney/plugins/kbanking/mymoneybanking.cpp:559
#15 0x080c8207 in KMyMoneyApp::slotAccountUpdateOnline (this=0x8ac0b78)
    at /build/kmymoney-CDqgbI/kmymoney-4.8.0/kmymoney/kmymoney.cpp:7576
#16 0x08114928 in KMyMoneyApp::qt_static_metacall (_o=0x8ac0b78,
_c=QMetaObject::InvokeMetaMethod, _id=112, 
    _a=0xbfffe374) at
    /build/kmymoney-CDqgbI/kmymoney-4.8.0/obj-i686-linux-gnu/kmymoney/moc_kmymoney.cpp:531
#17 0xb5b0cd8b in QMetaObject::activate (sender=0x89a50a8, m=0xb6ac1b94
<QAction::staticMetaObject>, 
    local_signal_index=1, argv=0xbfffe374) at kernel/qobject.cpp:3567
#18 0xb60f6689 in QAction::triggered (this=0x89a50a8, _t1=false) at
.moc/release-shared/moc_qaction.cpp:276
#19 0xb60f7c31 in QAction::activate (this=0x89a50a8,
event=QAction::Trigger) at kernel/qaction.cpp:1257
#20 0xb65f874b in QAction::trigger (this=<optimized out>) at
../../include/QtGui/../../src/gui/kernel/qaction.h:218
---Type <return> to continue, or q <return> to quit---
#21 QToolButton::nextCheckState (this=0x8ccd998) at
widgets/qtoolbutton.cpp:1152
#22 0xb651e897 in QAbstractButtonPrivate::click (this=0x8ccdb98) at
widgets/qabstractbutton.cpp:530
#23 0xb651ea27 in QAbstractButton::mouseReleaseEvent (this=0x8ccd998,
e=0xbfffe904)
    at widgets/qabstractbutton.cpp:1123
#24 0xb65f86d1 in QToolButton::mouseReleaseEvent (this=0x8ccd998,
e=0xbfffe904) at widgets/qtoolbutton.cpp:723
#25 0xb615c589 in QWidget::event (this=0x8ccd998, event=0xbfffe904) at
kernel/qwidget.cpp:8775
#26 0xb651fb98 in QAbstractButton::event (this=0x8ccd998, e=0xbfffe904)
at widgets/qabstractbutton.cpp:1082
#27 0xb65f87af in QToolButton::event (this=0x8ccd998, event=0xbfffe904)
at widgets/qtoolbutton.cpp:1168
#28 0xb60fd68a in QApplicationPrivate::notify_helper (this=0x87c9f78,
receiver=0x8ccd998, e=0xbfffe904)
    at kernel/qapplication.cpp:4570
#29 0xb6104be6 in QApplication::notify (this=0x87bf430,
receiver=0x8ccd998, e=0xbfffe904)
    at kernel/qapplication.cpp:4113
#30 0xb6cbc24c in KApplication::notify(QObject*, QEvent*) () from
/usr/lib/libkdeui.so.5
#31 0xb5af759a in QCoreApplication::notifyInternal (this=0x87bf430,
receiver=0x8ccd998, event=0xbfffe904)
    at kernel/qcoreapplication.cpp:955
#32 0xb61040f1 in QCoreApplication::sendEvent (event=<optimized out>,
receiver=<optimized out>)
    at
    ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#33 QApplicationPrivate::sendMouseEvent (receiver=0x8ccd998,
event=0xbfffe904, alienWidget=0x8ccd998, 
    nativeWidget=0x8c98ac8, buttonDown=0xb6adbd2c <qt_button_down>,
    lastMouseReceiver=..., spontaneous=true)
    at kernel/qapplication.cpp:3178
#34 0xb618ee4a in QETWidget::translateMouseEvent (this=0x8c98ac8,
event=0xbfffeb2c)
    at kernel/qapplication_x11.cpp:4638
#35 0xb618e640 in QApplication::x11ProcessEvent (this=0x87bf430,
event=0xbfffeb2c)
    at kernel/qapplication_x11.cpp:3626
#36 0xb61baac2 in x11EventSourceDispatch (s=0x87c84e8, callback=0x0,
user_data=0x0)
    at kernel/qguieventdispatcher_glib.cpp:146
#37 0xb46bc019 in g_main_context_dispatch () from
/lib/i386-linux-gnu/libglib-2.0.so.0
#38 0xb46bc2b9 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#39 0xb46bc384 in g_main_context_iteration () from
/lib/i386-linux-gnu/libglib-2.0.so.0
#40 0xb5b2a115 in QEventDispatcherGlib::processEvents (this=0x879cf48,
flags=...)
    at kernel/qeventdispatcher_glib.cpp:450
#41 0xb61baba6 in QGuiEventDispatcherGlib::processEvents
(this=0x879cf48, flags=...)
    at kernel/qguieventdispatcher_glib.cpp:204
#42 0xb5af5c7d in QEventLoop::processEvents (this=0xbfffee04, flags=...)
at kernel/qeventloop.cpp:149
#43 0xb5af600e in QEventLoop::exec (this=0xbfffee04, flags=...) at
kernel/qeventloop.cpp:204
#44 0xb5afc616 in QCoreApplication::exec () at
kernel/qcoreapplication.cpp:1227
#45 0xb60fb524 in QApplication::exec () at kernel/qapplication.cpp:3828
#46 0x080a9cc5 in runKMyMoney (splash=splash at entry=0x89968f0,
a=0x87bf430, this=<optimized out>, 
    this=<optimized out>, this=<optimized out>, this=<optimized out>,
    this=<optimized out>)
    at /build/kmymoney-CDqgbI/kmymoney-4.8.0/kmymoney/main.cpp:283
#47 0x080a67fa in main (argc=1, argv=0xbffff1f4) at
/build/kmymoney-CDqgbI/kmymoney-4.8.0/kmymoney/main.cpp:182

Hope this helps. This is stock Ubuntu 17.04, so far as I know -- no
special packages for any of it, though I suppose it's possible I have
some cruft around from a time when this might have required newer
releases of some things. I think I confirmed that this is broken on a
fresh install too, though.

-- 
  Ryan Novosielski
  ryan at novosielski.com


More information about the KMyMoney mailing list