Bug 209755

Summary: Crash when closing kget [QMap<int, Job*>::node_create, QMap<int, Job*>::detach_helper, QMap<int, Job*>::detach]
Product: [Applications] kget Reporter: Dario Massarin <nekkar>
Component: generalAssignee: KGet authors <kget>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Dario Massarin 2009-10-07 14:25:58 UTC
Application: kget (2.3.71)
KDE Version: 4.3.71 (KDE 4.3.71 (KDE 4.4 >= 20091007)) (Compiled from sources)
Qt Version: 4.5.1
Operating System: Linux 2.6.29-gentoo-r5 i686

What I was doing when the application crashed:
Got this crash when closing kget. I had a torrent download and a multithread one. 

 -- Backtrace:
Application: KGet (kget), signal: Segmentation fault
[KCrash Handler]
#5  0xb797e2b7 in QMap<int, Job*>::node_create (this=0x8bfdd6c, adt=0x8d96820, aupdate=0xbfc8a708, akey=@0x81, avalue=@0x85) at /opt/kde/qt4/include/QtCore/qmap.h:420
#6  0xb797e36e in QMap<int, Job*>::detach_helper (this=0x8bfdd6c) at /opt/kde/qt4/include/QtCore/qmap.h:708
#7  0xb797e3f5 in QMap<int, Job*>::detach (this=0x8bfdd6c) at /opt/kde/qt4/include/QtCore/qmap.h:172
#8  0xb797e40d in QMap<int, Job*>::begin (this=0x8bfdd6c) at /opt/kde/qt4/include/QtCore/qmap.h:338
#9  0xb797d365 in Scheduler::stopDelayTimer (this=0x8bfdd60, job=0x8d48b08) at /opt/kde/kdenetwork/kget/core/scheduler.cpp:136
#10 0xb798650e in ~Transfer (this=0x8d48b08) at /opt/kde/kdenetwork/kget/core/transfer.cpp:53
#11 0xb22ae0c8 in ~TransferKio (this=0x8d48b08) at /opt/kde/kdenetwork/kget/transfer-plugins/kio/transferKio.h:27
#12 0xb72a68ff in QObjectPrivate::deleteChildren (this=0x8d04e90) at kernel/qobject.cpp:1854
#13 0xb72add9f in ~QObject (this=0x8d03788) at kernel/qobject.cpp:844
#14 0xb7970c53 in ~JobQueue (this=0x8d03788) at /opt/kde/kdenetwork/kget/core/jobqueue.cpp:27
#15 0xb7989373 in ~TransferGroup (this=0x8d03788) at /opt/kde/kdenetwork/kget/core/transfergroup.cpp:41
#16 0xb72a68ff in QObjectPrivate::deleteChildren (this=0x8bfe0f0) at kernel/qobject.cpp:1854
#17 0xb72add9f in ~QObject (this=0x8bfdd60) at kernel/qobject.cpp:844
#18 0xb797dd30 in ~Scheduler (this=0x8bfdd60) at /opt/kde/kdenetwork/kget/core/scheduler.cpp:28
#19 0xb798cdb8 in ~TransferGroupScheduler (this=0x8bfdd60) at /opt/kde/kdenetwork/kget/core/transfergroupscheduler.cpp:25
#20 0xb79716ef in ~KGet (this=0x8c1d1d0) at /opt/kde/kdenetwork/kget/core/kget.cpp:779
#21 0x080c8052 in ~MainWindow (this=0x8c123c8) at /opt/kde/kdenetwork/kget/mainwindow.cpp:116
#22 0x080cb561 in ~KGetApp (this=0xbfc8a9fc) at /opt/kde/kdenetwork/kget/main.cpp:38
#23 0x080ca553 in main (argc=) at /opt/kde/kdenetwork/kget/main.cpp:181

Reported using DrKonqi
Comment 1 Dario Massarin 2009-10-07 19:34:41 UTC
SVN commit 1032383 by dario:

* get rid of the postDeletedEvent. Put instead a deinit() function in the Transfer class
* put a non virtual create() and destroy() function in the transfer class. These becomes
  so useful in doing some stuff like managing the scheduler when we are deleting a transfer
  or, for example, deinitializing the NepomukHandler
* In this way we can take the scheduler deinitialization stuff out of the Transfer class
  destructor. Should solve bug 209755.

BUG: 209755


 M  +9 -9      core/datasourcefactory.cpp  
 M  +2 -2      core/datasourcefactory.h  
 M  +0 -2      core/job.h  
 M  +6 -6      core/kget.cpp  
 M  +1 -1      core/kiodownload.cpp  
 M  +1 -1      core/kiodownload.h  
 M  +1 -1      core/nepomukhandler.cpp  
 M  +2 -2      core/nepomukhandler.h  
 M  +20 -5     core/transfer.cpp  
 M  +22 -1     core/transfer.h  
 M  +10 -11    core/transferhandler.cpp  
 M  +5 -3      core/transferhandler.h  
 M  +2 -2      transfer-plugins/bittorrent/btnepomukhandler.cpp  
 M  +1 -1      transfer-plugins/bittorrent/btnepomukhandler.h  
 M  +20 -24    transfer-plugins/bittorrent/bttransfer.cpp  
 M  +4 -2      transfer-plugins/bittorrent/bttransfer.h  
 M  +5 -5      transfer-plugins/contentfetch/contentfetch.cpp  
 M  +2 -1      transfer-plugins/contentfetch/contentfetch.h  
 M  +1 -4      transfer-plugins/kio/transferKio.cpp  
 M  +1 -1      transfer-plugins/kio/transferKio.h  
 M  +4 -4      transfer-plugins/metalink/metalink.cpp  
 M  +1 -1      transfer-plugins/metalink/metalink.h  
 M  +1 -1      transfer-plugins/metalink/metanepomukhandler.cpp  
 M  +1 -1      transfer-plugins/metalink/metanepomukhandler.h  
 M  +1 -1      transfer-plugins/mms/mmsTransfer.cpp  
 M  +1 -1      transfer-plugins/mms/mmsTransfer.h  
 M  +8 -11     transfer-plugins/multisegmentkio/transfermultisegkio.cpp  
 M  +1 -1      transfer-plugins/multisegmentkio/transfermultisegkio.h  


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