| Summary: | Kget crashes when downloading repeatedly | ||
|---|---|---|---|
| Product: | [Applications] kget | Reporter: | Raúl <rasasi78> |
| Component: | general | Assignee: | KGet bugs <kget-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | crash | CC: | alexo.veto, faure, jyot, martin.tlustos, mat69, niku.andrew |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Debian unstable | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | 4.5 | |
| Sentry Crash Report: | |||
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. *** |
Application: kget (2.4.4) KDE Platform Version: 4.4.4 (KDE 4.4.4) Qt Version: 4.6.3 Operating System: Linux 2.6.34 x86_64 Distribution: Debian GNU/Linux unstable (sid) -- Information about the crash: I chose a picasa album and started to download pictures one after another. Kget crashed. According to the possible dupe this may be a bug in kdelibs. The crash can be reproduced some of the time. -- Backtrace: Application: KGet (kget), signal: Segmentation fault [Current thread is 1 (Thread 0x7fbb8650c760 (LWP 21396))] Thread 2 (Thread 0x7fbb72549710 (LWP 21400)): #0 pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:211 #1 0x00007fbb83660df2 in QWaitConditionPrivate::wait (this=<value optimized out>, mutex=0xc77f40, time=30000) at thread/qwaitcondition_unix.cpp:85 #2 QWaitCondition::wait (this=<value optimized out>, mutex=0xc77f40, time=30000) at thread/qwaitcondition_unix.cpp:159 #3 0x00007fbb83655e21 in QThreadPoolThread::run (this=0xcb9900) at concurrent/qthreadpool.cpp:140 #4 0x00007fbb8365fe35 in QThreadPrivate::start (arg=0xcb9900) at thread/qthread_unix.cpp:248 #5 0x00007fbb847048ba in start_thread (arg=<value optimized out>) at pthread_create.c:300 #6 0x00007fbb81eb901d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #7 0x0000000000000000 in ?? () Thread 1 (Thread 0x7fbb8650c760 (LWP 21396)): [KCrash Handler] #5 QBasicAtomicInt::ref (this=0x7ffff160db40, copy=...) at ../../include/QtCore/../../src/corelib/arch/qatomic_x86_64.h:121 #6 QString (this=0x7ffff160db40, copy=...) at ../../include/QtCore/../../src/corelib/tools/qstring.h:715 #7 QUrlPrivate (this=0x7ffff160db40, copy=...) at io/qurl.cpp:3382 #8 0x00007fbb8370a983 in QUrlPrivate::normalized (this=<value optimized out>) at io/qurl.cpp:3967 #9 0x00007fbb8370bed8 in QUrl::operator== (this=0x7ffff160de10, url=<value optimized out>) at io/qurl.cpp:5905 #10 0x00007fbb859550e0 in KDirModel::expandToUrl (this=0x10a15c0, url=<value optimized out>) at ../../kio/kio/kdirmodel.cpp:1085 #11 0x00007fbb7258abfa in KDirOperator::setCurrentItem (this=0xd86610, url=...) at ../../kfile/kdiroperator.cpp:1737 #12 0x00007fbb725a0b09 in KFileWidgetPrivate::_k_slotLoadingFinished (this=0xbf1960) at ../../kfile/kfilewidget.cpp:1511 #13 0x00007fbb725ac654 in KFileWidget::qt_metacall (this=0xc74ad0, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7ffff160e0a0) at ./kfilewidget.moc:146 #14 0x00007fbb83762346 in QMetaObject::activate (sender=0xd86610, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x5f474d492f736f74) at kernel/qobject.cpp:3295 #15 0x00007fbb725863cc in KDirOperator::Private::_k_slotCanceled (this=0xbfbf40) at ../../kfile/kdiroperator.cpp:2289 #16 0x00007fbb72591395 in KDirOperator::qt_metacall (this=0xd86610, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>, _a=0x7ffff160e1d0) at ./kdiroperator.moc:247 #17 0x00007fbb83762346 in QMetaObject::activate (sender=0x1011350, m=<value optimized out>, local_signal_index=<value optimized out>, argv=0x5f474d492f736f74) at kernel/qobject.cpp:3295 #18 0x00007fbb8593a3b8 in KDirListerCache::stop (this=0xc78cc0, lister=0x1011350, silent=false) at ../../kio/kio/kdirlister.cpp:378 #19 0x00007fbb85944155 in ~KDirLister (this=0x7ffff160db40, __in_chrg=<value optimized out>) at ../../kio/kio/kdirlister.cpp:1938 #20 0x00007fbb8375db9c in QObjectPrivate::deleteChildren (this=0xc00050) at kernel/qobject.cpp:1986 #21 0x00007fbb83764c7f in ~QObject (this=<value optimized out>, __in_chrg=<value optimized out>) at kernel/qobject.cpp:975 #22 0x00007fbb83742435 in ~QAbstractItemModel (this=0x10a15c0, __in_chrg=<value optimized out>) at kernel/qabstractitemmodel.cpp:1373 #23 0x00007fbb85952c0a in ~KDirModel (this=0x10a15c0, __in_chrg=<value optimized out>) at ../../kio/kio/kdirmodel.cpp:331 #24 0x00007fbb72588bcc in ~Private (this=0xbfbf40, __in_chrg=<value optimized out>) at ../../kfile/kdiroperator.cpp:351 #25 0x00007fbb72588d6f in ~KDirOperator (this=0xd86610, __in_chrg=<value optimized out>) at ../../kfile/kdiroperator.cpp:423 #26 0x00007fbb725a202f in ~KFileWidgetPrivate (this=0xc74ad0, __in_chrg=<value optimized out>) at ../../kfile/kfilewidget.cpp:107 #27 ~KFileWidget (this=0xc74ad0, __in_chrg=<value optimized out>) at ../../kfile/kfilewidget.cpp:643 #28 0x00007fbb8375db9c in QObjectPrivate::deleteChildren (this=0xc2b120) at kernel/qobject.cpp:1986 #29 0x00007fbb82b4c2fd in ~QWidget (this=0xa390e0, __in_chrg=<value optimized out>) at kernel/qwidget.cpp:1476 #30 0x00007fbb85a1dea5 in ~KFileDialog (this=0xa390e0, __in_chrg=<value optimized out>) at ../../kio/kfile/kfiledialog.cpp:326 #31 0x00007fbb853490f3 in KGet::destFileInputDialog (destDir=<value optimized out>, suggestedFileName=...) at ../../kget/core/kget.cpp:883 #32 0x00007fbb8534e95d in KGet::addTransfer (srcUrl=) at ../../kget/core/kget.cpp:228 #33 0x00000000004abfe4 in KGetApp::newInstance() () #34 0x00007fbb85f28256 in KUniqueApplicationAdaptor::newInstance (this=0x8a6300, asn_id=<value optimized out>, args=...) at ../../kdeui/kernel/kuniqueapplication.cpp:454 #35 0x00007fbb85f28896 in KUniqueApplicationAdaptor::qt_metacall (this=0x8a6300, _c=QMetaObject::InvokeMetaMethod, _id=49, _a=0x7ffff160ee40) at ./kuniqueapplication_p.moc:81 #36 0x00007fbb83a8d421 in QDBusConnectionPrivate::deliverCall (this=<value optimized out>, object=<value optimized out>, msg=<value optimized out>, metaTypes=..., slotIdx=<value optimized out>) at qdbusintegrator.cpp:904 #37 0x00007fbb83a8e68b in QDBusConnectionPrivate::activateCall (this=<value optimized out>, object=0x8a6300, flags=337, msg=...) at qdbusintegrator.cpp:816 #38 0x00007fbb83a8f10d in QDBusConnectionPrivate::activateObject (this=<value optimized out>, node=<value optimized out>, msg=..., pathStartPos=<value optimized out>) at qdbusintegrator.cpp:1364 #39 0x00007fbb83a8f3a8 in QDBusActivateObjectEvent::placeMetaCall (this=0xec97c0) at qdbusintegrator.cpp:1477 #40 0x00007fbb8375ee89 in QObject::event (this=0x7ffff160fe10, e=0xec97c0) at kernel/qobject.cpp:1248 #41 0x00007fbb82af369d in QApplication::event (this=0x7ffff160fe10, e=0xec97c0) at kernel/qapplication.cpp:2355 #42 0x00007fbb82aef32c in QApplicationPrivate::notify_helper (this=0x812710, receiver=0x7ffff160fe10, e=0xec97c0) at kernel/qapplication.cpp:4302 #43 0x00007fbb82af580b in QApplication::notify (this=0x7ffff160fe10, receiver=0x7ffff160fe10, e=0xec97c0) at kernel/qapplication.cpp:4185 #44 0x00007fbb85f21436 in KApplication::notify (this=0x7ffff160fe10, receiver=0x7ffff160fe10, event=0xec97c0) at ../../kdeui/kernel/kapplication.cpp:302 #45 0x00007fbb8374f15c in QCoreApplication::notifyInternal (this=0x7ffff160fe10, receiver=0x7ffff160fe10, event=0xec97c0) at kernel/qcoreapplication.cpp:726 #46 0x00007fbb83752804 in QCoreApplication::sendEvent (receiver=0x0, event_type=<value optimized out>, data=0x7c16f0) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215 #47 QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=<value optimized out>, data=0x7c16f0) at kernel/qcoreapplication.cpp:1367 #48 0x00007fbb83778bd3 in QCoreApplication::sendPostedEvents (s=<value optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:220 #49 postEventSourceDispatch (s=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:276 #50 0x00007fbb7db6d6c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0 #51 0x00007fbb7db71538 in ?? () from /lib/libglib-2.0.so.0 #52 0x00007fbb7db716ec in g_main_context_iteration () from /lib/libglib-2.0.so.0 #53 0x00007fbb83778713 in QEventDispatcherGlib::processEvents (this=0x7c1200, flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:412 #54 0x00007fbb82b9f14e in QGuiEventDispatcherGlib::processEvents (this=0x7ffff160db40, flags=<value optimized out>) at kernel/qguieventdispatcher_glib.cpp:204 #55 0x00007fbb8374da82 in QEventLoop::processEvents (this=<value optimized out>, flags=) at kernel/qeventloop.cpp:149 #56 0x00007fbb8374de5c in QEventLoop::exec (this=0x7ffff160fd70, flags=) at kernel/qeventloop.cpp:201 #57 0x00007fbb83752aeb in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1003 #58 0x00000000004aa50d in main (argc=<value optimized out>, argv=<value optimized out>) at ../../kget/main.cpp:184 This bug may be a duplicate of or related to bug 242085. Possible duplicates by query: bug 242085. Reported using DrKonqi