Bug 244962 - Crash when entering the splitted transaction
Summary: Crash when entering the splitted transaction
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:
: 246673 269512 (view as bug list)
Depends on:
Blocks:
 
Reported: 2010-07-17 16:49 UTC by alexander.dunaev
Modified: 2011-05-14 10:15 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Simple test case for the crash (4.14 KB, application/xml)
2010-09-03 20:11 UTC, Kamil Śliwak
Details
Stack trace for the crash on my machine (3.85 KB, text/plain)
2010-09-03 20:12 UTC, Kamil Śliwak
Details
Simple test case for the crash (4.14 KB, application/octet-stream)
2010-09-03 20:16 UTC, Kamil Śliwak
Details

Note You need to log in before you can comment on or make changes to this bug.
Description alexander.dunaev 2010-07-17 16:49:46 UTC
Application: kmymoney (3.98.1)
KDE Platform Version: 4.4.4 (KDE 4.4.4)
Qt Version: 4.6.3
Operating System: Linux 2.6.32-5-amd64 x86_64
Distribution: Debian GNU/Linux testing (squeeze)

-- Information about the crash:
I was entering the splitted transaction (expense), and a new category was needed for one entry.  I've typed in the name of the category and pressed Tab; the program asked if I want to add this new category.  I agreed, but then noticed that the dialog doesn't allow to add the new category to the Incomes (I needed this entry to be income as it's the discount).  So I canceled adding the category and returned back to the transaction editor.  I've pressed Tab or Shift+Tab there, and the program has crashed.

This is not the first time when KMyMoney crashes in the transaction editor, and each time it's connected to tabbing between the controls.

 -- Backtrace:
Application: KMyMoney (kmymoney), signal: Segmentation fault
The current source language is "auto; currently asm".
[KCrash Handler]
#5  QWidget::focusPolicy (this=0x21) at kernel/qwidget.cpp:7012
#6  0x00000000006fe3d1 in ?? ()
#7  0x00007fcba50eed33 in QWidget::event (this=0x52b9af0, event=0x7fff6ba34810) at kernel/qwidget.cpp:8073
#8  0x00007fcba509932c in QApplicationPrivate::notify_helper (this=0x231d7b0, receiver=0x52b9af0, e=0x7fff6ba34810) at kernel/qapplication.cpp:4302
#9  0x00007fcba50a0fc5 in QApplication::notify (this=<value optimized out>, receiver=0x52b9af0, e=0x7fff6ba34810) at kernel/qapplication.cpp:3765
#10 0x00007fcba839b436 in KApplication::notify (this=0x231d710, receiver=0x52b9af0, event=0x7fff6ba34810) at ../../kdeui/kernel/kapplication.cpp:302
#11 0x00007fcba5cf915c in QCoreApplication::notifyInternal (this=0x231d710, receiver=0x52b9af0, event=0x7fff6ba34810) at kernel/qcoreapplication.cpp:726
#12 0x00007fcba5143d1a in QKeyMapper::sendKeyEvent (keyWidget=0x52b9af0, grab=<value optimized out>, type=QEvent::KeyPress, code=16777218, modifiers=<value optimized out>, text=..., 
    autorepeat=false, count=1, nativeScanCode=23, nativeVirtualKey=65056, nativeModifiers=8209) at kernel/qkeymapper_x11.cpp:1875
#13 0x00007fcba5146291 in QKeyMapperPrivate::translateKeyEvent (this=0x2356d70, keyWidget=0x52b9af0, event=<value optimized out>, grab=5) at kernel/qkeymapper_x11.cpp:1845
#14 0x00007fcba511da04 in QApplication::x11ProcessEvent (this=<value optimized out>, event=0x7fff6ba353c0) at kernel/qapplication_x11.cpp:3406
#15 0x00007fcba5149552 in x11EventSourceDispatch (s=0x23215e0, callback=<value optimized out>, user_data=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:146
#16 0x00007fcba10696c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#17 0x00007fcba106d538 in ?? () from /lib/libglib-2.0.so.0
#18 0x00007fcba106d6ec in g_main_context_iteration () from /lib/libglib-2.0.so.0
#19 0x00007fcba5d22713 in QEventDispatcherGlib::processEvents (this=0x22fcfb0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#20 0x00007fcba514914e in QGuiEventDispatcherGlib::processEvents (this=0x21, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#21 0x00007fcba5cf7a82 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#22 0x00007fcba5cf7e5c in QEventLoop::exec (this=0x7fff6ba356e0, flags=) at kernel/qeventloop.cpp:201
#23 0x00007fcba5563e7e in QDialog::exec (this=0x517a330) at dialogs/qdialog.cpp:546
#24 0x00000000006c6247 in ?? ()
#25 0x00000000006e095d in ?? ()
#26 0x00000000006ee61d in ?? ()
#27 0x00007fcba5d0c346 in QMetaObject::activate (sender=0x4a42960, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x45e19b0) at kernel/qobject.cpp:3295
#28 0x00007fcba5736572 in QAbstractButton::clicked (this=0x21, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:206
#29 0x00007fcba544ea5b in QAbstractButtonPrivate::emitClicked (this=0x47c7940) at widgets/qabstractbutton.cpp:546
#30 0x00007fcba544f8fb in QAbstractButtonPrivate::click (this=0x47c7940) at widgets/qabstractbutton.cpp:539
#31 0x00007fcba50ef3c7 in QWidget::event (this=0x4a42960, event=0x7fff6ba36800) at kernel/qwidget.cpp:8116
#32 0x00007fcba509932c in QApplicationPrivate::notify_helper (this=0x231d7b0, receiver=0x4a42960, e=0x7fff6ba36800) at kernel/qapplication.cpp:4302
#33 0x00007fcba50a0fc5 in QApplication::notify (this=<value optimized out>, receiver=0x4a42960, e=0x7fff6ba36800) at kernel/qapplication.cpp:3765
#34 0x00007fcba839b436 in KApplication::notify (this=0x231d710, receiver=0x4a42960, event=0x7fff6ba36800) at ../../kdeui/kernel/kapplication.cpp:302
#35 0x00007fcba5cf915c in QCoreApplication::notifyInternal (this=0x231d710, receiver=0x4a42960, event=0x7fff6ba36800) at kernel/qcoreapplication.cpp:726
#36 0x00007fcba5143d1a in QKeyMapper::sendKeyEvent (keyWidget=0x4a42960, grab=<value optimized out>, type=QEvent::KeyRelease, code=32, modifiers=<value optimized out>, text=..., autorepeat=false, 
    count=1, nativeScanCode=65, nativeVirtualKey=32, nativeModifiers=8208) at kernel/qkeymapper_x11.cpp:1875
