Summary: | Kget crashes when downloading repeatedly | ||
---|---|---|---|
Product: | [Applications] kget | Reporter: | Raúl <rasasi78> |
Component: | general | Assignee: | KGet authors <kget> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | alexo.veto, faure, jyot, martin.tlustos, mat69, niku.andrew |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | Debian unstable | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 4.5 | |
Sentry Crash Report: |
Description
Raúl
2010-06-29 00:19:27 UTC
Another possible backtrace of this, reproduced with the same steps. Application: KGet (kget), signal: Segmentation fault [Current thread is 1 (Thread 0x7fa88c107760 (LWP 20862))] Thread 2 (Thread 0x7fa878144710 (LWP 20867)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211 #1 0x00007fa88925bdf2 in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0xfb7eb0, time=30000) at thread/qwaitcondition_unix.cpp:85 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0xfb7eb0, time=30000) at thread/qwaitcondition_unix.cpp:159 #3 0x00007fa889250e21 in QThreadPoolThread::run (this=0x11affd0) at concurrent/qthreadpool.cpp:140 #4 0x00007fa88925ae35 in QThreadPrivate::start (arg=0x11affd0) at thread/qthread_unix.cpp:248 #5 0x00007fa88a2ff8ba in start_thread (arg=<value optimized out>) at pthread_create.c:300 #6 0x00007fa887ab401d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #7 0x0000000000000000 in ?? () Thread 1 (Thread 0x7fa88c107760 (LWP 20862)): [KCrash Handler] #5 QUrlPrivate::parse (this=0xee7a20, parseOptions=QUrlPrivate::ParseAndSet) at io/qurl.cpp:3742 #6 0x00007fa889306efa in QUrl::operator== (this=0x7fffcb6ddab0, url=...) at io/qurl.cpp:5903 #7 0x00007fa88b5500e0 in KDirModel::expandToUrl (this=0xee78d0, url=<value optimized out>) at ../../kio/kio/kdirmodel.cpp:1085 #8 0x00007fa878185bfa in KDirOperator::setCurrentItem (this=0xee79f0, url=...) at ../../kfile/kdiroperator.cpp:1737 #9 0x00007fa87819bb09 in KFileWidgetPrivate::_k_slotLoadingFinished (this=0xede900) at ../../kfile/kfilewidget.cpp:1511 #10 0x00007fa8781a7654 in KFileWidget::qt_metacall (this=0xbf8fb0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffcb6ddd40) at ./kfilewidget.moc:146 #11 0x00007fa88935d346 in QMetaObject::activate (sender=0xee79f0, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x97d00) at kernel/qobject.cpp:3295 #12 0x00007fa8781813cc in KDirOperator::Private::_k_slotCanceled (this=0xeb5560) at ../../kfile/kdiroperator.cpp:2289 #13 0x00007fa87818c395 in KDirOperator::qt_metacall (this=0xee79f0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7fffcb6dde70) at ./kdiroperator.moc:247 #14 0x00007fa88935d346 in QMetaObject::activate (sender=0xf33040, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x97d00) at kernel/qobject.cpp:3295 #15 0x00007fa88b5353b8 in KDirListerCache::stop (this=0xe8e8b0, lister=0xf33040, silent=false) at ../../kio/kio/kdirlister.cpp:378 #16 0x00007fa88b53f155 in ~KDirLister (this=0xee7a20, __in_chrg=<value optimized out>) at ../../kio/kio/kdirlister.cpp:1938 #17 0x00007fa889358b9c in QObjectPrivate::deleteChildren (this=0xe9f3b0) at kernel/qobject.cpp:1986 #18 0x00007fa88935fc7f in ~QObject (this=<value optimized out>, __in_chrg=<value optimized out>) at kernel/qobject.cpp:975 #19 0x00007fa88933d435 in ~QAbstractItemModel (this=0xee78d0, __in_chrg=<value optimized out>) at kernel/qabstractitemmodel.cpp:1373 #20 0x00007fa88b54dc0a in ~KDirModel (this=0xee78d0, __in_chrg=<value optimized out>) at ../../kio/kio/kdirmodel.cpp:331 #21 0x00007fa878183bcc in ~Private (this=0xeb5560, __in_chrg=<value optimized out>) at ../../kfile/kdiroperator.cpp:351 #22 0x00007fa878183d6f in ~KDirOperator (this=0xee79f0, __in_chrg=<value optimized out>) at ../../kfile/kdiroperator.cpp:423 #23 0x00007fa87819d02f in ~KFileWidgetPrivate (this=0xbf8fb0, __in_chrg=<value optimized out>) at ../../kfile/kfilewidget.cpp:107 #24 ~KFileWidget (this=0xbf8fb0, __in_chrg=<value optimized out>) at ../../kfile/kfilewidget.cpp:643 #25 0x00007fa889358b9c in QObjectPrivate::deleteChildren (this=0xe42f80) at kernel/qobject.cpp:1986 #26 0x00007fa8887472fd in ~QWidget (this=0xc327a0, __in_chrg=<value optimized out>) at kernel/qwidget.cpp:1476 #27 0x00007fa88b618ea5 in ~KFileDialog (this=0xc327a0, __in_chrg=<value optimized out>) at ../../kio/kfile/kfiledialog.cpp:326 #28 0x00007fa88af440f3 in KGet::destFileInputDialog (destDir=<value optimized out>, suggestedFileName=...) at ../../kget/core/kget.cpp:883 #29 0x00007fa88af4995d in KGet::addTransfer (srcUrl=) at ../../kget/core/kget.cpp:228 #30 0x00000000004abfe4 in KGetApp::newInstance() () #31 0x00007fa88bb23256 in KUniqueApplicationAdaptor::newInstance (this=0xac1590, asn_id=<value optimized out>, args=...) at ../../kdeui/kernel/kuniqueapplication.cpp:454 #32 0x00007fa88bb23896 in KUniqueApplicationAdaptor::qt_metacall (this=0xac1590, _c=QMetaObject::InvokeMetaMethod, _id=15628832, _a=0x7fffcb6deae0) at ./kuniqueapplication_p.moc:81 #33 0x00007fa889688421 in QDBusConnectionPrivate::deliverCall (this=<value optimized out>, object=<value optimized out>, msg=<value optimized out>, metaTypes=..., slotIdx=<value optimized out>) at qdbusintegrator.cpp:904 #34 0x00007fa88968968b in QDBusConnectionPrivate::activateCall (this=<value optimized out>, object=0xac1590, flags=337, msg=...) at qdbusintegrator.cpp:816 #35 0x00007fa88968a10d in QDBusConnectionPrivate::activateObject (this=<value optimized out>, node=<value optimized out>, msg=..., pathStartPos=<value optimized out>) at qdbusintegrator.cpp:1364 #36 0x00007fa88968a3a8 in QDBusActivateObjectEvent::placeMetaCall (this=0x10a5d30) at qdbusintegrator.cpp:1477 #37 0x00007fa889359e89 in QObject::event (this=0x7fffcb6dfab0, e=0x10a5d30) at kernel/qobject.cpp:1248 #38 0x00007fa8886ee69d in QApplication::event (this=0x7fffcb6dfab0, e=0x10a5d30) at kernel/qapplication.cpp:2355 #39 0x00007fa8886ea32c in QApplicationPrivate::notify_helper (this=0x9f2760, receiver=0x7fffcb6dfab0, e=0x10a5d30) at kernel/qapplication.cpp:4302 #40 0x00007fa8886f080b in QApplication::notify (this=0x7fffcb6dfab0, receiver=0x7fffcb6dfab0, e=0x10a5d30) at kernel/qapplication.cpp:4185 #41 0x00007fa88bb1c436 in KApplication::notify (this=0x7fffcb6dfab0, receiver=0x7fffcb6dfab0, event=0x10a5d30) at ../../kdeui/kernel/kapplication.cpp:302 #42 0x00007fa88934a15c in QCoreApplication::notifyInternal (this=0x7fffcb6dfab0, receiver=0x7fffcb6dfab0, event=0x10a5d30) at kernel/qcoreapplication.cpp:726 #43 0x00007fa88934d804 in QCoreApplication::sendEvent (receiver=0x0, event_type=<value optimized out>, data=0x9a16f0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215 #44 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0x9a16f0) at kernel/qcoreapplication.cpp:1367 #45 0x00007fa889373bd3 in QCoreApplication::sendPostedEvents (s=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220 #46 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276 #47 0x00007fa8837686c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 #48 0x00007fa88376c538 in ?? () from /lib/libglib-2.0.so.0 #49 0x00007fa88376c6ec in g_main_context_iteration () from /lib/libglib-2.0.so.0 #50 0x00007fa889373713 in QEventDispatcherGlib::processEvents (this=0x9a1200, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412 #51 0x00007fa88879a14e in QGuiEventDispatcherGlib::processEvents (this=0xee7a20, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 #52 0x00007fa889348a82 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #53 0x00007fa889348e5c in QEventLoop::exec (this=0x7fffcb6dfa10, flags=) at kernel/qeventloop.cpp:201 #54 0x00007fa88934daeb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003 #55 0x00000000004aa50d in main (argc=<value optimized out>, argv=<value optimized out>) at ../../kget/main.cpp:184 I am afraid we can't fix this for 4.4 since there won't be a new release of that, though we hope to fix this for 4.5. Sorry for the inconvenience this bug caused. #### Dev-info This is the code where it crashes: kget.cpp: KUrl KGet::destFileInputDialog(QString destDir, const QString& suggestedFileName) // krazy:exclude=passbyvalue { if (destDir.isEmpty()) destDir = generalDestDir(); // open the filedialog for confirmation QPointer<KFileDialog> dlg = new KFileDialog(destDir, QString(), 0, 0); dlg->setCaption(i18n("Save As")); dlg->setOperationMode(KFileDialog::Saving); dlg->setMode(KFile::File | KFile::LocalOnly); // Use the destination name if not empty... if (!suggestedFileName.isEmpty()) dlg->setSelection(suggestedFileName); KUrl destUrl; if (dlg->exec() != QDialog::Rejected){ destUrl = dlg->selectedUrl(); Settings::setLastDirectory(destUrl.directory(KUrl::ObeyTrailingSlash)); } delete dlg; return destUrl; } Line 883 is the one with "delete dlg;". So maybe the way we use KFileDialog is compeletly wrong (?) and we will use one of the static method as (hopefully) workaround, though I still think that this is a bug. SVN commit 1144613 by mfuchs: Uses a static method to get the download-destination. CCBUG:243093 M +6 -12 kget.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1144613 SVN commit 1144614 by mfuchs: Fowardport r1144613 Uses a static method to get the download-destination. CCBUG:243093 M +6 -12 kget.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1144614 SVN commit 1144617 by dfaure: Ensure that slotCanceled (called via KDirLister's stop()) doesn't trigger more stuff while we're already in the destructor. FIXED-IN: 4.5 (I'll backport) BUG: 243093 M +1 -0 kdiroperator.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1144617 SVN commit 1144620 by dfaure: Backport: Ensure that slotCanceled (called via KDirLister's stop()) doesn't trigger more stuff while we're already in the destructor. CCBUG: 243093 M +1 -0 kdiroperator.cpp WebSVN link: http://websvn.kde.org/?view=rev&revision=1144620 *** Bug 242085 has been marked as a duplicate of this bug. *** *** Bug 204318 has been marked as a duplicate of this bug. *** *** Bug 210446 has been marked as a duplicate of this bug. *** *** Bug 215179 has been marked as a duplicate of this bug. *** |