Bug 372453 - KMyMoney 4.8 crashes on opening some files
Summary: KMyMoney 4.8 crashes on opening some files
Status: RESOLVED DUPLICATE of bug 378435
Alias: None
Product: kmymoney
Classification: Applications
Component: general (show other bugs)
Version: 4.8.0
Platform: Fedora RPMs Linux
: HI major
Target Milestone: ---
Assignee: KMyMoney Devel Mailing List
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2016-11-14 00:53 UTC by Yuri Shirman
Modified: 2018-03-28 08:00 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.0.0
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yuri Shirman 2016-11-14 00:53:47 UTC
Application: kmymoney (4.8.0)
KDE Platform Version: 4.14.25
Qt Version: 4.8.7
Operating System: Linux 4.8.6-300.fc25.x86_64 x86_64
Distribution: "Fedora release 25 (Twenty Five)"

-- Information about the crash:
I upgraded to F25 beta which comes with KMyMoney 4.8.0 and the program crashes when opening my default file. I can open the olde (about 2.5 years) version of the file.
This probably means some inconsistency in the file (I did make some changes by hand when I could not delete some payees inside the program). But the version 4.7.2 opens the same file without any issues.

The crash can be reproduced every time.

-- Backtrace:
Application: KMyMoney (kmymoney), signal: Aborted
Using host libthread_db library "/lib64/libthread_db.so.1".
[KCrash Handler]
#6  0x00007fd70fece92f in raise () at /lib64/libc.so.6
#7  0x00007fd70fed052a in abort () at /lib64/libc.so.6
#8  0x00007fd70fec6e37 in __assert_fail_base () at /lib64/libc.so.6
#9  0x00007fd70fec6ee2 in  () at /lib64/libc.so.6
#10 0x00007fd6f1de2f6f in  () at /lib64/libgwenhywfar.so.60
#11 0x00007fd6f1723151 in AB_Job_new () at /lib64/libaqbanking.so.35
#12 0x00007fd6f26b7b9e in KBankingPlugin::availableJobs(QString) () at /usr/lib64/kde4/kmm_kbanking.so
#13 0x00007fd71403ebfa in onlineJobAdministration::canSendCreditTransfer() () at /lib64/libkmm_mymoney.so.4
#14 0x0000558cb9dfb427 in KMyMoneyApp::slotUpdateActions() ()
#15 0x0000558cb9e01da0 in KMyMoneyApp::updateCaption(bool) ()
#16 0x0000558cb9e41cc8 in KMyMoneyApp::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) ()
#17 0x00007fd71117f090 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () at /lib64/libQtCore.so.4
#18 0x00007fd713fcbf48 in MyMoneyFile::attachStorage(IMyMoneyStorage*) () at /lib64/libkmm_mymoney.so.4
#19 0x0000558cb9e655f0 in KMyMoneyView::readFile(KUrl const&) ()
#20 0x0000558cb9e2b0d6 in KMyMoneyApp::slotFileOpenRecent(KUrl const&) ()
#21 0x0000558cb9de2557 in runKMyMoney(KApplication*, KStartupLogo*) [clone .isra.9] ()
#22 0x0000558cb9ddf4fc in main ()

