Bug 304003

Summary: Crash when removing transaction number of transactions with duplicate account numbers.
Product: [Applications] skrooge Reporter: john_kde
Component: generalAssignee: Stephane MANKOWSKI <stephane>
Status: RESOLVED FIXED    
Severity: crash CC: stephane
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Ubuntu   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description john_kde 2012-07-24 13:00:58 UTC
Application: skrooge (1.2.0)
KDE Platform Version: 4.8.4 (4.8.4)
Qt Version: 4.8.1
Operating System: Linux 3.2.0-26-generic x86_64
Distribution: Ubuntu 12.04 LTS

-- Information about the crash:
- What I was doing when the application crashed:
Removing duplicate transaction numbers from imported data.

-- Backtrace:
Application: Skrooge (skrooge), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f0e2e143780 (LWP 29598))]

Thread 6 (Thread 0x7f0e15ebd700 (LWP 29599)):
#0  0x00007f0e2b807b03 in poll () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f0e2608c036 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f0e2608c49a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f0e15eca98b in ?? () from /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
#4  0x00007f0e260ad9e5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f0e26558e9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#6  0x00007f0e2b8134bd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f0e154b6700 (LWP 29600)):
#0  0x00007f0e2608b1c2 in g_main_context_acquire () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#1  0x00007f0e2608bf04 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f0e2608c49a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f0e1d22a406 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
#4  0x00007f0e260ad9e5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f0e26558e9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#6  0x00007f0e2b8134bd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#7  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f0e0ffff700 (LWP 29607)):
#0  0x00007f0e2655cd84 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007f0e27d6fdec in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
#2  0x00007f0e27d6ff19 in ?? () from /usr/lib/x86_64-linux-gnu/libQtWebKit.so.4
#3  0x00007f0e26558e9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#4  0x00007f0e2b8134bd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f0df33bb700 (LWP 29608)):
#0  0x00007f0e2b8060bd in read () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f0e260c68cf in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f0e2608bba4 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f0e2608bfd6 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f0e2608c164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007f0e2bc88426 in QEventDispatcherGlib::processEvents (this=0x7f0e040008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:426
#6  0x00007f0e2bc57c82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#7  0x00007f0e2bc57ed7 in QEventLoop::exec (this=0x7f0df33bae00, flags=...) at kernel/qeventloop.cpp:204
#8  0x00007f0e2bb56fa7 in QThread::exec (this=<optimized out>) at thread/qthread.cpp:501
#9  0x00007f0e2bb59fcb in QThreadPrivate::start (arg=0x12085e0) at thread/qthread_unix.cpp:298
#10 0x00007f0e26558e9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#11 0x00007f0e2b8134bd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#12 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f0df2176700 (LWP 29610)):
#0  0x00007f0e2655cd84 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007f0e28e2e222 in ?? () from /usr/lib/x86_64-linux-gnu/libQtScript.so.4
#2  0x00007f0e28e2e259 in ?? () from /usr/lib/x86_64-linux-gnu/libQtScript.so.4
#3  0x00007f0e26558e9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#4  0x00007f0e2b8134bd in clone () from /lib/x86_64-linux-gnu/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f0e2e143780 (LWP 29598)):
[KCrash Handler]
#6  0x00007f0e2d18ad52 in SKGSubOperationObject::getTracker(SKGTrackerObject&) const () from /usr/lib/libskgbankmodeler.so.1
#7  0x00007f0e2d18aa25 in SKGSubOperationObject::setTracker(SKGTrackerObject const&, bool) () from /usr/lib/libskgbankmodeler.so.1
#8  0x00007f0dfd0d950b in ?? () from /usr/lib/kde4/skrooge_operation.so
#9  0x00007f0dfd0dbb49 in ?? () from /usr/lib/kde4/skrooge_operation.so
#10 0x00007f0e2bc6d281 in QMetaObject::activate (sender=0x3205c90, m=<optimized out>, local_signal_index=<optimized out>, argv=0x7fff8cbdc940) at kernel/qobject.cpp:3547
#11 0x00007f0e2cce3c72 in QAbstractButton::clicked (this=<optimized out>, _t1=false) at .moc/release-shared/moc_qabstractbutton.cpp:220
#12 0x00007f0e2ca21a4e in QAbstractButtonPrivate::emitClicked (this=<optimized out>) at widgets/qabstractbutton.cpp:548
#13 0x00007f0e2ca22d8b in QAbstractButtonPrivate::click (this=0x31a77c0) at widgets/qabstractbutton.cpp:541
#14 0x00007f0e2ca22ffc in QAbstractButton::mouseReleaseEvent (this=0x3205c90, e=0x7fff8cbdd210) at widgets/qabstractbutton.cpp:1123
#15 0x00007f0e2c6a4144 in QWidget::event (this=0x3205c90, event=0x7fff8cbdd210) at kernel/qwidget.cpp:8362
#16 0x00007f0e2c653894 in notify_helper (e=0x7fff8cbdd210, receiver=0x3205c90, this=0xca8bf0) at kernel/qapplication.cpp:4559
#17 QApplicationPrivate::notify_helper (this=0xca8bf0, receiver=0x3205c90, e=0x7fff8cbdd210) at kernel/qapplication.cpp:4531
#18 0x00007f0e2c6590bf in QApplication::notify (this=<optimized out>, receiver=0x3205c90, e=0x7fff8cbdd210) at kernel/qapplication.cpp:4102
#19 0x00007f0e2db3d9e6 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#20 0x00007f0e2bc58e9c in QCoreApplication::notifyInternal (this=0x7fff8cbddfd0, receiver=0x3205c90, event=0x7fff8cbdd210) at kernel/qcoreapplication.cpp:876
#21 0x00007f0e2c654862 in sendEvent (event=<optimized out>, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#22 QApplicationPrivate::sendMouseEvent (receiver=0x3205c90, event=0x7fff8cbdd210, alienWidget=0x3205c90, nativeWidget=0x2753330, buttonDown=0x3205c90, lastMouseReceiver=..., spontaneous=true) at kernel/qapplication.cpp:3170
#23 0x00007f0e2c6d3bf5 in QETWidget::translateMouseEvent (this=0x2753330, event=<optimized out>) at kernel/qapplication_x11.cpp:4617
#24 0x00007f0e2c6d2bae in QApplication::x11ProcessEvent (this=0x7fff8cbddfd0, event=0x7fff8cbddae0) at kernel/qapplication_x11.cpp:3732
#25 0x00007f0e2c6fc0d2 in x11EventSourceDispatch (s=0xcaaf70, callback=0, user_data=0x0) at kernel/qguieventdispatcher_glib.cpp:146
#26 0x00007f0e2608bd53 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#27 0x00007f0e2608c0a0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#28 0x00007f0e2608c164 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#29 0x00007f0e2bc883bf in QEventDispatcherGlib::processEvents (this=0xc69ad0, flags=...) at kernel/qeventdispatcher_glib.cpp:424
#30 0x00007f0e2c6fbd5e in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#31 0x00007f0e2bc57c82 in QEventLoop::processEvents (this=<optimized out>, flags=...) at kernel/qeventloop.cpp:149
#32 0x00007f0e2bc57ed7 in QEventLoop::exec (this=0x7fff8cbdde80, flags=...) at kernel/qeventloop.cpp:204
#33 0x00007f0e2bc5cf67 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1148
#34 0x0000000000401ae5 in ?? ()
#35 0x00007f0e2b74276d in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#36 0x0000000000401c15 in _start ()

