Bug 106657

Summary: clicking pause on a download thats starting but hasn't yet connected crashes kget
Product: [Applications] kget Reporter: Elliot Pahl <elliot.pahl>
Component: generalAssignee: KGet authors <kget>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Elliot Pahl 2005-06-02 10:35:43 UTC
Version:           kget v0.8.4 (using KDE KDE 3.4.1)
Installed from:    Gentoo Packages
Compiler:          gcc version 3.4.3 20041125 (Gentoo 3.4.3-r1, ssp-3.4.3-0, pie-8.7.7) Configured with: /var/tmp/portage/gcc-3.4.3-r1/work/gcc-3.4.3/configure --enable-version-specific-runtime-libs --prefix=/usr --bindir=/usr/x86_64-pc-linux-gnu/gcc-bin/3.4.3 --includedir=/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/include --datadir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.3 --mandir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.3/man --infodir=/usr/share/gcc-data/x86_64-pc-linux-gnu/3.4.3/info --with-gxx-include-dir=/usr/lib/gcc/x86_64-pc-linux-gnu/3.4.3/include/g++-v3 --host=x86_64-pc-linux-gnu --disable-altivec --enable-nls --without-included-gettext --with-system-zlib --disable-checking --disable-werror --disable-libunwind-exceptions --enable-multilib --disable-libgcj --enable-languages=c,c++,f77 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu
Thread model: posix
OS:                Linux

This doesn't happen EVERY time, but it does occur more than frequently.

I can reproduce by adding a new download and pausing it, or by starting and pausing an existing download.

Kget then crashes and disappears COMPLETELY, and when restarted, is in a state before the previous few actions.
ie. The newly added download isn't there.

