Bug 280172

Summary: Application Crashed
Product: [Applications] kmymoney Reporter: Dave <dave>
Component: generalAssignee: KMyMoney Devel Mailing List <kmymoney-devel>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: 4.5.3   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Dave 2011-08-16 07:35:13 UTC
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-10-generic i686
Distribution: Ubuntu 11.04

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

I had just deleted some categories, assigning the existing data of that category to its parent category.
Then tried to view the yearly budget vs actual report.

The crash can be reproduced every time.

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

Thread 2 (Thread 0xb7625b70 (LWP 2095)):
#0  0x0023236b in pthread_mutex_lock () from /lib/i386-linux-gnu/libpthread.so.0
#1  0x03eca080 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#2  0x03eca92b in g_main_loop_run () from /lib/i386-linux-gnu/libglib-2.0.so.0
#3  0x02599304 in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
#4  0x03ef32df in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#5  0x0022fe99 in start_thread () from /lib/i386-linux-gnu/libpthread.so.0
#6  0x00c6173e in clone () from /lib/i386-linux-gnu/libc.so.6

Thread 1 (Thread 0xb788f930 (LWP 2093)):
[KCrash Handler]
#7  0x002fc416 in __kernel_vsyscall ()
#8  0x00bbbe71 in raise () from /lib/i386-linux-gnu/libc.so.6
#9  0x00bbf34e in abort () from /lib/i386-linux-gnu/libc.so.6
#10 0x008ea0b5 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#11 0x008e7fa5 in ?? () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#12 0x008e7fe2 in std::terminate() () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#13 0x008e81ab in __cxa_rethrow () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#14 0x0818eef3 in prepend (this=0xbfe76800) at /usr/include/qt4/QtCore/qlist.h:554
#15 reports::ReportAccount::calculateAccountHierarchy (this=0xbfe76800) at /build/buildd/kmymoney-4.5.3/kmymoney/reports/reportaccount.cpp:95
#16 0x0818f956 in reports::ReportAccount::ReportAccount (this=0xbfe76800, accountid=...) at /build/buildd/kmymoney-4.5.3/kmymoney/reports/reportaccount.cpp:62
#17 0x081a48e2 in reports::PivotTable::calculateBudgetMapping (this=0xa830e98) at /build/buildd/kmymoney-4.5.3/kmymoney/reports/pivottable.cpp:863
#18 0x081aa9d3 in reports::PivotTable::init (this=0xa830e98) at /build/buildd/kmymoney-4.5.3/kmymoney/reports/pivottable.cpp:169
#19 0x081ab3cb in reports::PivotTable::PivotTable (this=0xa830e98, _config_f=...) at /build/buildd/kmymoney-4.5.3/kmymoney/reports/pivottable.cpp:94
#20 0x081123b5 in KReportsView::KReportTab::updateReport (this=0xa5e5430) at /build/buildd/kmymoney-4.5.3/kmymoney/views/kreportsview.cpp:180
#21 0x081124d2 in KReportsView::KReportTab::showEvent (this=0xa5e5430, event=0xbfe77450) at /build/buildd/kmymoney-4.5.3/kmymoney/views/kreportsview.cpp:158
#22 0x018f6262 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#23 0x0189dd24 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#24 0x018a297b in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#25 0x004de3ca in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#26 0x078960bb in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#27 0x018fa3b6 in QWidgetPrivate::show_helper() () from /usr/lib/libQtGui.so.4
#28 0x018fa71b in QWidget::setVisible(bool) () from /usr/lib/libQtGui.so.4
#29 0x018d8242 in QStackedLayout::setCurrentIndex(int) () from /usr/lib/libQtGui.so.4
#30 0x01d4efed in QStackedWidget::setCurrentIndex(int) () from /usr/lib/libQtGui.so.4
#31 0x01d5e36f in ?? () from /usr/lib/libQtGui.so.4
#32 0x01d5e6b2 in QTabWidget::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libQtGui.so.4
#33 0x005e00ea in KTabWidget::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkdeui.so.5
#34 0x0789c6ba in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
#35 0x078ac4ff in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#36 0x01d52453 in QTabBar::currentChanged(int) () from /usr/lib/libQtGui.so.4
#37 0x01d56021 in QTabBar::setCurrentIndex(int) () from /usr/lib/libQtGui.so.4
#38 0x01d5bb1d in QTabWidget::setCurrentIndex(int) () from /usr/lib/libQtGui.so.4
#39 0x0811198f in KReportsView::addReportTab (this=0xa15be10, report=...) at /build/buildd/kmymoney-4.5.3/kmymoney/views/kreportsview.cpp:1066
#40 0x0811b604 in KReportsView::qt_metacall (this=0xa15be10, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0xbfe77894) at /build/buildd/kmymoney-4.5.3/obj-i686-linux-gnu/kmymoney/views/kreportsview.moc:119
#41 0x0789c6ba in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
#42 0x078ac4ff in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#43 0x01e93779 in QTreeWidget::itemDoubleClicked(QTreeWidgetItem*, int) () from /usr/lib/libQtGui.so.4
#44 0x01e937ed in ?? () from /usr/lib/libQtGui.so.4
#45 0x01e9c84e in QTreeWidget::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libQtGui.so.4
#46 0x0789c6ba in QMetaObject::metacall(QObject*, QMetaObject::Call, int, void**) () from /usr/lib/libQtCore.so.4
#47 0x078ac4ff in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#48 0x01e1ade3 in QAbstractItemView::doubleClicked(QModelIndex const&) () from /usr/lib/libQtGui.so.4
#49 0x01e63c67 in QTreeView::mouseDoubleClickEvent(QMouseEvent*) () from /usr/lib/libQtGui.so.4
#50 0x018f6156 in QWidget::event(QEvent*) () from /usr/lib/libQtGui.so.4
#51 0x01cea9f3 in QFrame::event(QEvent*) () from /usr/lib/libQtGui.so.4
#52 0x01d79062 in QAbstractScrollArea::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4
#53 0x01e18227 in QAbstractItemView::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4
#54 0x01e5fe83 in QTreeView::viewportEvent(QEvent*) () from /usr/lib/libQtGui.so.4
#55 0x01d7b965 in ?? () from /usr/lib/libQtGui.so.4
#56 0x0789625a in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#57 0x0189dd00 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#58 0x018a3201 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#59 0x004de3ca in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#60 0x078960bb in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#61 0x0189ec3b in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib/libQtGui.so.4
#62 0x0192a04c in ?? () from /usr/lib/libQtGui.so.4
#63 0x019289b5 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#64 0x019545f4 in ?? () from /usr/lib/libQtGui.so.4
#65 0x03ec9aa8 in g_main_context_dispatch () from /lib/i386-linux-gnu/libglib-2.0.so.0
#66 0x03eca270 in ?? () from /lib/i386-linux-gnu/libglib-2.0.so.0
#67 0x03eca524 in g_main_context_iteration () from /lib/i386-linux-gnu/libglib-2.0.so.0
#68 0x078c353c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#69 0x019541e5 in ?? () from /usr/lib/libQtGui.so.4
#70 0x07895289 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#71 0x07895522 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#72 0x07899ecc in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#73 0x0189b8e7 in QApplication::exec() () from /usr/lib/libQtGui.so.4
#74 0x08086c4f in main (argc=) at /build/buildd/kmymoney-4.5.3/kmymoney/main.cpp:260

