Bug 220426

Summary: Crash when closing kget with KDE global progress tracking enabled [KJobTrackerInterface::unregisterJob, KUiServerJobTracker::unregisterJob, KDynamicJobTracker::unregisterJob]
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-12-28 18:27:21 UTC
Application: kget (2.3.85)
KDE Platform Version: 4.3.85 (KDE 4.3.85 (KDE 4.4 Beta2)) (Compiled from sources)
Qt Version: 4.6.0
Operating System: Linux 2.6.31-16-generic i686
Distribution: Ubuntu 9.10

-- Information about the crash:
If you close kget with a running transfer and the the options:
* Enable KDE global progress tracking (Show every single download)
kget crashes. This happens every time. 

The crash can be reproduced everytime.

 -- Backtrace:
Application: KGet (kget), signal: Segmentation fault
[Current thread is 1 (Thread 0xb534d730 (LWP 4545))]

Thread 2 (Thread 0xb3bcfb70 (LWP 4552)):
#0  0x006e3422 in __kernel_vsyscall ()
#1  0x00b6e142 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/pthread_cond_timedwait.S:179
#2  0x07db51e5 in QWaitConditionPrivate::wait (this=0x85c02f0, time=30000) at thread/qwaitcondition_unix.cpp:85
#3  0x07db5003 in QWaitCondition::wait (this=0x85bd82c, mutex=0x85bd828, time=30000) at thread/qwaitcondition_unix.cpp:159
#4  0x07da5417 in QThreadPoolThread::run (this=0x85b14a0) at concurrent/qthreadpool.cpp:140
#5  0x07db3d78 in QThreadPrivate::start (arg=0x85b14a0) at thread/qthread_unix.cpp:244
#6  0x00b6980e in start_thread (arg=0xb3bcfb70) at pthread_create.c:300
#7  0x079707ee in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb534d730 (LWP 4545)):
[KCrash Handler]
#6  0x00000010 in ?? ()
#7  0x0109834d in KJobTrackerInterface::unregisterJob (this=0x851c468, job=0x857ab00) at /home/dario/kde/kdelibs/kdecore/jobs/kjobtrackerinterface.cpp:82
#8  0x002e9496 in KUiServerJobTracker::unregisterJob (this=0x851c468, job=0x857ab00) at /home/dario/kde/kdelibs/kdeui/jobs/kuiserverjobtracker.cpp:118
#9  0x007f562c in KDynamicJobTracker::unregisterJob (this=0x855aa98, job=0x857ab00) at /home/dario/kde/kdelibs/kio/kio/kdynamicjobtracker.cpp:88
#10 0x00590c26 in KUiServerJobs::unregisterJob (this=0x8372cb8, job=0x857ab00) at /home/dario/kde/kdenetwork/kget/core/kuiserverjobs.cpp:61
#11 0x00590ccb in ~KUiServerJobs (this=0x8372cb8, __in_chrg=<value optimized out>) at /home/dario/kde/kdenetwork/kget/core/kuiserverjobs.cpp:26
#12 0x07ee353c in QObjectPrivate::deleteChildren (this=0x828bb08) at kernel/qobject.cpp:1998
#13 0x06be5e4d in ~QWidget (this=0x828b038, __in_chrg=<value optimized out>) at kernel/qwidget.cpp:1459
#14 0x0706bbed in ~QMainWindow (this=0x828b038, __in_chrg=<value optimized out>) at widgets/qmainwindow.cpp:342
#15 0x003e1094 in ~KMainWindow (this=0x828b038, __in_chrg=<value optimized out>) at /home/dario/kde/kdelibs/kdeui/widgets/kmainwindow.cpp:476
#16 0x00426398 in ~KXmlGuiWindow (this=0x828b038, __vtt_parm=0x81021fc, __in_chrg=<value optimized out>) at /home/dario/kde/kdelibs/kdeui/xmlgui/kxmlguiwindow.cpp:127
#17 0x080e0ed9 in ~MainWindow (this=0x828b038, __in_chrg=<value optimized out>, __vtt_parm=<value optimized out>) at /home/dario/kde/kdenetwork/kget/mainwindow.cpp:116
#18 0x080ea8ed in ~KGetApp (argc=1, argv=0xbf9521e4) at /home/dario/kde/kdenetwork/kget/main.cpp:39
#19 main (argc=1, argv=0xbf9521e4) at /home/dario/kde/kdenetwork/kget/main.cpp:184

Reported using DrKonqi
Comment 1 Dario Massarin 2009-12-28 18:32:26 UTC
SVN commit 1067010 by dario:

Delete the jobManager before deleting the scheduler. In this way the jobManager can unregister all the notifications
without making kget crash anymore.
BUG: 220426


 M  +1 -0      kget.cpp  


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