Bug 265681 - kget crash
Summary: kget crash
Status: RESOLVED FIXED
Alias: None
Product: kget
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: KGet authors
URL:
Keywords:
: 250656 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-02-07 10:43 UTC by Marek Zalfresso-Jundzillo
Modified: 2011-02-08 22:13 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
Window which causes problems (31.10 KB, image/png)
2011-02-08 12:31 UTC, Marek Zalfresso-Jundzillo
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Marek Zalfresso-Jundzillo 2011-02-07 10:43:03 UTC
Application: kget (2.6.0)
KDE Platform Version: 4.6.00 (4.6.0)
Qt Version: 4.7.0
Operating System: Linux 2.6.35-25-generic x86_64
Distribution: Ubuntu 10.10

-- Information about the crash:
- What I was doing when the application crashed:

I have added 2 downloads from kubuntu site -  for 32-bit and 64-bit CD ISO. When second one opened, then I tried to close "KGet Transfer" window. After that, whole kget crashed.
I have repeated that few times - crash occured always when closing "KGet Transfer" window.

I have noticed also, that before download started, it was doing some "checking" which took enormously long time, like few minutes.

The crash can be reproduced every time.

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

Thread 2 (Thread 0x7fb763f9f700 (LWP 4859)):
#0  0x00007fb77d577203 in __poll (fds=<value optimized out>, nfds=<value optimized out>, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007fb779205009 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007fb77920545c in g_main_context_iteration () from /lib/libglib-2.0.so.0
#3  0x00007fb77ee3c1e6 in QEventDispatcherGlib::processEvents (this=0x16c1de0, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:417
#4  0x00007fb77ee0ea02 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007fb77ee0edec in QEventLoop::exec (this=0x7fb763f9ecb0, flags=) at kernel/qeventloop.cpp:201
#6  0x00007fb77ed192fd in QThread::exec (this=<value optimized out>) at thread/qthread.cpp:490
#7  0x00007fb77edee5f8 in QInotifyFileSystemWatcherEngine::run (this=0x16c9e40) at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007fb77ed1c27e in QThreadPrivate::start (arg=0x16c9e40) at thread/qthread_unix.cpp:266
#9  0x00007fb7733f7ae3 in ?? () from /usr/lib/libGL.so.1
#10 0x00007fb780077971 in start_thread (arg=<value optimized out>) at pthread_create.c:304
#11 0x00007fb77d58392d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fb781f0f7a0 (LWP 4855)):
[KCrash Handler]
#6  0x00007fb77f13bd40 in typeinfo for QByteDeviceWrappingIoDevice () from /usr/lib/libQtCore.so.4
#7  0x00007fb781905827 in KWidgetJobTracker::qt_metacall (this=0x1765f10, _c=<value optimized out>, _id=<value optimized out>, _a=0x7fff28f2f640) at ./kwidgetjobtracker.moc:98
#8  0x00007fb77ee27b27 in QMetaObject::activate (sender=0x16e51b0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff28f2f690) at kernel/qobject.cpp:3280
#9  0x00007fb77f4f8a41 in KJob::description (this=0x174bc90, _t1=0x16e51b0, _t2=<value optimized out>, _t3=<value optimized out>, _t4=...) at ./kjob.moc:201
#10 0x00007fb780f67c04 in KGetKJobAdapter::slotUpdateDescription (this=0x16e51b0) at ../../kget/core/kgetkjobadapter.cpp:45
#11 0x00007fb7670f5e68 in TransferMultiSegKio::slotDataSourceFactoryChange (this=0x16d7b10, change=<value optimized out>) at ../../../../kget/transfer-plugins/multisegmentkio/transfermultisegkio.cpp:215
#12 0x00007fb7670f686f in TransferMultiSegKio::qt_metacall (this=0x16d7b10, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff28f2f9c0) at ./transfermultisegkio.moc:98
#13 0x00007fb77ee27b27 in QMetaObject::activate (sender=0x16d7d80, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff28f2f690) at kernel/qobject.cpp:3280
#14 0x00007fb780f5d231 in DataSourceFactory::dataSourceFactoryChange (this=0x174bc90, _t1=4096) at ./datasourcefactory.moc:165
#15 0x00007fb780f5e17e in DataSourceFactory::slotDataWritten (this=0x16d7d80, job=<value optimized out>, written=140733880399520) at ../../kget/core/datasourcefactory.cpp:756
#16 0x00007fb780f66938 in DataSourceFactory::qt_metacall (this=0x16d7d80, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff28f2fb10) at ./datasourcefactory.moc:139
#17 0x00007fb77ee27b27 in QMetaObject::activate (sender=0x141a7a0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff28f2f690) at kernel/qobject.cpp:3280
#18 0x00007fb7812bd19b in KIO::FileJob::written (this=0x174bc90, _t1=0x141a7a0, _t2=102600) at ./filejob.moc:155
#19 0x00007fb7812bd855 in KIO::FileJob::qt_metacall (this=0x141a7a0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff28f2fc60) at ./filejob.moc:112
#20 0x00007fb77ee27b27 in QMetaObject::activate (sender=0x16d0070, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff28f2f690) at kernel/qobject.cpp:3280
#21 0x00007fb781386c52 in KIO::SlaveInterface::written (this=0x174bc90, _t1=102600) at ./slaveinterface.moc:218
#22 0x00007fb781389c31 in KIO::SlaveInterface::dispatch (this=0x16d0070, _cmd=118, rawdata=...) at ../../kio/kio/slaveinterface.cpp:222
#23 0x00007fb781387103 in KIO::SlaveInterface::dispatch (this=0x16d0070) at ../../kio/kio/slaveinterface.cpp:89
#24 0x00007fb78137aa96 in KIO::Slave::gotInput (this=0x16d0070) at ../../kio/kio/slave.cpp:348
#25 0x00007fb78137ac7c in KIO::Slave::qt_metacall (this=0x16d0070, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff28f300b0) at ./slave.moc:82
#26 0x00007fb77ee27b27 in QMetaObject::activate (sender=0x16d9760, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x7fff28f2f690) at kernel/qobject.cpp:3280
#27 0x00007fb7812a4c67 in KIO::ConnectionPrivate::dequeue (this=0x1414270) at ../../kio/kio/connection.cpp:82
#28 0x00007fb7812a4d8d in KIO::Connection::qt_metacall (this=0x16d9760, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x127a770) at ./connection.moc:79
#29 0x00007fb77ee21bde in QObject::event (this=0x16d9760, e=0x174bc90) at kernel/qobject.cpp:1219
#30 0x00007fb77e176fdc in QApplicationPrivate::notify_helper (this=0x12805d0, receiver=0x16d9760, e=0x1797410) at kernel/qapplication.cpp:4396
#31 0x00007fb77e17caed in QApplication::notify (this=0x7fff28f30ba0, receiver=0x16d9760, e=0x1797410) at kernel/qapplication.cpp:4277
#32 0x00007fb781911a36 in KApplication::notify (this=0x7fff28f30ba0, receiver=0x16d9760, event=0x1797410) at ../../kdeui/kernel/kapplication.cpp:311
#33 0x00007fb77ee0fcdc in QCoreApplication::notifyInternal (this=0x7fff28f30ba0, receiver=0x16d9760, event=0x1797410) at kernel/qcoreapplication.cpp:732
#34 0x00007fb77ee12c22 in sendEvent (receiver=0x0, event_type=<value optimized out>, data=0x122ccd0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
#35 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0x122ccd0) at kernel/qcoreapplication.cpp:1373
#36 0x00007fb77ee3c653 in sendPostedEvents (s=0x128a900) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220
#37 postEventSourceDispatch (s=0x128a900) at kernel/qeventdispatcher_glib.cpp:277
#38 0x00007fb779201342 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#39 0x00007fb7792052a8 in ?? () from /lib/libglib-2.0.so.0
#40 0x00007fb77920545c in g_main_context_iteration () from /lib/libglib-2.0.so.0
#41 0x00007fb77ee3c193 in QEventDispatcherGlib::processEvents (this=0x122c550, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:415
#42 0x00007fb77e229a4e in QGuiEventDispatcherGlib::processEvents (this=0x174bc90, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204
#43 0x00007fb77ee0ea02 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149
#44 0x00007fb77ee0edec in QEventLoop::exec (this=0x7fff28f30b00, flags=) at kernel/qeventloop.cpp:201
#45 0x00007fb77ee12ebb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1009
#46 0x00000000004b6495 in main (argc=<value optimized out>, argv=<value optimized out>) at ../../kget/main.cpp:167

