Bug 408759 - ktorrent crashes when I delete a torrent while download is in progress
Summary: ktorrent crashes when I delete a torrent while download is in progress
Status: RESOLVED DUPLICATE of bug 383127
Alias: None
Product: ktorrent
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Joris Guisson
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-06-15 22:04 UTC by Patrick Silva
Modified: 2019-06-16 02:25 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 Patrick Silva 2019-06-15 22:04:39 UTC
STEPS TO REPRODUCE
1. add a torrent to ktorrent
2. while ktorrent downloads the newly added torrent, select it and press delete key (a dialog box shows up)
3. click "Delete data" button

OBSERVED RESULT
ktorrent crashes

EXPECTED RESULT
no crash

SOFTWARE/OS VERSIONS
ktorrent 5.1.1
Operating System: Arch Linux 
KDE Plasma Version: 5.16.0
KDE Frameworks Version: 5.59.0
Qt Version: 5.12.3


Thread 30 (Thread 0x7fffbd7fa700 (LWP 28680)):
#0  0x00007ffff59350d1 in poll () at /usr/lib/libc.so.6
#1  0x00007ffff03b401c in  () at /usr/lib/libresolv.so.2
#2  0x00007ffff03b1a11 in __res_context_query () at /usr/lib/libresolv.so.2
#3  0x00007ffff03b2059 in  () at /usr/lib/libresolv.so.2
#4  0x00007ffff03b264d in __res_context_search () at /usr/lib/libresolv.so.2
#5  0x00007fffec011f5d in _nss_dns_gethostbyname4_r () at /usr/lib/libnss_dns.so.2
#6  0x00007ffff59292c2 in gaih_inet.constprop () at /usr/lib/libc.so.6
#7  0x00007ffff592a2e8 in getaddrinfo () at /usr/lib/libc.so.6
#8  0x00007ffff73610dc in QHostInfoAgent::fromName(QString const&) (hostName=...) at ../../include/QtCore/../../src/corelib/tools/qarraydata.h:208
#9  0x00007ffff734f5d8 in QHostInfoRunnable::run() (this=0x555558d93e70) at kernel/qhostinfo.cpp:689
#10 0x00007ffff5dbdc91 in QThreadPoolThread::run() (this=0x5555557bd590) at thread/qthreadpool.cpp:99
#11 0x00007ffff5dba63c in QThreadPrivate::start(void*) (arg=0x5555557bd590) at thread/qthread_unix.cpp:361
#12 0x00007ffff498da92 in start_thread () at /usr/lib/libpthread.so.0
#13 0x00007ffff593fcd3 in clone () at /usr/lib/libc.so.6

Thread 29 (Thread 0x7fffdf7fe700 (LWP 28678)):
#0  0x00007ffff4993fa6 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007ffff5dc0899 in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (this=0x5555557b0580, deadline=...) at thread/qwaitcondition_unix.cpp:136
#2  0x00007ffff5dc0899 in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x5555557b0580) at thread/qwaitcondition_unix.cpp:144
#3  0x00007ffff5dc0899 in QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x5555557ba2b0, deadline=...) at thread/qwaitcondition_unix.cpp:225
#4  0x00007ffff5dc09d8 in QWaitCondition::wait(QMutex*, unsigned long) (this=this@entry=0x5555557ba4f0, mutex=mutex@entry=0x5555557ba2b0, time=<optimized out>) at thread/qwaitcondition_unix.cpp:209
#5  0x00007ffff5dbdeab in QThreadPoolThread::run() (this=0x5555557ba4e0) at ../../include/QtCore/../../src/corelib/thread[m[m/qmutex.h:240
#6  0x00007ffff5dba63c in QThreadPrivate::start(void*) (arg=0x5555557ba4e0) at thread/qthread_unix.cpp:361
#7  0x00007ffff498da92 in start_thread () at /usr/lib/libpthread.so.0
#8  0x00007ffff593fcd3 in clone () at /usr/lib/libc.so.6

Thread 28 (Thread 0x7fffdffff700 (LWP 28677)):
#0  0x00007ffff4993fa6 in pthread_cond_timedwait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007ffff5dc0899 in QWaitConditionPrivate::wait_relative(QDeadlineTimer) (this=0x555556306b50, deadline=...) at thread/qwaitcondition_unix.cpp:136
#2  0x00007ffff5dc0899 in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x555556306b50) at thread/qwaitcondition_unix.cpp:144
#3  0x00007ffff5dc0899 in QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x5555557ba2b0, deadline=...) at thread/qwaitcondition_unix.cpp:225
#4  0x00007ffff5dc09d8 in QWaitCondition::wait(QMutex*, unsigned long) (this=this@entry=0x5555563068d0, mutex=mutex@entry=0x5555557ba2b0, time=<optimized out>) at thread/qwaitcondition_unix.cpp:209
#5  0x00007ffff5dbdeab in QThreadPoolThread::run() (this=0x5555563068c0) at ../../include/QtCore/../../src/corelib/thread/qmutex.h:240
#6  0x00007ffff5dba63c in QThreadPrivate::start(void*) (arg=0x5555563068c0) at thread/qthread_unix.cpp:361
#7  0x00007ffff498da92 in start_thread () at /usr/lib/libpthread.so.0
#8  0x00007ffff593fcd3 in clone () at /usr/lib/libc.so.6

