Bug 221935

Summary: Crash when categorizing multiple transactions [Q3TableHeader::isSectionStretchable, Q3Table::hideRow, KMyMoneyRegister::RegisterItem::setVisible]
Product: [Applications] kmymoney Reporter: Christian Schmitt <chrschmitt>
Component: generalAssignee: KMyMoney Devel Mailing List <kmymoney-devel>
Status: RESOLVED DUPLICATE    
Severity: crash CC: andresbajotierra, inga.herber, Regnaron
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Christian Schmitt 2010-01-09 16:21:14 UTC
Version:            (using Devel)
Compiler:          gcc 4.3.4 
OS:                Linux
Installed from:    Compiled sources

When selecting multiple transactions in the ledger and editing them by assigning a category, after clicking "Enter" the program crashes.

Here is the backtrace:

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff71ca16d in Q3TableHeader::isSectionStretchable(int) const () from /usr/lib64/qt4/libQt3Support.so.4
(gdb) bt                                                                                                      
#0  0x00007ffff71ca16d in Q3TableHeader::isSectionStretchable(int) const () from /usr/lib64/qt4/libQt3Support.so.4
#1  0x00007ffff71d0ba9 in Q3Table::hideRow(int) () from /usr/lib64/qt4/libQt3Support.so.4                         
#2  0x00000000007fa9f2 in KMyMoneyRegister::RegisterItem::setVisible (this=0x1fdabf0, visible=false)              
    at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999/kmymoney/widgets/registeritem.cpp:99          
#3  0x00000000007fea20 in KMyMoneyRegister::Transaction::setVisible (this=0x1fdabf0, visible=false)               
    at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999/kmymoney/widgets/transaction.cpp:808          
#4  0x00000000007aad16 in KMyMoneyRegister::RegisterSearchLine::itemAdded (this=0x155c980, item=0x1fdabf0)        
    at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999/kmymoney/widgets/registersearchline.cpp:234   
#5  0x00000000007ab144 in KMyMoneyRegister::RegisterSearchLine::qt_metacall (this=0x155c980,                      
    _c=QMetaObject::InvokeMetaMethod, _id=6, _a=0x7fffffff9c80)                                                   
    at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999_build/kmymoney/widgets/registersearchline.moc:90
#6  0x00007ffff40b9cb7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) ()                       
   from /usr/lib64/qt4/libQtCore.so.4                                                                               
#7  0x000000000078f7df in KMyMoneyRegister::Register::itemAdded (this=0x1309060, _t1=0x1fdabf0)                     
    at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999_build/kmymoney/widgets/register.moc:197         
#8  0x000000000080db7d in StdTransaction (this=0x1fdabf0, parent=0x1309060, transaction=..., split=..., uniqueId=1) 
    at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999/kmymoney/widgets/transaction.cpp:907            
#9  0x0000000000790425 in KMyMoneyRegister::Register::transactionFactory (parent=0x1309060, transaction=..., split=..., 
    uniqueId=1) at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999/kmymoney/widgets/register.cpp:2218      
#10 0x00000000005499ce in KGlobalLedgerView::loadView (this=0x12ca980)                                                  
    at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999/kmymoney/views/kgloballedgerview.cpp:433            
#11 0x000000000054d635 in KGlobalLedgerView::slotLoadView (this=0x12ca980)                                              
    at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999/kmymoney/views/kgloballedgerview.cpp:276            
#12 0x000000000054d82c in KGlobalLedgerView::slotLeaveEditMode (this=0x12ca980, list=...)                               
    at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999/kmymoney/views/kgloballedgerview.cpp:1202           
#13 0x000000000054e232 in KGlobalLedgerView::qt_metacall (this=0x12ca980, _c=QMetaObject::InvokeMetaMethod, _id=19,     
    _a=0x7fffffffb240)                                                                                                  
    at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999_build/kmymoney/views/kgloballedgerview.moc:225      
#14 0x00007ffff40b9cb7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) ()                           
   from /usr/lib64/qt4/libQtCore.so.4                                                                                   
#15 0x000000000074569f in TransactionEditor::finishEdit (this=0x1ec55f0, _t1=...)                                       
    at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999_build/kmymoney/dialogs/transactioneditor.moc:142    
---Type <return> to continue, or q <return> to quit---                                                                  
#16 0x000000000075a1ae in ~TransactionEditor (this=0x1ec55f0, __in_chrg=<value optimized out>)                          
    at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999/kmymoney/dialogs/transactioneditor.cpp:91           
#17 0x000000000075a527 in ~StdTransactionEditor (this=0x1ec55f0, __in_chrg=<value optimized out>)                       
    at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999/kmymoney/dialogs/transactioneditor.cpp:671          
#18 0x0000000000462d43 in KMyMoney2App::deleteTransactionEditor (this=0xe3e8a0)                                         
    at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999/kmymoney/kmymoney.cpp:4906                          
