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
*** Bug 85167 has been marked as a duplicate of this bug. ***
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)
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().
Created attachment 7188 [details] A patch fixing the bug Please fix this bug ASAP because it makes kget almost unusable.
Thanks Modestas. Provided patch seems to do the trick!
*** Bug 81835 has been marked as a duplicate of this bug. ***
Thanks for the patch. No more sig 11 here :)
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)
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.
BTW, kget 3.3.0 works as it should (debian sid, kget_4%3a3.3.0-2_i386.deb), only 3.3.1 crashs.
FYI, patch in comment #4 fixes the issue.
Patch in #4 fixes it for me too.
kget from debian unstable is fixed... Here is the bug report (resolved): http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=280616
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;
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;