Reported using DrKonqi
Comment 1 Stephane MANKOWSKI 2012-07-24 13:14:57 UTC
How do you "remove transaction number of transactions with duplicate account numbers" ?
By updating a transaction?

Do you have the issue on all transactions?

Do you have the same issue with Skrooge 1.3.0?
(here is the information to install the last version of Skrooge on ubuntu: http://skrooge.org/ubuntu_installation)
Comment 2 john_kde 2012-07-24 19:43:07 UTC
I open KDE and click on "Dashboard".  It says (under "Advices") "Duplicate number 99 in account 'NB MC 134'".  I click on the icon to the left of that and select "Edit operations with duplicate number".  I erase the transaction number "99", and then click on "Modify".  Just now I changed it from 99 to 100 instead, and Skrooge disappeared.  I get the crash handler that says "Executable: skrooge PID: 3230 Signal: Segmentation fault (11)".

I just went in and tried a couple of other transactions without a problem.  This one consistently causes a crash.  The transaction pair in question is a set of dummy transactions I was using in gnucash as spacers.

I haven't tried upgrading skrooge yet.
Comment 3 john_kde 2012-07-24 19:45:37 UTC
One thing I might add is that "Payee" is blank for this transaction pair.
Comment 4 Stephane MANKOWSKI 2012-07-28 15:05:22 UTC
Git commit 3c446a8aeab82a375e85c83018932821ffe5d1a1 by Stephane Mankowski.
Committed on 28/07/2012 at 17:04.
Pushed by smankowski into branch 'Feature'.

M  +1    -0    CHANGELOG
M  +1    -1    TODO
M  +2    -1    skgbankmodeler/skgsuboperationobject.cpp

http://commits.kde.org/skrooge/3c446a8aeab82a375e85c83018932821ffe5d1a1