#19 0x000000000047114c in KMyMoney2App::slotTransactionsEnter (this=0xe3e8a0)                                           
    at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999/kmymoney/kmymoney.cpp:4965                          
#20 0x00000000004b0e81 in KMyMoney2App::qt_metacall (this=0xe3e8a0, _c=QMetaObject::InvokeMetaMethod, _id=73,
    _a=0x7fffffffb920) at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999_build/kmymoney/kmymoney.moc:460
#21 0x00007ffff40b9cb7 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) ()
   from /usr/lib64/qt4/libQtCore.so.4
#22 0x00007ffff3562fb2 in QAction::triggered(bool) () from /usr/lib64/qt4/libQtGui.so.4
#23 0x00007ffff3564c58 in QAction::activate(QAction::ActionEvent) () from /usr/lib64/qt4/libQtGui.so.4
#24 0x00007ffff38c393f in ?? () from /usr/lib64/qt4/libQtGui.so.4
#25 0x00007ffff38c3b7d in QAbstractButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#26 0x00007ffff397cfca in QToolButton::mouseReleaseEvent(QMouseEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#27 0x00007ffff35ba354 in QWidget::event(QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#28 0x00007ffff3568255 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#29 0x00007ffff3571626 in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#30 0x00007ffff60fb94a in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#31 0x00007ffff40a632b in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#32 0x00007ffff3573943 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool) () from /usr/lib64/qt4/libQtGui.so.4
#33 0x00007ffff35e00d3 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#34 0x00007ffff35dec76 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#35 0x00007ffff3605034 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#36 0x00007ffff1c81bc9 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#37 0x00007ffff1c85268 in ?? () from /usr/lib/libglib-2.0.so.0
#38 0x00007ffff1c8541e in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#39 0x00007ffff40cfd9c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib64/qt4/libQtCore.so.4
---Type <return> to continue, or q <return> to quit---
#40 0x00007ffff3604928 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#41 0x00007ffff40a4c32 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) ()
   from /usr/lib64/qt4/libQtCore.so.4
#42 0x00007ffff40a4ff4 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#43 0x00007ffff40a7486 in QCoreApplication::exec() () from /usr/lib64/qt4/libQtCore.so.4
#44 0x0000000000461a1b in main (argc=1, argv=0x7fffffffdd88)
    at /var/tmp/portage/app-office/kmymoney-9999/work/kmymoney-9999/kmymoney/main.cpp:275
Comment 1 Dario Andres 2010-01-15 12:57:42 UTC
From bug 222832:
-- What I was doing before the crash occured:

- I had a (recurring) scheduled transaction that was due be booked on the 18th. 
- I entered it using the shortcut of the "upcoming transactions". 
- I then cleared the transaction in the account. 
- I changed the date of the (now cleared) transaction from the 18th to the 15th
(today). - Upon hitting enter to confirm my modifications, kmymoney crashed
with the backtrace below

-- Backtrace:
#5  0x00007f5b5bfda21d in Q3TableHeader::isSectionStretchable (this=0x312eb00,
s=0) at itemviews/q3table.cpp:7243
#6  0x00007f5b5bfdfccf in Q3Table::hideRow (this=0x312cba0, row=0) at
itemviews/q3table.cpp:5604
#7  0x0000000000788bf2 in KMyMoneyRegister::RegisterItem::setVisible
(this=0x3b3eb20, visible=<value optimized out>) at
/home/oliver/kmymoney-3.95.0/kmymoney/widgets/registeritem.cpp:99
#8  0x000000000078befb in KMyMoneyRegister::Transaction::setVisible
(this=0x312eb00, visible=false) at
/home/oliver/kmymoney-3.95.0/kmymoney/widgets/transaction.cpp:808
#9  0x00000000007479f7 in KMyMoneyRegister::RegisterSearchLine::itemAdded
(this=0x34e7e20, item=0x3b3eb20) at
/home/oliver/kmymoney-3.95.0/kmymoney/widgets/registersearchline.cpp:234
Comment 2 Dario Andres 2010-01-15 12:58:11 UTC
*** Bug 222832 has been marked as a duplicate of this bug. ***
Comment 3 Thomas Baumgart 2010-01-16 13:09:34 UTC
Can you check if the problem still persists? I made some changes due to bug 222927 which seem to be related. It looks like a (display) filter had been setup and the crash happened when the filter hit upon reloading the register. The filter though was not mentioned in any of the descriptions and it could be that it is why I was not able to duplicate the problem.

If we have positive confirmation that this bug is gone, we can mark it as a duplicate to bug 222927.
Comment 4 Thomas Baumgart 2010-01-16 13:20:48 UTC
The original poster confirmed the fix on IRC.

*** This bug has been marked as a duplicate of bug 222927 ***
Comment 5 Dario Andres 2010-02-22 01:21:59 UTC
*** Bug 227989 has been marked as a duplicate of this bug. ***