Thread 27 (Thread 0x7fffde7fc700 (LWP 28676)):
#0  0x00007ffff59350d1 in poll () at /usr/lib/libc.so.6
#1  0x00007ffff03b401c in  () at /usr/lib/libresolv.so.2
#2  0x00007ffff03b1a11 in __res_context_query () at /usr/lib/libresolv.so.2
#3  0x00007ffff03b2059 in  () at /usr/lib/libresolv.so.2
#4  0x00007ffff03b264d in __res_context_search () at /usr/lib/libresolv.so.2
#5  0x00007fffec011f5d in _nss_dns_gethostbyname4_r () at /usr/lib/libnss_dns.so.2
#6  0x00007ffff59292c2 in gaih_inet.constprop () at /usr/lib/libc.so.6
#7  0x00007ffff592a2e8 in getaddrinfo () at /usr/lib/libc.so.6
#8  0x00007ffff73610dc in QHostInfoAgent::fromName(QString const&) (hostName=...) at ../../include/QtCore/../../src/corelib/tools/qarraydata.h:208
#9  0x00007ffff734f5d8 in QHostInfoRunnable::run() (this=0x555558e58030) at kernel/qhostinfo.cpp:689
#10 0x00007ffff5dbdc91 in QThreadPoolThread::run() (this=0x5555562ff870) at thread/qthreadpool.cpp:99
#11 0x00007ffff5dba63c in QThreadPrivate::start(void*) (arg=0x5555562ff870) at thread/qthread_unix.cpp:361
#12 0x00007ffff498da92 in start_thread () at /usr/lib/libpthread.so.0
#13 0x00007ffff593fcd3 in clone () at /usr/lib/libc.so.6

Thread 23 (Thread 0x7fffa37fe700 (LWP 28544)):
#0  0x00007ffff4993bac in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007ffff5dc091c in QWaitConditionPrivate::wait(QDeadlineTimer) (deadline=..., this=0x5555563265e0) at thread/qwaitcondition_unix.cpp:146
#2  0x00007ffff5dc091c in QWaitCondition::wait(QMutex*, QDeadlineTimer) (this=<optimized out>, mutex=0x5555563374b0, deadline=...) at thread/qwaitcondition_unix.cpp:225
#3  0x00007ffff5dc0a0a in QWaitCondition::wait(QMutex*, unsigned long) (this=0x5555563374b8, mutex=0x5555563374b0, time=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qdeadlinetimer.h:68
#4  0x00007ffff7b5abcc in  () at /usr/lib/libKF5Torrent.so.6
#5  0x00007ffff5dba63c in QThreadPrivate::start(void*) (arg=0x5555563374a0) at thread/qthread_unix.cpp:361
#6  0x00007ffff498da92 in start_thread () at /usr/lib/libpthread.so.0
#7  0x00007ffff593fcd3 in clone () at /usr/lib/libc.so.6

Thread 22 (Thread 0x7fffa3fff700 (LWP 28538)):
#0  0x00007ffff59350d1 in poll () at /usr/lib/libc.so.6
#1  0x00007ffff7b5afc5 in net::Poll::poll(int) () at /usr/lib/libKF5Torrent.so.6
#2  0x00007ffff7b56ae4 in  () at /usr/lib/libKF5Torrent.so.6
#3  0x00007ffff7b56b66 in  () at /usr/lib/libKF5Torrent.so.6
#4  0x00007ffff7b57449 in  () at /usr/lib/libKF5Torrent.so.6
#5  0x00007ffff5dba63c in QThreadPrivate::start(void*) (arg=0x555555697ff0) at thread/qthread_unix.cpp:361
#6  0x00007ffff498da92 in start_thread () at /usr/lib/libpthread.so.0
#7  0x00007ffff593fcd3 in clone () at /usr/lib/libc.so.6

