Bug 288929 - KGet crashed after failing to verify an MD5 hash
Summary: KGet crashed after failing to verify an MD5 hash
Status: RESOLVED FIXED
Alias: None
Product: kget
Classification: Unclassified
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Packages Linux
: NOR crash (vote)
Target Milestone: ---
Assignee: KGet authors
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-12-14 00:17 UTC by Alvaro Manuel Recio Perez
Modified: 2011-12-28 13:52 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alvaro Manuel Recio Perez 2011-12-14 00:17:18 UTC
Application: kget (2.7.3)
KDE Platform Version: 4.7.3 (4.7.3)
Qt Version: 4.7.4
Operating System: Linux 3.0.0-14-generic x86_64
Distribution: Ubuntu 11.10

-- Information about the crash:
- What I was doing when the application crashed:

I was downloading a number of files for which I entered their MD5 hash. When a file wasn't correctly downloaded, KGet asked if I wanted to download it again. Answering "yes" made KGet crash (and lose the pending file list, which was annoying).

I tried several times and I was able to trigger the crash several times.

The crash can be reproduced some of the time.

-- Backtrace:
Application: KGet (kget), signal: Segmentation fault
[Current thread is 1 (Thread 0x7f91a5abb7a0 (LWP 11220))]

Thread 3 (Thread 0x7f9189068700 (LWP 11222)):
#0  0x00007f91a0eb6773 in poll () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007f919cc01f68 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f919cc02429 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f91a2797f3e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#4  0x00007f91a276bcf2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#5  0x00007f91a276bef7 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f91a268327f in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7  0x00007f91a274ecbf in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8  0x00007f91a2685d05 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#9  0x00007f91a3775efc in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#10 0x00007f91a0ec289d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#11 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f9187629700 (LWP 11649)):
#0  0x00007f91a3778034 in pthread_mutex_lock () from /lib/x86_64-linux-gnu/libpthread.so.0
#1  0x00007f919cc01023 in g_main_context_prepare () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007f919cc01dfd in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007f919cc02429 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007f91a2797f3e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#5  0x00007f91a276bcf2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#6  0x00007f91a276bef7 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#7  0x00007f91a268327f in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#8  0x00007f91a274ecbf in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#9  0x00007f91a2685d05 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#10 0x00007f91a3775efc in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
#11 0x00007f91a0ec289d in clone () from /lib/x86_64-linux-gnu/libc.so.6
#12 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f91a5abb7a0 (LWP 11220)):
[KCrash Handler]
#6  0x00007f91a4938180 in BitSet::setAll(bool) () from /usr/lib/libkgetcore.so.4
#7  0x00007f91a49349ed in DataSourceFactory::slotRepair(QList<long long> const&, unsigned long long) () from /usr/lib/libkgetcore.so.4
#8  0x00007f91a4934cd6 in DataSourceFactory::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkgetcore.so.4
#9  0x00007f91a277feba in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#10 0x00007f91a4947197 in Verifier::brokenPieces(QList<long long> const&, unsigned long long) () from /usr/lib/libkgetcore.so.4
#11 0x00007f91a4947247 in Verifier::qt_metacall(QMetaObject::Call, int, void**) () from /usr/lib/libkgetcore.so.4
#12 0x00007f91a2783a5e in QObject::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#13 0x00007f91a1b1d424 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#14 0x00007f91a1b22291 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#15 0x00007f91a54b9126 in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#16 0x00007f91a276cafc in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#17 0x00007f91a277051f in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#18 0x00007f91a2797a73 in ?? () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#19 0x00007f919cc01a5d in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007f919cc02258 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#21 0x00007f919cc02429 in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#22 0x00007f91a2797ed6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#23 0x00007f91a1bc507e in ?? () from /usr/lib/x86_64-linux-gnu/libQtGui.so.4
#24 0x00007f91a276bcf2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#25 0x00007f91a276bef7 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#26 0x00007f91a2770789 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQtCore.so.4
#27 0x0000000000429601 in ?? ()
#28 0x00007f91a0e0230d in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#29 0x0000000000429dc1 in _start ()

Reported using DrKonqi
Comment 1 Matthias Fuchs 2011-12-28 10:16:27 UTC
SVN commit 1270717 by mfuchs:

Uses KSaveFile to avoid losing the transfer state when KGet crashes during
saving.

 M  +3 -2      kget.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1270717
Comment 2 Matthias Fuchs 2011-12-28 10:31:12 UTC
SVN commit 1270720 by mfuchs:

Uses KSaveFile to avoid losing the transfer state when KGet crashes during
saving.

 M  +3 -2      kget.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1270720
Comment 3 Matthias Fuchs 2011-12-28 11:53:32 UTC
SVN commit 1270726 by mfuchs:

Uses KSaveFile to avoid losing the transfer state when KGet crashes during
saving.


 M  +3 -2      kget.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1270726
Comment 4 Matthias Fuchs 2011-12-28 13:50:32 UTC
SVN commit 1270728 by mfuchs:

Does not assume on reparing that there is a file size of the download.

 M  +10 -6     datasourcefactory.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1270728
Comment 5 Matthias Fuchs 2011-12-28 13:52:13 UTC
SVN commit 1270729 by mfuchs:

Does not assume on reparing that there is a file size of the download.


 M  +10 -6     datasourcefactory.cpp  


WebSVN link: http://websvn.kde.org/?view=rev&revision=1270729