Bug 237892 - Crash adding accounts to report
Summary: Crash adding accounts to report
Status: RESOLVED WORKSFORME
Alias: None
Product: kmymoney
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Fedora RPMs Linux
: NOR crash
Target Milestone: ---
Assignee: KMyMoney Devel Mailing List
URL:
Keywords:
: 257533 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-05-17 00:20 UTC by William Haller
Modified: 2011-05-06 16:13 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description William Haller 2010-05-17 00:20:17 UTC
Application: kmymoney (3.97.2)
KDE Platform Version: 4.4.2 (KDE 4.4.2)
Qt Version: 4.6.2
Operating System: Linux 2.6.32.11-99.fc12.x86_64 x86_64
Distribution: "Fedora release 12 (Constantine)"

-- Information about the crash:
Added new account information to several reports. It worked in the smaller reports covering 6 months and 12 months, and yearly information. This one was a report with many columns and rows, but is running on a computer with plenty of free RAM so should not have been an out of memory error.

The crash can be reproduced every time.

 -- Backtrace:
Application: KMyMoney (kmymoney), signal: Segmentation fault
[KCrash Handler]
#5  0x0000003ec809e2eb in KDChart::CartesianDiagramDataCompressor::mapToCache (this=<value optimized out>, row=<value optimized out>, column=<value optimized out>)
    at /ub/rpms/kmymoney-3.97.2/libkdchart/src/KDChartCartesianDiagramDataCompressor_p.cpp:653
#6  0x0000003ec809e3d3 in KDChart::CartesianDiagramDataCompressor::mapToCache (this=<value optimized out>, index=<value optimized out>)
    at /ub/rpms/kmymoney-3.97.2/libkdchart/src/KDChartCartesianDiagramDataCompressor_p.cpp:645
#7  0x0000003ec809ecd8 in KDChart::CartesianDiagramDataCompressor::slotModelDataChanged (this=<value optimized out>, topLeftIndex=<value optimized out>, bottomRightIndex=<value optimized out>)
    at /ub/rpms/kmymoney-3.97.2/libkdchart/src/KDChartCartesianDiagramDataCompressor_p.cpp:397
#8  0x0000003ec8068c34 in KDChart::CartesianDiagramDataCompressor::qt_metacall (this=<value optimized out>, _c=<value optimized out>, _id=<value optimized out>, _a=<value optimized out>)
    at /ub/rpms/kmymoney-3.97.2/build/libkdchart/src/moc_KDChartCartesianDiagramDataCompressor_p.cpp:107
#9  0x00007f05598812af in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#10 0x00007f05598c2d87 in QAbstractItemModel::dataChanged(QModelIndex const&, QModelIndex const&) () from /usr/lib64/libQtCore.so.4
#11 0x0000003ec8081af2 in KDChart::AttributesModel::slotDataChanged (this=<value optimized out>, topLeft=<value optimized out>, bottomRight=<value optimized out>)
    at /ub/rpms/kmymoney-3.97.2/libkdchart/src/KDChartAttributesModel.cpp:648
#12 0x0000003ec80690a4 in KDChart::AttributesModel::qt_metacall (this=<value optimized out>, _c=<value optimized out>, _id=<value optimized out>, _a=<value optimized out>)
    at /ub/rpms/kmymoney-3.97.2/build/libkdchart/src/moc_KDChartAttributesModel.cpp:104
#13 0x00007f05598812af in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#14 0x00007f05598c2d87 in QAbstractItemModel::dataChanged(QModelIndex const&, QModelIndex const&) () from /usr/lib64/libQtCore.so.4
#15 0x00007f05591fbf3b in ?? () from /usr/lib64/libQtGui.so.4
#16 0x00007f05591fc0df in QStandardItem::setData(QVariant const&, int) () from /usr/lib64/libQtGui.so.4
#17 0x00007f055920042f in QStandardItemModel::setData(QModelIndex const&, QVariant const&, int) () from /usr/lib64/libQtGui.so.4
#18 0x0000000000554ccd in reports::KReportChartView::setCellTip (this=<value optimized out>, row=<value optimized out>, column=1, tip=...)
    at /ub/rpms/kmymoney-3.97.2/kmymoney/reports/kreportchartview.cpp:522