Compiled without debug, kget gives a message about a downloadFinished (? I don't remember the exact name) method, and also *** KGet got signal 11.

I recompiled with debug turned on, and tried running kget inside gdb, however I couldn't backtrace, as when kget crashed, it was just...gone.

However, this is what I got in console from starting kget, resuming a download, waiting a moment, then pausing before it had connected.

[epahl:/home/epahl]$ kget
kget: [void Settings::load()] |--( GUI )--| Loading settings
kget: [void Settings::load()] |--( GUI )--| locating sounds.../usr/kde/3.4/share/apps/kget/sounds/added.wav
kget: [void Settings::load()] |--( GUI )--| audioadded= /usr/kde/3.4/share/apps/kget/sounds/added.wav
kget: [int sockets_open()] |--( GUI )--| <<<<Leaving -> sockets_open ()
kget: [Transfer::Transfer(TransferList*, Transfer*, const KURL&, const KURL&, uint)] |--( GUI )--| >>>>Entering
kget: [void Transfer::init(uint)] |--( GUI )--| >>>>Entering
kget: [Slave::Slave(Transfer*, const KURL&, const KURL&)] |--TH_ID ( 16384 )--| >>>>Entering
kget: [Slave::Slave(Transfer*, const KURL&, const KURL&)] |--TH_ID ( 16384 )--| >>>>Leaving
kget: [void Transfer::init(uint)] |--( GUI )--| >>>>Leaving
kget: [Transfer::Transfer(TransferList*, Transfer*, const KURL&, const KURL&, uint)] |--( GUI )--| >>>>Leaving
kget: [bool Transfer::read(KSimpleConfig*, int)] |--( GUI )--| >>>>Entering
kget: [void Transfer::updateAll()] |--( GUI )--| >>>>Entering
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Entering Copy file from: http://www.playlinux.net/pub/files/native/nexuiz_1.0-english.run
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Leaving
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Entering To: file:///home/epahl/downloads/nexuiz_1.0-english.run
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Leaving
kget: [void Transfer::updateAll()] |--( GUI )--| >>>>Leaving
kget: [bool Transfer::read(KSimpleConfig*, int)] |--( GUI )--| >>>>Leaving
kget: [Transfer::Transfer(TransferList*, Transfer*, const KURL&, const KURL&, uint)] |--( GUI )--| >>>>Entering
kget: [void Transfer::init(uint)] |--( GUI )--| >>>>Entering
kget: [Slave::Slave(Transfer*, const KURL&, const KURL&)] |--TH_ID ( 16384 )--| >>>>Entering
kget: [Slave::Slave(Transfer*, const KURL&, const KURL&)] |--TH_ID ( 16384 )--| >>>>Leaving
kget: [void Transfer::init(uint)] |--( GUI )--| >>>>Leaving
kget: [Transfer::Transfer(TransferList*, Transfer*, const KURL&, const KURL&, uint)] |--( GUI )--| >>>>Leaving
kget: [bool Transfer::read(KSimpleConfig*, int)] |--( GUI )--| >>>>Entering
kget: [void Transfer::updateAll()] |--( GUI )--| >>>>Entering
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Entering Copy file from: http://line9.com/ftproot/imps_teaser_divx.zip
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Leaving
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Entering To: file:///home/epahl/downloads/imps_teaser_divx.zip
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Leaving
kget: [void Transfer::updateAll()] |--( GUI )--| >>>>Leaving
kget: [bool Transfer::read(KSimpleConfig*, int)] |--( GUI )--| >>>>Leaving
kget: [Transfer::Transfer(TransferList*, Transfer*, const KURL&, const KURL&, uint)] |--( GUI )--| >>>>Entering
kget: [void Transfer::init(uint)] |--( GUI )--| >>>>Entering
kget: [Slave::Slave(Transfer*, const KURL&, const KURL&)] |--TH_ID ( 16384 )--| >>>>Entering
kget: [Slave::Slave(Transfer*, const KURL&, const KURL&)] |--TH_ID ( 16384 )--| >>>>Leaving
kget: [void Transfer::init(uint)] |--( GUI )--| >>>>Leaving
kget: [Transfer::Transfer(TransferList*, Transfer*, const KURL&, const KURL&, uint)] |--( GUI )--| >>>>Leaving
kget: [bool Transfer::read(KSimpleConfig*, int)] |--( GUI )--| >>>>Entering
kget: [void Transfer::updateAll()] |--( GUI )--| >>>>Entering
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Entering Copy file from: http://download.nvidia.com/XFree86/Linux-x86_64/1.0-7664/NVIDIA-Linux-x86_64-1.0-7664-pkg2.run
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Leaving
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Entering To: file:///home/epahl/downloads/NVIDIA-Linux-x86_64-1.0-7664-pkg2.run
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Leaving
kget: [void Transfer::updateAll()] |--( GUI )--| >>>>Leaving
kget: [bool Transfer::read(KSimpleConfig*, int)] |--( GUI )--| >>>>Leaving
kget: [Transfer::Transfer(TransferList*, Transfer*, const KURL&, const KURL&, uint)] |--( GUI )--| >>>>Entering
kget: [void Transfer::init(uint)] |--( GUI )--| >>>>Entering
kget: [Slave::Slave(Transfer*, const KURL&, const KURL&)] |--TH_ID ( 16384 )--| >>>>Entering
kget: [Slave::Slave(Transfer*, const KURL&, const KURL&)] |--TH_ID ( 16384 )--| >>>>Leaving
kget: [void Transfer::init(uint)] |--( GUI )--| >>>>Leaving
kget: [Transfer::Transfer(TransferList*, Transfer*, const KURL&, const KURL&, uint)] |--( GUI )--| >>>>Leaving
kget: [bool Transfer::read(KSimpleConfig*, int)] |--( GUI )--| >>>>Entering
kget: [void Transfer::updateAll()] |--( GUI )--| >>>>Entering
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Entering Copy file from: http://www.hamncheez.com/media/videos/tile2.wmv
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Leaving
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Entering To: file:///home/epahl/downloads/tile2.wmv
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Leaving
kget: [void Transfer::updateAll()] |--( GUI )--| >>>>Leaving
kget: [bool Transfer::read(KSimpleConfig*, int)] |--( GUI )--| >>>>Leaving
kget: [void KMainWidget::checkQueue()] |--( GUI )--| Found 0 Running Jobs
[epahl:/home/epahl]$ kget: [void Transfer::slotResume()] |--( GUI )--| >>>>Entering  state =2
kget: [void Transfer::slotResume()] |--( GUI )--| src: http://line9.com/ftproot/imps_teaser_divx.zip
kget: [void Transfer::slotResume()] |--( GUI )--| dest file:///home/epahl/downloads/imps_teaser_divx.zip
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Entering Attempt number 1
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Leaving
kget: [void Transfer::slotResume()] |--( GUI )--| sending Resume to slave
kget: [void Slave::Op(Slave::SlaveCommand)] |--TH_ID ( 16384 )--| >>>>Entering  _cmd = 0
kget: [void Slave::Op(Slave::SlaveCommand)] |--TH_ID ( 16384 )--| >>>>Leaving
kget: [void Transfer::slotResume()] |--( GUI )--| >>>>Leaving
kget: [virtual void Slave::run()] |--TH_ID ( 16386 )--| >>>>Entering
kget: [virtual void Slave::run()] |--TH_ID ( 16386 )--|  FETCHED COMMAND       RETR
kget: [void Slave::Connect()] |--TH_ID ( 16386 )--| >>>>Entering
kget: [void Slave::Connect()] |--TH_ID ( 16386 )--| >>>>Leaving
kget: [void Transfer::slotExecResume()] |--( GUI )--| >>>>Entering
kget: [void Transfer::slotUpdateActions()] |--( GUI )--| >>>>Entering the item Status is =0offline=false
kget: [void Transfer::slotUpdateActions()] |--( GUI )--| >>>>Leaving
kget: [void KMainWidget::checkQueue()] |--( GUI )--| Found 1 Running Jobs
kget: [void Transfer::slotUpdateActions()] |--( GUI )--| >>>>Entering the item Status is =0offline=false
kget: [void Transfer::slotUpdateActions()] |--( GUI )--| >>>>Leaving
kget: [void Transfer::slotExecResume()] |--( GUI )--| >>>>Leaving
kget: [void Slave::slotInfoMessage(KIO::Job*, const QString&)] |--TH_ID ( 16384 )--| >>>>Entering MSG=line9.com contacted. Waiting for reply...
kget: [void Slave::InfoMessage(const QString&)] |--TH_ID ( 16384 )--| Infor Msg:_msg = line9.com contacted. Waiting for reply...
kget: [void Slave::slotInfoMessage(KIO::Job*, const QString&)] |--TH_ID ( 16384 )--| >>>>Leaving
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Entering line9.com contacted. Waiting for reply...
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Leaving
kget: [void Transfer::slotRequestPause()] |--( GUI )--| >>>>Entering
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Entering Pausing
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Leaving
kget: [void Slave::Op(Slave::SlaveCommand)] |--TH_ID ( 16384 )--| >>>>Entering  _cmd = 2
kget: [void Slave::Op(Slave::SlaveCommand)] |--TH_ID ( 16384 )--| >>>>Leaving
kget: [void Transfer::slotRequestPause()] |--( GUI )--| Requesting Pause..
kget: [void Transfer::slotRequestPause()] |--( GUI )--| >>>>Leaving
kget: [virtual void Slave::run()] |--TH_ID ( 16386 )--|  FETCHED COMMAND       PAUSE
*** KGet got signal 11
Comment 1 Urs Wolfer 2007-09-22 17:06:32 UTC
This report is not valid anymore for KGet trunk (KDE 4).