Bug 237780 - KMyMoney currency editor: Edit symbol then change selected currency causes crash
Summary: KMyMoney currency editor: Edit symbol then change selected currency causes crash
Status: RESOLVED FIXED
Alias: None
Product: kmymoney
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Debian testing Linux
: NOR crash
Target Milestone: ---
Assignee: KMyMoney Devel Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-05-16 03:57 UTC by Brendon Higgins
Modified: 2010-05-23 05:04 UTC (History)
1 user (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 Brendon Higgins 2010-05-16 03:57:58 UTC
Application: kmymoney (3.97.2)
KDE Platform Version: 4.4.3 (KDE 4.4.3)
Qt Version: 4.6.2
Operating System: Linux 2.6.32-3-amd64 x86_64
Distribution: Debian GNU/Linux testing (squeeze)

-- Information about the crash:
Hi. I was playing around with the currency editor (Tools->Currencies...) and found a crash while editing the symbol then changing the selected currency. For example, my default currency is Australian $, so I add the letters AU before the symbol, then I click on a different currency in the list, and KMyMoney crashes.

The crash can be reproduced every time.

 -- Backtrace:
Application: KMyMoney (kmymoney), signal: Segmentation fault
The current source language is "auto; currently c".
[KCrash Handler]
#5  0x00000000042530a0 in ?? ()
#6  0x000000000062aa63 in KCurrencyEditDlg::slotSelectCurrency (this=0x4152370, item=0x4253350) at /tmp/buildd/kmymoney-3.97.2/kmymoney/dialogs/kcurrencyeditdlg.cpp:199
#7  0x000000000062bb54 in KCurrencyEditDlg::qt_metacall (this=0x4152370, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff8b7d1670)
    at /tmp/buildd/kmymoney-3.97.2/obj-x86_64-linux-gnu/kmymoney/dialogs/kcurrencyeditdlg.moc:97
#8  0x00007f96266fac4f in QMetaObject::activate (sender=0x41cb420, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x20) at kernel/qobject.cpp:3293
#9  0x00007f962602191b in QTreeWidget::currentItemChanged (this=0x7fff8b7d14b0, _t1=0x4253350, _t2=0x40c0c40) at .moc/release-shared/moc_qtreewidget.cpp:256
#10 0x00007f962602d74d in QTreeWidget::qt_metacall (this=0x41cb420, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff8b7d17b0) at .moc/release-shared/moc_qtreewidget.cpp:157
#11 0x00007f96266fac4f in QMetaObject::activate (sender=0x3febf10, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x20) at kernel/qobject.cpp:3293
#12 0x00007f9625ffdeea in QItemSelectionModel::currentChanged (this=0x7fff8b7d14b0, _t1=<value optimized out>, _t2=<value optimized out>) at .moc/release-shared/moc_qitemselectionmodel.cpp:159
#13 0x00007f9625ffe032 in QItemSelectionModel::setCurrentIndex (this=0x3febf10, index=..., command=<value optimized out>) at itemviews/qitemselectionmodel.cpp:1167
#14 0x00007f9625fad824 in QAbstractItemView::mousePressEvent (this=0x41cb420, event=<value optimized out>) at itemviews/qabstractitemview.cpp:1648
#15 0x00007f9625adcc29 in QWidget::event (this=0x41cb420, event=0x7fff8b7d2920) at kernel/qwidget.cpp:7994
#16 0x00007f9625e82726 in QFrame::event (this=0x41cb420, e=0x7fff8b7d2920) at widgets/qframe.cpp:557
#17 0x00007f9625fb196b in QAbstractItemView::viewportEvent (this=0x41cb420, event=0x7fff8b7d2920) at itemviews/qabstractitemview.cpp:1610
#18 0x00007f9625feea42 in QTreeView::viewportEvent (this=0x41cb420, event=0x7fff8b7d2920) at itemviews/qtreeview.cpp:1248
#19 0x00007f96266e7337 in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=<value optimized out>, receiver=0x4187e60, event=0x7fff8b7d2920) at kernel/qcoreapplication.cpp:819
#20 0x00007f9625a868cc in QApplicationPrivate::notify_helper (this=0x22d3290, receiver=0x4187e60, e=0x7fff8b7d2920) at kernel/qapplication.cpp:4296
#21 0x00007f9625a8d5ab in QApplication::notify (this=0x22d31f0, receiver=0x4187e60, e=0x7fff8b7d2920) at kernel/qapplication.cpp:3865
#22 0x00007f9628d89366 in KApplication::notify (this=0x22d31f0, receiver=0x4187e60, event=0x7fff8b7d2920) at ../../kdeui/kernel/kapplication.cpp:302
#23 0x00007f96266e7f1c in QCoreApplication::notifyInternal (this=0x22d31f0, receiver=0x4187e60, event=0x7fff8b7d2920) at kernel/qcoreapplication.cpp:704
#24 0x00007f9625a8c78e in QCoreApplication::sendEvent (receiver=0x4187e60, event=0x7fff8b7d2920, alienWidget=0x4187e60, nativeWidget=0x4152370, buttonDown=<value optimized out>, 
    lastMouseReceiver=<value optimized out>, spontaneous=true) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#25 QApplicationPrivate::sendMouseEvent (receiver=0x4187e60, event=0x7fff8b7d2920, alienWidget=0x4187e60, nativeWidget=0x4152370, buttonDown=<value optimized out>, 
    lastMouseReceiver=<value optimized out>, spontaneous=true) at kernel/qapplication.cpp:2965