Reported using DrKonqi
Comment 1 Cristian Oneț 2011-08-16 20:59:59 UTC
SVN commit 1247739 by conet:

BUG: 280172
Fix an infinite loop in ReportAccount::calculateAccountHierarchy caused by an invalid budget that was obtained by deleting a category and assigning it to another category which was not budgeted. In that case MyMoneyBudget::account will return the empty account group for the new category when calling 'MyMoneyBudget::AccountGroup toBudget = b.account(categoryId);' thus if you add toBudget with toBudget.id() instead of toBodget with categoryId then an account group with an empty id is created.

 M  +1 -1      kmymoney.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1247739
Comment 2 Cristian Oneț 2011-08-16 21:01:01 UTC
SVN commit 1247740 by conet:

BUG: 280172
Fix an infinite loop in ReportAccount::calculateAccountHierarchy caused by an invalid budget that was obtained by deleting a category and assigning it to another category which was not budgeted. In that case MyMoneyBudget::account will return the empty account group for the new category when calling 'MyMoneyBudget::AccountGroup toBudget = b.account(categoryId);' thus if you add toBudget with toBudget.id() instead of toBodget with categoryId then an account group with an empty id is created.
Backported to the stable branch.

 M  +1 -1      kmymoney.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1247740
Comment 3 Cristian Oneț 2011-09-22 06:46:50 UTC
*** Bug 282487 has been marked as a duplicate of this bug. ***