#37 0x00007fcba5146291 in QKeyMapperPrivate::translateKeyEvent (this=0x2356d70, keyWidget=0x4a42960, event=<value optimized out>, grab=5) at kernel/qkeymapper_x11.cpp:1845
#38 0x00007fcba511da04 in QApplication::x11ProcessEvent (this=<value optimized out>, event=0x7fff6ba373b0) at kernel/qapplication_x11.cpp:3406
#39 0x00007fcba5149552 in x11EventSourceDispatch (s=0x23215e0, callback=<value optimized out>, user_data=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:146
#40 0x00007fcba10696c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#41 0x00007fcba106d538 in ?? () from /lib/libglib-2.0.so.0
#42 0x00007fcba106d6ec in g_main_context_iteration () from /lib/libglib-2.0.so.0
#43 0x00007fcba5d22713 in QEventDispatcherGlib::processEvents (this=0x22fcfb0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412
#44 0x00007fcba514914e in QGuiEventDispatcherGlib::processEvents (this=0x21, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#45 0x00007fcba5cf7a82 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#46 0x00007fcba5cf7e5c in QEventLoop::exec (this=0x7fff6ba376d0, flags=) at kernel/qeventloop.cpp:201
#47 0x00007fcba5cfcaeb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003
#48 0x000000000045ca58 in _start ()

Reported using DrKonqi
Comment 1 Thomas Baumgart 2010-07-24 08:44:29 UTC
I am unable to duplicate the problem here.

Differences: I use Qt 4.5.3 and KDE 4.3.5.

In the above BT there is no reference to any of KMyMoney's code due to missing debug symbols (frames #6, #24-#26).

The crash happened while processing a key-press event (see frame #12) presumably in the split transaction dialog (see frame #23 containing the QDialog exec loop).

code in frame #12 being 16777218 is Qt::Key_Backtab


Can you try to run KMyMoney with debug symbols and duplicate the problem again? Also, it would be interesting if this still happens in SVN HEAD, as we have changed a few things around the tab handling.
Comment 2 Alvaro Soliverez 2010-08-02 02:26:21 UTC
Please reopen if you keep having the problem. It would be great if you could install the debug symbols, so we get a useful backtrace out of it.
Comment 3 Kamil Śliwak 2010-09-03 20:08:31 UTC
I have encountered the same issue and I have a simple test case for it:

1. Open kmymoney
2. Open test.kmy
3. Go to Accounts->Assets/testAccount
4. Right click the only transaction in the ledger and select "Edit splits"
5. Double click testCategory in the first line of the split to edit it (so that the category field is editable and has focus)
6. Press Shift+Tab. Program crashes

BTW you can use Tab to switch from category field to other fields on the same line but you cannot go back to that field with Shift+Tab - it is being skipped. Maybe this has something to do with the bug.

Application: kmymoney (4.5.0)
KDE Platform Version: 4.5.1
Qt Version: 4.6.3
Distribution: Arch Linux
Kernel/hardware: 2.6.35-ARCH #1 SMP PREEMPT Fri Aug 27 17:14:28 CEST 2010 x86_64 Intel(R) Core(TM)2 Duo CPU T5750 @ 2.00GHz GenuineIntel GNU/Linux

Test case and stack trace added as an attachment
Comment 4 Kamil Śliwak 2010-09-03 20:11:42 UTC
Created attachment 51284 [details]
Simple test case for the crash

Empty project with a an account, category and a transaction added
Comment 5 Kamil Śliwak 2010-09-03 20:12:40 UTC
Created attachment 51285 [details]
Stack trace for the crash on my machine
Comment 6 Kamil Śliwak 2010-09-03 20:16:19 UTC
Created attachment 51286 [details]
Simple test case for the crash

A newly create project with a single account, category and transaction
Comment 7 Cristian Oneț 2010-09-05 10:52:38 UTC
SVN commit 1171809 by conet:

BUG: 244962
Fix a crash when using Shift+Tab in the split editor. Use the same code in focusNextPrevChild as in other places in KMyMoney.

 M  +7 -5      kmymoneysplittable.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1171809
Comment 8 Cristian Oneț 2010-09-05 10:57:39 UTC
SVN commit 1171810 by conet:

BUG: 244962
Fix a crash when using Shift+Tab in the split editor. Use the same code in focusNextPrevChild as in other places in KMyMoney. 
Backport to the stable branch.

 M  +7 -5      kmymoneysplittable.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1171810
Comment 9 Cristian Oneț 2010-09-05 11:00:27 UTC
*** Bug 246673 has been marked as a duplicate of this bug. ***
Comment 10 Cristian Oneț 2011-05-14 10:15:21 UTC
*** Bug 269512 has been marked as a duplicate of this bug. ***