#26 0x00007f9625b0c3cb in QETWidget::translateMouseEvent (this=0x4152370, event=<value optimized out>) at kernel/qapplication_x11.cpp:4368
#27 0x00007f9625b0ad3c in QApplication::x11ProcessEvent (this=<value optimized out>, event=0x7fff8b7d30a0) at kernel/qapplication_x11.cpp:3501
#28 0x00007f9625b367e2 in x11EventSourceDispatch (s=0x22d70d0, callback=<value optimized out>, user_data=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:146
#29 0x00007f961ffad6c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#30 0x00007f961ffb1538 in ?? () from /lib/libglib-2.0.so.0
#31 0x00007f961ffb16ec in g_main_context_iteration () from /lib/libglib-2.0.so.0
#32 0x00007f9626711373 in QEventDispatcherGlib::processEvents (this=0x22b1fb0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#33 0x00007f9625b363de in QGuiEventDispatcherGlib::processEvents (this=0x7fff8b7d14b0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#34 0x00007f96266e6842 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#35 0x00007f96266e6c1c in QEventLoop::exec (this=0x7fff8b7d33c0, flags=) at kernel/qeventloop.cpp:201
#36 0x00007f9625f4f65e in QDialog::exec (this=0x4152370) at dialogs/qdialog.cpp:546
#37 0x000000000048fe75 in KMyMoneyApp::slotCurrencyDialog (this=0x24172a0) at /tmp/buildd/kmymoney-3.97.2/kmymoney/kmymoney.cpp:6097
#38 0x00000000004a852d in KMyMoneyApp::qt_metacall (this=0x24172a0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff8b7d39d0)
    at /tmp/buildd/kmymoney-3.97.2/obj-x86_64-linux-gnu/kmymoney/kmymoney.moc:502