Reported using DrKonqi
Comment 1 Christian David 2016-11-14 18:24:53 UTC
Mhh, this looks like a bug for (or caused by) me :(

Can you open KMyMoney within a terminal and send me the console output?

Do you use aqBanking (HBCI/FinTS)? If not, you can disable the aqbanking plugin in the settings. This work around could solve the crash.
Comment 2 Yuri Shirman 2016-11-14 19:30:50 UTC
(In reply to Christian David from comment #1)

Yes, disabling kbanking plugin solves the issue for me. Thanks.
Here is the console output:

KMyMoney csvexport plugin loaded
onlineTask available "org.kmymoney.creditTransfer.germany" 
onlineTaskConverter available "org.kmymoney.creditTransfer.germany" ("org.kmymoney.creditTransfer.sepa") 
onlineTaskConverter available "org.kmymoney.creditTransfer.sepa" ("org.kmymoney.creditTransfer.germany") 
KMyMoney ofximport plugin loaded
KMyMoney kbanking plugin loaded
KMyMoney reconciliation report plugin loaded
reading file
start parsing file
startDocument
reading accounts
reading transactions
reading securities
reading currencies
reading prices
reading reports
endDocument
kmymoney: buffer.c:1017: GWEN_Buffer_AppendString: Assertion `buffer' failed.
KCrash: Application 'kmymoney' crashing...
KCrash: Attempting to start /usr/libexec/kde4/drkonqi from kdeinit
KCrash: Connect sock_file=/home/shirman/.kde/socket-woland.lan/kdeinit4__0
Comment 3 Ralf Habacker 2016-11-15 13:02:54 UTC
According to https://scan.coverity.com/projects/kmymoney?tab=overview has kmymoney 4.8 about 80 issues related to null pointer deferences. It may help to fix them.
Comment 4 Christian David 2016-11-15 18:23:16 UTC
Git commit 64d8749496a04c3be88300f040ae1c1e14af8103 by Christian Dávid.
Committed on 15/11/2016 at 18:09.
Pushed by christiand into branch 'master'.

Fixed constructors in KBanking

Some class members were not initialized correctly what potentially
caused crashes.
FIXED-IN: 5.0

M  +11   -2    kmymoney/plugins/kbanking/mymoneybanking.cpp

http://commits.kde.org/kmymoney/64d8749496a04c3be88300f040ae1c1e14af8103
Comment 5 Christian David 2016-11-15 18:27:33 UTC
(In reply to Ralf Habacker from comment #3)
> According to https://scan.coverity.com/projects/kmymoney?tab=overview has
> kmymoney 4.8 about 80 issues related to null pointer deferences. It may help
> to fix them.

That is probably right. I made a commit for KMyMoney 5 to fix this. It should be easy to back port the patch (unfortunately I cannot make/test it at the moment). Then we need to evaluate if the bug was actually fixed or if this is an upstream bug.

However, this shows again that the plugins should have their own thread. A crash of a plugin (even if we give it invalid data) should not take down KMyMoney.
Comment 6 Ralf Habacker 2016-11-16 07:41:53 UTC
(In reply to Christian David from comment #5)
> (In reply to Ralf Habacker from comment #3)
> > According to https://scan.coverity.com/projects/kmymoney?tab=overview has
> > kmymoney 4.8 about 80 issues related to null pointer deferences. It may help
> > to fix them.
> 
> That is probably right. I made a commit for KMyMoney 5 to fix this. It
> should be easy to back port the patch 
I back ported it to 4.8 with minor fixes (do not use nullptr). 

> (unfortunately I cannot make/test it at the moment). Then we need to evaluate if the bug was actually fixed or if this is an upstream bug.
How can we check that ?
Comment 7 Marko Käning 2016-11-16 07:50:27 UTC
KDE's CI system takes care of those checks. (Or, did I misunderstand you?)
Comment 8 Ralf Habacker 2016-11-16 08:04:25 UTC
(In reply to Marko Käning from comment #7)
> KDE's CI system takes care of those checks. (Or, did I misunderstand you?)

This bug has been reported by an end user with a dedicated configuration. I guess checking the related functionality is not covered by a unit test running on the CI.
Comment 9 Marko Käning 2016-11-16 08:38:26 UTC
(In reply to Ralf Habacker from comment #8)
> I guess checking the related functionality is not covered by a unit 
> test running on the CI.

Sorry for the noise, then. :)
Comment 10 Thomas Bettler 2016-12-28 18:13:48 UTC
(In reply to Christian David from comment #4)
> Git commit 64d8749496a04c3be88300f040ae1c1e14af8103 by Christian Dávid.
> Committed on 15/11/2016 at 18:09.
> Pushed by christiand into branch 'master'.
> 
> Fixed constructors in KBanking
> 
> Some class members were not initialized correctly what potentially
> caused crashes.
> FIXED-IN: 5.0
> 
> M  +11   -2    kmymoney/plugins/kbanking/mymoneybanking.cpp
> 
> http://commits.kde.org/kmymoney/64d8749496a04c3be88300f040ae1c1e14af8103

I suffer from the same bug. However the proposed patch did not solve the issue. Neither did disabling the banking plugin.

How can I help to solve the bug. What information would you need therefore?
Comment 11 Thomas Bettler 2016-12-28 19:05:18 UTC
Corrigendum: disabling the kbanking plugin works, just needed to restart kmymoney.
Comment 12 Thomas Bettler 2017-06-02 05:28:51 UTC
fixed in bug #378435 - you may close this - works for me now
Comment 13 Thomas Baumgart 2017-06-02 06:28:44 UTC

*** This bug has been marked as a duplicate of bug 378435 ***