Reported using DrKonqi
Comment 1 Matthias Fuchs 2011-02-07 21:56:50 UTC
I am not completely sure what you mean with the "KGet Transfer", could you please make a screenshot of it?
Comment 2 Marek Zalfresso-Jundzillo 2011-02-07 22:39:24 UTC
Hi Matt,

I'm currently sitting behind another machine. I have almost the same
system config on both, but I can't do the same here so it looks that my
home kget differs from the other one. I'll try to explain more precisely
from what I saw at work:
"KGet Transfer" I mean small dialog-like window, which can be opened by
double-click (?) on any transfer in main kget window. Then you see
details of that single transfer in small window. At home, when I do
that, I don't have a dialog window, but only more detailed information
in main kget window.

I'll be able to send the picture tomorrow morning my local time if you
still need it.


Regards,


Marek ZJ.

W dniu 07.02.2011 21:56, Matthias Fuchs pisze:
> https://bugs.kde.org/show_bug.cgi?id=265681
>
>
> Matthias Fuchs <mat69@gmx.net> changed:
>
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>                  CC|                            |mat69@gmx.net
>
>
>
>
> --- Comment #1 from Matthias Fuchs <mat69 gmx net>  2011-02-07 21:56:50 ---
> I am not completely sure what you mean with the "KGet Transfer", could you
> please make a screenshot of it?
>
Comment 3 Matthias Fuchs 2011-02-08 10:02:47 UTC
Yes it would be great if you could send an image.
I guess I know what you mean, but I still want to be sure.
Comment 4 Marek Zalfresso-Jundzillo 2011-02-08 10:37:19 UTC
This is the window I tried to close. It killed my kget.