#39 0x00007f96266fac4f in QMetaObject::activate (sender=0x24e7ad0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x20) at kernel/qobject.cpp:3293
#40 0x00007f9625a80702 in QAction::triggered (this=0x7fff8b7d14b0, _t1=false) at .moc/release-shared/moc_qaction.cpp:263
#41 0x00007f9625a8277b in QAction::activate (this=0x24e7ad0, event=<value optimized out>) at kernel/qaction.cpp:1255
#42 0x00007f9625ec05bd in QMenuPrivate::activateCausedStack (this=<value optimized out>, causedStack=..., action=0x24e7ad0, action_e=QAction::Trigger, self=true) at widgets/qmenu.cpp:1011
#43 0x00007f9625ec613a in QMenuPrivate::activateAction (this=0x26514d0, action=0x24e7ad0, action_e=QAction::Trigger, self=<value optimized out>) at widgets/qmenu.cpp:1103
#44 0x00007f9628e650de in KMenu::mouseReleaseEvent (this=0x264f5a0, e=0x4253350) at ../../kdeui/widgets/kmenu.cpp:471
#45 0x00007f9625adcc42 in QWidget::event (this=0x264f5a0, event=0x7fff8b7d47a0) at kernel/qwidget.cpp:7998
#46 0x00007f9625ec82fb in QMenu::event (this=0x264f5a0, e=0x7fff8b7d47a0) at widgets/qmenu.cpp:2414
#47 0x00007f9625a868fc in QApplicationPrivate::notify_helper (this=0x22d3290, receiver=0x264f5a0, e=0x7fff8b7d47a0) at kernel/qapplication.cpp:4300
#48 0x00007f9625a8d5ab in QApplication::notify (this=0x22d31f0, receiver=0x264f5a0, e=0x7fff8b7d47a0) at kernel/qapplication.cpp:3865
#49 0x00007f9628d89366 in KApplication::notify (this=0x22d31f0, receiver=0x264f5a0, event=0x7fff8b7d47a0) at ../../kdeui/kernel/kapplication.cpp:302
#50 0x00007f96266e7f1c in QCoreApplication::notifyInternal (this=0x22d31f0, receiver=0x264f5a0, event=0x7fff8b7d47a0) at kernel/qcoreapplication.cpp:704
#51 0x00007f9625a8c78e in QCoreApplication::sendEvent (receiver=0x264f5a0, event=0x7fff8b7d47a0, alienWidget=0x0, nativeWidget=0x264f5a0, buttonDown=<value optimized out>, 
    lastMouseReceiver=<value optimized out>, spontaneous=true) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#52 QApplicationPrivate::sendMouseEvent (receiver=0x264f5a0, event=0x7fff8b7d47a0, alienWidget=0x0, nativeWidget=0x264f5a0, buttonDown=<value optimized out>, lastMouseReceiver=<value optimized out>, 
    spontaneous=true) at kernel/qapplication.cpp:2965
#53 0x00007f9625b0c84d in QETWidget::translateMouseEvent (this=0x264f5a0, event=<value optimized out>) at kernel/qapplication_x11.cpp:4302
#54 0x00007f9625b0ad3c in QApplication::x11ProcessEvent (this=<value optimized out>, event=0x7fff8b7d4f20) at kernel/qapplication_x11.cpp:3501
#55 0x00007f9625b367e2 in x11EventSourceDispatch (s=0x22d70d0, callback=<value optimized out>, user_data=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:146
#56 0x00007f961ffad6c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#57 0x00007f961ffb1538 in ?? () from /lib/libglib-2.0.so.0
#58 0x00007f961ffb16ec in g_main_context_iteration () from /lib/libglib-2.0.so.0
#59 0x00007f9626711373 in QEventDispatcherGlib::processEvents (this=0x22b1fb0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#60 0x00007f9625b363de in QGuiEventDispatcherGlib::processEvents (this=0x7fff8b7d14b0, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#61 0x00007f96266e6842 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#62 0x00007f96266e6c1c in QEventLoop::exec (this=0x7fff8b7d5240, flags=) at kernel/qeventloop.cpp:201
#63 0x00007f96266ea95b in QCoreApplication::exec () at kernel/qcoreapplication.cpp:981
#64 0x000000000045f538 in main (argc=<value optimized out>, argv=<value optimized out>) at /tmp/buildd/kmymoney-3.97.2/kmymoney/main.cpp:277

Reported using DrKonqi
Comment 1 Alvaro Soliverez 2010-05-16 16:54:34 UTC
I can't reproduce the crash here. I tried to edit several currencies and selecting another had no effect, other than selecting multiple rows, which is a bug, but unrelated to this.
Comment 2 Alvaro Soliverez 2010-05-16 17:56:03 UTC
I spoke too early. I'm able to trigger the crash now, and I'm working on it
Comment 3 Alvaro Soliverez 2010-05-23 05:04:02 UTC
SVN commit 1129633 by asoliverez:

Revamped the currencies dialog. It is now more similar to other dialogs.
Removed unused code too.
Fixed the crash which was due to a mess of crossed slots and signals.
BUG:237780

 M  +62 -40    dialogs/kcurrencyeditdlg.cpp  
 M  +9 -8      dialogs/kcurrencyeditdlg.h  
 M  +31 -123   dialogs/kcurrencyeditdlgdecl.ui  
 M  +6 -0      mymoney/mymoneysecurity.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1129633