#19 0x0000000000554fcd in reports::KReportChartView::drawPivotRowSet (this=0x78c4340, rowNum=1, rowSet=<value optimized out>, rowType=eActual, legendText=<value optimized out>, 
    startColumn=<value optimized out>, endColumn=366) at /ub/rpms/kmymoney-3.97.2/kmymoney/reports/kreportchartview.cpp:492
#20 0x00000000005570c7 in reports::KReportChartView::drawPivotChart (this=0x78c4340, grid=<value optimized out>, config=<value optimized out>, numberColumns=<value optimized out>, 
    columnHeadings=<value optimized out>, rowTypeList=..., columnTypeHeaderList=...) at /ub/rpms/kmymoney-3.97.2/kmymoney/reports/kreportchartview.cpp:278
#21 0x000000000056179a in reports::PivotTable::drawChart (this=0x0, chartView=...) at /ub/rpms/kmymoney-3.97.2/kmymoney/reports/pivottable.cpp:1827
#22 0x00000000004e1d5d in KReportsView::KReportTab::updateReport (this=0x6879c20) at /ub/rpms/kmymoney-3.97.2/kmymoney/views/kreportsview.cpp:200
#23 0x00000000004ed5e4 in KReportsView::loadView (this=<value optimized out>) at /ub/rpms/kmymoney-3.97.2/kmymoney/views/kreportsview.cpp:491
#24 0x00000000004edc3d in KReportsView::slotLoadView (this=0x0) at /ub/rpms/kmymoney-3.97.2/kmymoney/views/kreportsview.cpp:348
#25 0x00000000004edd15 in KReportsView::qt_metacall (this=0x2fa2810, _c=InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffaa61f360)
    at /ub/rpms/kmymoney-3.97.2/build/kmymoney/views/kreportsview.moc:111
#26 0x00007f05598812af in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#27 0x0000003ec884e0e5 in MyMoneyFileTransaction::commit (this=<value optimized out>) at /ub/rpms/kmymoney-3.97.2/kmymoney/mymoney/mymoneyfile.cpp:2311
#28 0x00000000004e4b2b in KReportsView::slotConfigure (this=0x2fa2810) at /ub/rpms/kmymoney-3.97.2/kmymoney/views/kreportsview.cpp:611
#29 0x00000000004edd66 in KReportsView::qt_metacall (this=0x2fa2810, _c=InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffaa61f940)
    at /ub/rpms/kmymoney-3.97.2/build/kmymoney/views/kreportsview.moc:115
#30 0x00007f05598812af in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#31 0x00007f05592cb252 in QAbstractButton::clicked(bool) () from /usr/lib64/libQtGui.so.4
#32 0x00007f055901bb0b in ?? () from /usr/lib64/libQtGui.so.4
#33 0x00007f055901cd7b in ?? () from /usr/lib64/libQtGui.so.4
#34 0x00007f055901cfec in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib64/libQtGui.so.4
#35 0x00007f0558ce2b3a in QWidget::event(QEvent*) () from /usr/lib64/libQtGui.so.4
#36 0x00007f0558c979dc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#37 0x00007f0558c9e27d in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#38 0x0000003156a06856 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#39 0x00007f055986e74c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/libQtCore.so.4
#40 0x00007f0558c9d46e in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib64/libQtGui.so.4
#41 0x00007f0558d0f405 in ?? () from /usr/lib64/libQtGui.so.4
#42 0x00007f0558d0e128 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib64/libQtGui.so.4
#43 0x00007f0558d36d82 in ?? () from /usr/lib64/libQtGui.so.4
#44 0x000000314723923e in g_main_context_dispatch () from /lib64/libglib-2.0.so.0
#45 0x000000314723cc28 in ?? () from /lib64/libglib-2.0.so.0
#46 0x000000314723cd4a in g_main_context_iteration () from /lib64/libglib-2.0.so.0
#47 0x00007f0559894063 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#48 0x00007f0558d36a4e in ?? () from /usr/lib64/libQtGui.so.4
#49 0x00007f055986d192 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#50 0x00007f055986d45c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#51 0x00007f055986f749 in QCoreApplication::exec() () from /usr/lib64/libQtCore.so.4
#52 0x000000000045a448 in main (argc=<value optimized out>, argv=<value optimized out>) at /ub/rpms/kmymoney-3.97.2/kmymoney/main.cpp:277