Dnia 8-02-2011 o godz. 10:03 Matthias Fuchs napisał(a):
> https://bugs.kde.org/show_bug.cgi?id=265681
> 
> 
> 
> 
> 
> --- Comment #3 from Matthias Fuchs <mat69 gmx net>  2011-02-08 10:02:47
> ---
> Yes it would be great if you could send an image.
> I guess I know what you mean, but I still want to be sure.
> 
> --
> Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
> ------- You are receiving this mail because: -------
> You reported the bug.
Comment 5 Matthias Fuchs 2011-02-08 12:07:01 UTC
I am afraid uploading the image failed.
Please do that on the bug page itself, there it should work.
Comment 6 Marek Zalfresso-Jundzillo 2011-02-08 12:31:42 UTC
Created attachment 56983 [details]
Window which causes problems
Comment 7 Matthias Fuchs 2011-02-08 13:03:59 UTC
Thanks. I can reproduce the crash and hopefully will fix it soon.

Generally that window should not be shown[1], instead a plasma notification should be displayed showing the progress. The reason that you get this is that maybe kuiserver or was it knotify4 is not working correctly for you.

If you don't want any such notifications/dialogs you can turn them off in Settings/Advanced/"Enable KDE global progress tracking".

[1] I had to kill kuiserver or was it knotify4 to have that window.
Comment 8 Matthias Fuchs 2011-02-08 14:47:39 UTC
*** Bug 250656 has been marked as a duplicate of this bug. ***
Comment 9 Matthias Fuchs 2011-02-08 22:07:43 UTC
SVN commit 1219468 by mfuchs:

Avoids a dangling pointer.

When doKill is called on KGetJobAdapter or KGetGlobalJob requestStop(KJob*, TransferHandler*) is emitted.
KUiServerJob reacts on that:
*unregisters the job if it was registered
*stops the transfer or all transfers if transfer is 0.
That way the job is unregistered before its KWidgetJobTracker is destroyed avoiding a crash.
BUG:265681

 M  +6 -0      kgetglobaljob.cpp  
 M  +15 -0     kgetglobaljob.h  
 M  +10 -2     kgetkjobadapter.cpp  
 M  +12 -0     kgetkjobadapter.h  
 M  +40 -11    kuiserverjobs.cpp  
 M  +9 -1      kuiserverjobs.h  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1219468
Comment 10 Matthias Fuchs 2011-02-08 22:13:32 UTC
SVN commit 1219470 by mfuchs:

Backport r1219468
Avoids a dangling pointer.

When doKill is called on KGetJobAdapter or KGetGlobalJob requestStop(KJob*, TransferHandler*) is emitted.
KUiServerJob reacts on that:
*unregisters the job if it was registered
*stops the transfer or all transfers if transfer is 0.
That way the job is unregistered before its KWidgetJobTracker is destroyed avoiding a crash.
CCBUG:265681

 M  +6 -0      kgetglobaljob.cpp  
 M  +15 -0     kgetglobaljob.h  
 M  +10 -2     kgetkjobadapter.cpp  
 M  +12 -0     kgetkjobadapter.h  
 M  +40 -11    kuiserverjobs.cpp  
 M  +9 -1      kuiserverjobs.h  


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