Thread 21 (Thread 0x7fffbcdef700 (LWP 28537)):
#0  0x00007ffff59350d1 in poll () at /usr/lib/libc.so.6
#1  0x00007ffff7b5afc5 in net::Poll::poll(int) () at /usr/lib/libKF5Torrent.so.6
#2  0x00007ffff7b5717c in  () at /usr/lib/libKF5Torrent.so.6
#3  0x00007ffff7b57216 in  () at /usr/lib/libKF5Torrent.so.6
#4  0x00007ffff7b57449 in  () at /usr/lib/libKF5Torrent.so.6
#5  0x00007ffff5dba63c in QThreadPrivate::start(void*) (arg=0x555555697cc0) at thread/qthread_unix.cpp:361
#6  0x00007ffff498da92 in start_thread () at /usr/lib/libpthread.so.0
#7  0x00007ffff593fcd3 in clone () at /usr/lib/libc.so.6

Thread 11 (Thread 0x7fffca868700 (LWP 28484)):
#0  0x00007ffff4993bac in pthread_cond_wait@@GLIBC_2.3.2 () at /usr/lib/libpthread.so.0
#1  0x00007fffcae34304 in  () at /usr/lib/dri/i965_dri.so
#2  0x00007fffcae34028 in  () at /usr/lib/dri/i965_dri.so
#3  0x00007ffff498da92 in start_thread () at /usr/lib/libpthread.so.0
#4  0x00007ffff593fcd3 in clone () at /usr/lib/libc.so.6

Thread 5 (Thread 0x7fffecbc7700 (LWP 28472)):
#0  0x00007ffff59350d1 in poll () at /usr/lib/libc.so.6
#1  0x00007ffff20cf7c0 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007ffff20cf8ae in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007ffff5fca969 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fffe4004850, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#4  0x00007ffff5f744dc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffecbc6da0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#5  0x00007ffff5db9239 in QThread::exec() (this=<optimized out>) at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#6  0x00007ffff5dba63c in QThreadPrivate::start(void*) (arg=0x555555741300) at thread/qthread_unix.cpp:361
#7  0x00007ffff498da92 in start_thread () at /usr/lib/libpthread.so.0
#8  0x00007ffff593fcd3 in clone () at /usr/lib/libc.so.6

Thread 3 (Thread 0x7fffee5d9700 (LWP 28470)):
#0  0x00007ffff59350d1 in poll () at /usr/lib/libc.so.6
#1  0x00007ffff20cf7c0 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007ffff20cf8ae in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#3  0x00007ffff5fca969 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7fffe0000b20, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#4  0x00007ffff5f744dc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffee5d8d70, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#5  0x00007ffff5db9239 in QThread::exec() (this=this@entry=0x7ffff6ef7080 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#6  0x00007ffff6e75ba6 in QDBusConnectionManager::run() (this=0x7ffff6ef7080 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178
#7  0x00007ffff5dba63c in QThreadPrivate::start(void*) (arg=0x7ffff6ef7080 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at thread/qthread_unix.cpp:361
#8  0x00007ffff498da92 in start_thread () at /usr/lib/libpthread.so.0
#9  0x00007ffff593fcd3 in clone () at /usr/lib/libc.so.6

Thread 2 (Thread 0x7fffef370700 (LWP 28462)):
#0  0x00007ffff59350d1 in poll () at /usr/lib/libc.so.6
#1  0x00007ffff4bb6630 in  () at /usr/lib/libxcb.so.1
#2  0x00007ffff4bb82db in xcb_wait_for_event () at /usr/lib/libxcb.so.1
#3  0x00007fffeff43b69 in QXcbEventQueue::run() (this=0x5555556bbf10) at qxcbeventqueue.cpp:228
#4  0x00007ffff5dba63c in QThreadPrivate::start(void*) (arg=0x5555556bbf10) at thread/qthread_unix.cpp:361
#5  0x00007ffff498da92 in start_thread () at /usr/lib/libpthread.so.0
#6  0x00007ffff593fcd3 in clone () at /usr/lib/libc.so.6