Reported using DrKonqi
Comment 1 Alvaro Soliverez 2010-05-25 00:12:11 UTC
Can you give an example of a report or an anon file to test the crash?
Comment 2 William Haller 2010-05-25 02:12:18 UTC
It might take quite a bit of work to create a sanitized copy. May I suggest as a simple test, creating a ledger entry for a stock that was purchased in 1980. Create a monthly report asset report from that (thus the many, many columns). Then add new stocks that have been purchased via the account report editor. This was when the crash occurred.

Changing this same report to yearly columns first before adding the new stocks into the list of rows to include worked ok. It just couldn't handle that many rows in the current iteration of the program. I've previously been able to add rows into that report without it crashing on the previous version. There are around 70 or so rows total, of various liquid assets in the report.
Comment 3 Alvaro Soliverez 2010-05-25 02:27:15 UTC
I tried setting to daily columns for all categories for all dates, and it took a lot of memory, but it worked.
Just to give you an idea of how much it took. This report had about 140 categories and data since 2005. KMyMoney got as much as 2GB of RAM to process it.

So, can you save your file as anonymous file and attach it here? Go to Save As, and select the anonymous format. That sanitizes the file. Please. Thank you!
Comment 4 Alvaro Soliverez 2010-05-30 02:27:23 UTC
I really need an anonymized file to make any progress on this, please.
Comment 5 William Haller 2010-05-30 06:05:21 UTC
Can you point me to a page that describes your anonymous file process (specifically how is the data made anonymous and still kept useful?)

In further testing, I've run the file through your consistency check that succeeds.

I've deleted all customized reports. Starting with a standard net worth report by months, I select all dates as the range (Jan 1980 to present). It displays top-level data for all months properly. I save this out and restart kmymoney. The next thing I tried was to select totals. That worked.

Selecting All or Groups consistently crashes. There is no memory exhaustion - I had htop running while doing it. However, there is a report from glibc of an error kmymoney: malloc(): smallbin double linked list corrupted: 0x00000000079f95c0.

It's been a real busy week with end of school here. I'll try to get some more info about the crash, but I'm uncomfortable with shipping off a copy of the data.
Comment 6 Thomas Baumgart 2010-05-30 09:04:41 UTC
Instructions on how to create the anonymized form of the file can be found on http://kmymoney2.sourceforge.net/online-manual/details.formats.anonymous.html . Please feel free to send the file directly to Alvaro w/o attaching it here.

During the verification process (when you need to duplicate the problem with the anonymized file) you will see what happened to your personal data. It's an XML file, so you can also use your favorite text editor to take a look.
Comment 7 Alvaro Soliverez 2010-07-19 02:48:42 UTC
Unless we get an anonymized file, we cannot work on this issue in an efficient way. Right now we cannot reproduce the issue, and we need a test file to make any progress.
Comment 8 William Haller 2010-07-19 04:28:59 UTC
Sorry. I'm not going to provide a file, anonymous or not. The file is simply too large to try to strip down, checking each time if I've still got the bug, and then checking the resulting file to see if it is sufficiently anonymous.

I appreciate your difficulty, but I spent my life working in the embedded controller world where all you got was a CPU running light that went out if something drastic happened. That wasn't very efficient either, and diagnosis via logic analyzers isn't fun either. A back trace isn't ideal, but at least its something, and its all I feel I can provide.

This isn't an open source issue - I wouldn't send an anonymous file to Microsoft if I was running their software either.
Comment 9 Alvaro Soliverez 2010-07-19 11:30:37 UTC
Ok. Report back if you have the same problem with the latest version.
Comment 10 Cristian Oneț 2011-05-06 16:13:18 UTC
*** Bug 257533 has been marked as a duplicate of this bug. ***