Bug 84450 - KGet got signal 11
Summary: KGet got signal 11
Status: RESOLVED FIXED
Alias: None
Product: kget
Classification: Applications
Component: general (show other bugs)
Version: 0.8.3
Platform: unspecified Linux
: NOR crash
Target Milestone: ---
Assignee: KGet authors
URL:
Keywords:
: 81835 85167 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-07-04 09:53 UTC by cerebro84
Modified: 2004-11-23 11:06 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
A patch fixing the bug (1.29 KB, patch)
2004-08-20 04:00 UTC, Modestas Vainius
Details

Note You need to log in before you can comment on or make changes to this bug.
Description cerebro84 2004-07-04 09:53:30 UTC
Version:           sconosciuto (using KDE 3.2.91 (3.3 beta1), compiled sources)
Compiler:          gcc version 3.3.2 (Mandrake Linux 10.0 3.3.2-6mdk)
OS:                Linux (i686) release 2.6.3-7mdk

KGet quits by itself some seconds after I run it. I ran it into a console and this is its last output:

kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Entering A: file:/home/giuseppe/Documents/giuseppe/Mail-SpamAssassin-2.63.tar.bz2
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&, unsigned int)] |--( GUI )--| >>>>Entering
kget: [void Transfer::init(unsigned int)] |--( GUI )--| >>>>Entering
kget: [Slave::Slave(Transfer*, const KURL&, const KURL&)] |--TH_ID ( 1096231328 )--| >>>>Entering
kget: [Slave::Slave(Transfer*, const KURL&, const KURL&)] |--TH_ID ( 1096231328 )--| >>>>Leaving
kget: [void Transfer::init(unsigned int)] |--( GUI )--| >>>>Leaving
kget: [Transfer::Transfer(TransferList*, Transfer*, const KURL&, const KURL&, unsigned int)] |--( GUI )--| >>>>Leaving
kget: [bool Transfer::read(KSimpleConfig*, int)] |--( GUI )--| >>>>Entering
kget: [void Transfer::updateAll()] |--( GUI )--| >>>>Entering
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Entering Copia file da: http://www.kde-look.org/content/files/13899-sunset1280x1024.jpg
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Leaving
kget: [void Transfer::logMessage(const QString&)] |--( GUI )--| >>>>Entering A: file:/home/giuseppe/Documents/giuseppe/13899-sunset1280x1024.jpg
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 8 Running Jobs
QObject::disconnect: Unexpected null parameter
QObject::connect: Cannot connect (null)::destroyed() to QTipManager::clientWidgetDestroyed()
[giuseppe@localhost giuseppe]$ kget: slotValueChanged(): dom lug 4 00:00:00 2004
kget: slotValueChanged(): dom lug 4 00:00:00 2004
kget: [void TransferList::writeTransfers(const QString&)] |--( GUI )--| >>>>Entering with file =/home/giuseppe/.kde/share/apps/kget/transfers.kgt
kget: [void Transfer::write(KSimpleConfig*, int)] |--( GUI )--| >>>>Entering
*** KGet got signal 11
Comment 1 Rex Dieter 2004-08-19 16:20:25 UTC
*** Bug 85167 has been marked as a duplicate of this bug. ***
Comment 2 Rex Dieter 2004-08-19 16:23:57 UTC
Confirmed for kde-3.3.0 as released to packagers, on redhat 7.3, redhat 9.0, redhat enterprise 3.0 all experience the same problem. (Oddly Fedora Core 2's symptoms are slighty different, but I'll report that separately)
Comment 3 Modestas Vainius 2004-08-20 03:56:25 UTC
The problem here is that KMainWidget::updateStatusBar(), which updates a tooltip of the dock too, is called *before* KMainWidget::kdock gets initialized. Consider these backtraces:

==9591== Use of uninitialised value of size 4
==9591==    at 0x1C75A1B4: QGDict::look_ptr(void*, void*, int) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C5DE0E7: QTipManager::remove(QWidget*, QRect const&, bool) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C5DFC6C: QToolTip::remove(QWidget*) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x807806E: DockWidget::updateToolTip(QString const&) (docking.cpp:102)
==9591==    by 0x8074193: KMainWidget::updateStatusBar() (kmainwidget.cpp:2064)
==9591==    by 0x806EE03: KMainWidget::setupGUI() (kmainwidget.cpp:402)
==9591==    by 0x806C967: KMainWidget::KMainWidget(bool) (kmainwidget.cpp:153)
==9591==    by 0x80925D8: KGetApp::newInstance() (main.cpp:145)
==9591==    by 0x1C0863F1: KUniqueApplication::processDelayed() (in /usr/lib/libkdecore.so.4.2.0)
==9591==    by 0x1C08689E: KUniqueApplication::qt_invoke(int, QUObject*) (in /usr/lib/libkdecore.so.4.2.0)
==9591==    by 0x1C4A550B: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C7E3069: QSignal::signal(QVariant const&) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C4BF6CC: QSignal::activate() (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C4C6EB2: QSingleShotTimer::event(QEvent*) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C448BCE: QApplication::internalNotify(QObject*, QEvent*) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C4481CD: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1BFDFF12: KApplication::notify(QObject*, QEvent*) (in /usr/lib/libkdecore.so.4.2.0)
==9591==    by 0x1C438404: QEventLoop::activateTimers() (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C3F1C4A: QEventLoop::processEvents(unsigned) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C45AF27: QEventLoop::enterLoop() (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C45ADD7: QEventLoop::exec() (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C448E20: QApplication::exec() (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x80807F4: main (main.cpp:206)

==9591== Use of uninitialised value of size 4
==9591==    at 0x1C75A9AB: QGDict::unlink_ptr(void*, void*) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C75AD90: QGDict::take_ptr(void*) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C5DE24B: QTipManager::remove(QWidget*, QRect const&, bool) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C5DFC6C: QToolTip::remove(QWidget*) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x807806E: DockWidget::updateToolTip(QString const&) (docking.cpp:102)
==9591==    by 0x8074193: KMainWidget::updateStatusBar() (kmainwidget.cpp:2064)
==9591==    by 0x8071E38: KMainWidget::checkQueue() (kmainwidget.cpp:1305)
==9591==    by 0x806F903: KMainWidget::readTransfersEx(KURL const&) (kmainwidget.cpp:599)
==9591==    by 0x806F8B7: KMainWidget::readTransfers(bool) (kmainwidget.cpp:575)
==9591==    by 0x806CD35: KMainWidget::KMainWidget(bool) (kmainwidget.cpp:208)
==9591==    by 0x80925D8: KGetApp::newInstance() (main.cpp:145)
==9591==    by 0x1C0863F1: KUniqueApplication::processDelayed() (in /usr/lib/libkdecore.so.4.2.0)
==9591==    by 0x1C08689E: KUniqueApplication::qt_invoke(int, QUObject*) (in /usr/lib/libkdecore.so.4.2.0)
==9591==    by 0x1C4A550B: QObject::activate_signal(QConnectionList*, QUObject*) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C7E3069: QSignal::signal(QVariant const&) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C4BF6CC: QSignal::activate() (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C4C6EB2: QSingleShotTimer::event(QEvent*) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C448BCE: QApplication::internalNotify(QObject*, QEvent*) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C4481CD: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1BFDFF12: KApplication::notify(QObject*, QEvent*) (in /usr/lib/libkdecore.so.4.2.0)
==9591==    by 0x1C438404: QEventLoop::activateTimers() (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C3F1C4A: QEventLoop::processEvents(unsigned) (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C45AF27: QEventLoop::enterLoop() (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C45ADD7: QEventLoop::exec() (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x1C448E20: QApplication::exec() (in /usr/lib/libqt-mt.so.3.3.3)
==9591==    by 0x80807F4: main (main.cpp:206)

Thus, two functions, namely KMainWidget::setupGUI() and KMainWidget::readTransfers(bool), try to access the dock, which hasn't been created yet. I've made a patch (see the attachment), which fixes this bug by adding a validility test of the kdock object into KMainWidget::updateStatusBar().
Comment 4 Modestas Vainius 2004-08-20 04:00:56 UTC
Created attachment 7188 [details]
A patch fixing the bug

Please fix this bug ASAP because it makes kget almost unusable.
Comment 5 Rex Dieter 2004-08-20 14:57:05 UTC
Thanks Modestas.  Provided patch seems to do the trick!
Comment 6 Rex Dieter 2004-08-23 17:27:45 UTC
*** Bug 81835 has been marked as a duplicate of this bug. ***
Comment 7 Heiko Liebfried 2004-09-24 15:54:50 UTC
Thanks for the patch. No more sig 11 here :)
Comment 8 Daniel Frein 2004-11-10 00:16:58 UTC
In my case kget is crashing directly after starting it (sig 11, crash handler doesn't start, as in bug 81835 (closed/duplicate)), but not if crystal is the active icon theme or it is called with "kget -icon kget" (this is the way kget is started by the k menu entry). 

And every once a while it crashes with sig 4 instead of 11 (and in this case the kde crash handler is starting)

(kget 3.3.1, debian sid)
Comment 9 Bertrand Croq 2004-11-10 11:00:53 UTC
Same problem here: Debian Sid, kget 3.3.1.

kget immediatly crashed with signal 11 and without the crash dialog.

If I remove ~/.kde/share/config/kgetrc, I get the dialog box asking if I want to integrate kget with konqueror, but it then crashes without the crash dialog.

If kget is started by "kget -icon kget", it works.

I didn't get a signal 4 crash, but I have only tested for a few minutes.
Hope it helps.
Comment 10 Daniel Frein 2004-11-10 11:06:08 UTC
BTW, kget 3.3.0 works as it should (debian sid, kget_4%3a3.3.0-2_i386.deb), only 3.3.1 crashs.
Comment 11 Rex Dieter 2004-11-10 14:36:57 UTC
FYI, patch in comment #4 fixes the issue.
Comment 12 Mark 2004-11-21 17:07:28 UTC
Patch in #4 fixes it for me too.
Comment 13 Bertrand Croq 2004-11-21 21:18:55 UTC
kget from debian unstable is fixed... Here is the bug report (resolved):

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=280616
Comment 14 Stephan Kulow 2004-11-23 11:06:18 UTC
CVS commit by coolo: 

a working patch available since august and no-one is picking it up? What's
up with kget? No-one cares? ;(
BUG: 84450


  M +9 -8      kmainwidget.cpp   1.106


--- kdenetwork/kget/kmainwidget.cpp  #1.105:1.106
@@ -112,5 +112,5 @@ KMainWidget::KMainWidget(bool bStartDock
     : KGetIface( "KGet-Interface" ),
       KMainWindow(0, "kget mainwindow"),
-      prefDlg( 0L )
+      prefDlg( 0 ), kdock( 0 )
 {
 #ifdef _DEBUG
@@ -2058,4 +2058,5 @@ void KMainWidget::updateStatusBar()
     statusBar()->changeItem(i18n(" %1/s ").arg(KIO::convertSize(totalSpeed)), ID_TOTAL_SPEED);
 
+    if (kdock) {
     tmpstr = i18n(" Transfers: %1 ").arg(myTransferList->childCount()) +
     i18n(" Files: %1 ").arg(totalFiles)+
@@ -2063,5 +2064,5 @@ void KMainWidget::updateStatusBar()
     i18n(" Time: %1 %2/s").arg(remTime.toString()).arg(KIO::convertSize(totalSpeed));
     kdock->updateToolTip( tmpstr );
-
+    }
 #ifdef _DEBUG
     //sDebugOut << endl;


Comment 15 Stephan Kulow 2004-11-23 11:06:33 UTC
CVS commit by coolo: 

backport fix
CCBUG: 84450


  M +3 -2      kmainwidget.cpp   1.105.2.1


--- kdenetwork/kget/kmainwidget.cpp  #1.105:1.105.2.1
@@ -112,5 +112,5 @@ KMainWidget::KMainWidget(bool bStartDock
     : KGetIface( "KGet-Interface" ),
       KMainWindow(0, "kget mainwindow"),
-      prefDlg( 0L )
+      prefDlg( 0 ), kdock( 0 )
 {
 #ifdef _DEBUG
@@ -2058,4 +2058,5 @@ void KMainWidget::updateStatusBar()
     statusBar()->changeItem(i18n(" %1/s ").arg(KIO::convertSize(totalSpeed)), ID_TOTAL_SPEED);
 
+    if (kdock) {
     tmpstr = i18n(" Transfers: %1 ").arg(myTransferList->childCount()) +
     i18n(" Files: %1 ").arg(totalFiles)+
@@ -2063,5 +2064,5 @@ void KMainWidget::updateStatusBar()
     i18n(" Time: %1 %2/s").arg(remTime.toString()).arg(KIO::convertSize(totalSpeed));
     kdock->updateToolTip( tmpstr );
-
+    }
 #ifdef _DEBUG
     //sDebugOut << endl;