Thread 1 (Thread 0x7ffff03a0580 (LWP 28379)):
#0  0x00005555555d8e4f in bt::TorrentInterface::getDisplayName() const (this=0x555558ce1920) at /usr/include/qt/QtCore/qstring.h:942
#1  0x00005555555d8e4f in kt::QueueManagerModel::data(QModelIndex const&, int) const (this=<optimized out>, index=..., role=<optimized out>) at /usr/src/debug/ktorrent-5.1.1/ktorrent/tools/queuemanagermodel.cpp:235
#2  0x00007ffff6bcd151 in QModelIndex::data(int) const (arole=0, this=0x7fffffffd730) at ../../include/QtCore/../../src/corelib/itemmodels/qabstractitemmodel.h:458
#3  0x00007ffff6bcd151 in QStyledItemDelegate::initStyleOption(QStyleOptionViewItem*, QModelIndex const&) const (this=0x555555856270, option=0x7fffffffd5c0, index=...) at itemviews/qstyleditemdelegate.cpp:345
#4  0x00007ffff6bcc741 in QStyledItemDelegate::sizeHint(QStyleOptionViewItem const&, QModelIndex const&) const (this=0x555555856270, option=..., index=...) at itemviews/qstyleditemdelegate.cpp:410
#5  0x00007ffff6c11873 in QTreeView::indexRowSizeHint(QModelIndex const&) const (this=this@entry=0x55555583ad90, index=...) at itemviews/qtreeview.cpp:2994
#6  0x00007ffff6c1a356 in QTreeView::dataChanged(QModelIndex const&, QModelIndex const&, QVector<int> const&) (this=0x55555583ad90, topLeft=..., bottomRight=..., roles=...) at itemviews/qtreeview.cpp:688
#7  0x00007ffff6ba87a8 in QAbstractItemView::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at .moc/moc_qabstractitemview.cpp:412
#8  0x00007ffff5fa01d7 in QMetaObject::activate(QObject*, int, int, void**) (sender=0x5555557edb00, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3795
#9  0x00007ffff5f267de in QAbstractItemModel::dataChanged(QModelIndex const&, QModelIndex const&, QVector<int> const&) (this=this@entry=0x5555557edb00, _t1=..., _t2=..., _t3=...) at .moc/moc_qabstractitemmodel.cpp:556
#10 0x00005555555da75e in kt::QueueManagerModel::update() (this=0x5555557edb00) at /usr/include/qt/QtCore/qabstractitemmodel.h:381
#11 0x00005555555b9106 in kt::TorrentActivity::update() (this=0x555555783030) at /usr/src/debug/ktorrent-5.1.1/ktorrent/torrentactivity.cpp:242
#12 0x00005555555b27f1 in kt::GUI::update() (this=0x7fffffffe320) at /usr/src/debug/ktorrent-5.1.1/ktorrent/gui.cpp:450
#13 0x00007ffff5fa031b in QtPrivate::QSlotObjectBase::call(QObject*, void**) (a=0x7fffffffdc30, r=0x7fffffffe320, this=0x555555c5b910) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:394
#14 0x00007ffff5fa031b in QMetaObject::activate(QObject*, int, int, void**) (sender=0x7fffffffe380, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3776
#15 0x00007ffff5fac288 in QTimer::timeout(QTimer::QPrivateSignal) (this=<optimized out>, _t1=...) at .moc/moc_qtimer.cpp:204
#16 0x00007ffff5fa0a3b in QObject::event(QEvent*) (this=0x7fffffffe380, e=<optimized out>) at kernel/qobject.cpp:1241
#17 0x00007ffff694cda4 in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x55555569cf40, receiver=receiver@entry=0x7fffffffe380, e=e@entry=0x7fffffffdf60) at kernel/qapplication.cpp:3736
#18 0x00007ffff69543c1 in QApplication::notify(QObject*, QEvent*) (this=0x7fffffffe2b0, receiver=0x7fffffffe380, e=0x7fffffffdf60) at kernel/qapplication.cpp:3483
#19 0x00007ffff5f75849 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x7fffffffe380, event=0x7fffffffdf60) at ../../include/QtCore/5.12.3/QtCore/private/../../../../../src/corelib/thread/qthread_p.h:322
#20 0x00007ffff5fc9d15 in QTimerInfoList::activateTimers() (this=0x5555556faf30) at kernel/qtimerinfo_unix.cpp:643
#21 0x00007ffff5fca5a2 in timerSourceDispatch(GSource*, GSourceFunc, gpointer) (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:182
#22 0x00007ffff20cd90f in g_main_context_dispatch () at /usr/lib/libglib-2.0.so.0
#23 0x00007ffff20cf869 in  () at /usr/lib/libglib-2.0.so.0
#24 0x00007ffff20cf8ae in g_main_context_iteration () at /usr/lib/libglib-2.0.so.0
#25 0x00007ffff5fca969 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x5555556fcf30, flags=...) at kernel/qeventdispatcher_glib.cpp:422
#26 0x00007ffff5f744dc in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7fffffffe1c0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:140
#27 0x00007ffff5f7c596 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:120
#28 0x00007ffff634944e in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1779
#29 0x00007ffff694cd16 in QApplication::exec() () at kernel/qapplication.cpp:2893
#30 0x000055555559de99 in main(int, char**) (argc=<optimized out>, argv=<optimized out>) at /usr/src/debug/ktorrent-5.1.1/ktorrent/main.cpp:244
Comment 1 Christoph Feck 2019-06-16 02:25:18 UTC
Same cause as bug 383127: Accessing data of already deleted model.

*** This bug has been marked as a duplicate of bug 383127 ***