Bug 412324 - ktorrent crashes when last torrent is deleted alongside its data
Summary: ktorrent crashes when last torrent is deleted alongside its data
Status: RESOLVED DUPLICATE of bug 388803
Alias: None
Product: ktorrent
Classification: Applications
Component: general (show other bugs)
Version: unspecified
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Joris Guisson
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2019-09-25 14:25 UTC by Jeffrey Bouter
Modified: 2019-10-24 08:29 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments
Video causing the crash (2.89 MB, video/x-matroska)
2019-09-25 14:28 UTC, Jeffrey Bouter
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jeffrey Bouter 2019-09-25 14:25:46 UTC
Application: ktorrent (5.1.2)

Qt Version: 5.12.3
Frameworks Version: 5.62.0
Operating System: Linux 5.0.0-29-generic x86_64
Distribution: KDE neon User Edition 5.16

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

When there's only one torrent (be it active, paused or finished) and the torrent is deleted using "delete torrent+data" (ctrl+delete), ktorrent crashes.

The crash can be reproduced every time.

-- Backtrace:
Application: KTorrent (ktorrent), signal: Segmentation fault
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[Current thread is 1 (Thread 0x7fbed6f15800 (LWP 19850))]

Thread 7 (Thread 0x7fbe9a49a700 (LWP 19868)):
#0  0x00007fbecca739f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5614e10d1d94) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x5614e10d1d40, cond=0x5614e10d1d68) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x5614e10d1d68, mutex=0x5614e10d1d40) at pthread_cond_wait.c:655
#3  0x00007fbed1c37dbb in QWaitCondition::wait(QMutex*, QDeadlineTimer) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fbed1c380c9 in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fbed675b4a3 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5Torrent.so.6
#6  0x00007fbed1c30c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fbecca6d6db in start_thread (arg=0x7fbe9a49a700) at pthread_create.c:463
#8  0x00007fbed0f7a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 6 (Thread 0x7fbe9ac9b700 (LWP 19867)):
#0  0x00007fbed1c31231 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#1  0x00007fbed675830b in ?? () from /usr/lib/x86_64-linux-gnu/libKF5Torrent.so.6
#2  0x00007fbed67584f6 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5Torrent.so.6
#3  0x00007fbed6758c99 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5Torrent.so.6
#4  0x00007fbed1c30c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fbecca6d6db in start_thread (arg=0x7fbe9ac9b700) at pthread_create.c:463
#6  0x00007fbed0f7a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 5 (Thread 0x7fbea10eb700 (LWP 19866)):
#0  0x00007fbed0f6dbf9 in __GI___poll (fds=0x7fbe9c2ebb80, nfds=1, timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fbed675b988 in net::Poll::poll(int) () from /usr/lib/x86_64-linux-gnu/libKF5Torrent.so.6
#2  0x00007fbed67589da in ?? () from /usr/lib/x86_64-linux-gnu/libKF5Torrent.so.6
#3  0x00007fbed6758a76 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5Torrent.so.6
#4  0x00007fbed6758c99 in ?? () from /usr/lib/x86_64-linux-gnu/libKF5Torrent.so.6
#5  0x00007fbed1c30c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fbecca6d6db in start_thread (arg=0x7fbea10eb700) at pthread_create.c:463
#7  0x00007fbed0f7a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 4 (Thread 0x7fbeb7fff700 (LWP 19855)):
#0  0x00007fbecca739f3 in futex_wait_cancelable (private=<optimized out>, expected=0, futex_word=0x5614e091ae68) at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x5614e091ae18, cond=0x5614e091ae40) at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x5614e091ae40, mutex=0x5614e091ae18) at pthread_cond_wait.c:655
#3  0x00007fbea359923b in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#4  0x00007fbea3598f67 in ?? () from /usr/lib/x86_64-linux-gnu/dri/i965_dri.so
#5  0x00007fbecca6d6db in start_thread (arg=0x7fbeb7fff700) at pthread_create.c:463
#6  0x00007fbed0f7a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 3 (Thread 0x7fbeb77fe700 (LWP 19854)):
#0  0x00007fbed0f6dbf9 in __GI___poll (fds=0x7fbea4003ce0, nfds=1, timeout=10038) at ../sysdeps/unix/sysv/linux/poll.c:29
#1  0x00007fbeca8cf5c9 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fbeca8cf6dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fbed1e66dcb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#4  0x00007fbed1e0803a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#5  0x00007fbed1c2f4ca in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fbed1c30c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fbecca6d6db in start_thread (arg=0x7fbeb77fe700) at pthread_create.c:463
#8  0x00007fbed0f7a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 2 (Thread 0x7fbebd4e4700 (LWP 19852)):
#0  0x00007fbed0f690b4 in __GI___libc_read (fd=11, buf=0x7fbebd4e3b60, nbytes=16) at ../sysdeps/unix/sysv/linux/read.c:27
#1  0x00007fbeca9142d0 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007fbeca8cf0b7 in g_main_context_check () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007fbeca8cf570 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007fbeca8cf6dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007fbed1e66dcb in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#6  0x00007fbed1e0803a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#7  0x00007fbed1c2f4ca in QThread::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007fbed331f015 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5DBus.so.5
#9  0x00007fbed1c30c72 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#10 0x00007fbecca6d6db in start_thread (arg=0x7fbebd4e4700) at pthread_create.c:463
#11 0x00007fbed0f7a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95

Thread 1 (Thread 0x7fbed6f15800 (LWP 19850)):
[KCrash Handler]
#6  __memmove_avx_unaligned_erms () at ../sysdeps/x86_64/multiarch/memmove-vec-unaligned-erms.S:427
#7  0x00007fbed1cb7c29 in QString::reallocData(unsigned int, bool) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#8  0x00007fbed1cba268 in QString::replace(QChar, QChar, Qt::CaseSensitivity) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#9  0x00007fbed2e744c0 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#10 0x00007fbed2e7bc2f in QStyledItemDelegate::displayText(QVariant const&, QLocale const&) const () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#11 0x00007fbed2e7d86e in QStyledItemDelegate::initStyleOption(QStyleOptionViewItem*, QModelIndex const&) const () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#12 0x00007fbed2e7c2dc in QStyledItemDelegate::paint(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#13 0x00007fbed2ebeee2 in QTreeView::drawRow(QPainter*, QStyleOptionViewItem const&, QModelIndex const&) const () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#14 0x00007fbed2ec461d in QTreeView::drawTree(QPainter*, QRegion const&) const () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#15 0x00007fbed2ec8cd5 in QTreeView::paintEvent(QPaintEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#16 0x00007fbed2c459c8 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#17 0x00007fbed2ce87ee in QFrame::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#18 0x00007fbed2e5ff43 in QAbstractItemView::viewportEvent(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#19 0x00007fbed2ec9bec in QTreeView::viewportEvent(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007fbed1e09a9d in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007fbed2c05635 in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#22 0x00007fbed2c0cb90 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#23 0x00007fbed1e09d18 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#24 0x00007fbed2c3e595 in QWidgetPrivate::sendPaintEvent(QRegion const&) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#25 0x00007fbed2c3ed6d in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#26 0x00007fbed2c3f9d0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#27 0x00007fbed2c3fb59 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#28 0x00007fbed2c3e75e in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#29 0x00007fbed2c3f9d0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#30 0x00007fbed2c3e75e in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#31 0x00007fbed2c3f9d0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#32 0x00007fbed2c3e75e in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#33 0x00007fbed2c3f9d0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#34 0x00007fbed2c3fb59 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#35 0x00007fbed2c3fb59 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#36 0x00007fbed2c3e75e in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#37 0x00007fbed2c3f9d0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#38 0x00007fbed2c3e75e in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#39 0x00007fbed2c3f9d0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#40 0x00007fbed2c3e75e in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#41 0x00007fbed2c3f9d0 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#42 0x00007fbed2c3fb59 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#43 0x00007fbed2c3fb59 in QWidgetPrivate::paintSiblingsRecursive(QPaintDevice*, QList<QObject*> const&, int, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#44 0x00007fbed2c3e75e in QWidgetPrivate::drawWidget(QPaintDevice*, QRegion const&, QPoint const&, int, QPainter*, QWidgetBackingStore*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#45 0x00007fbed2c15266 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#46 0x00007fbed2c154a5 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#47 0x00007fbed2c2d8bf in QWidgetPrivate::syncBackingStore() () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#48 0x00007fbed2c45b38 in QWidget::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#49 0x00007fbed2d4ee50 in QMainWindow::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#50 0x00007fbed5a96721 in KMainWindow::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#51 0x00007fbed5adbc77 in KXmlGuiWindow::event(QEvent*) () from /usr/lib/x86_64-linux-gnu/libKF5XmlGui.so.5
#52 0x00007fbed2c0565c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#53 0x00007fbed2c0cb90 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5
#54 0x00007fbed1e09d18 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#55 0x00007fbed1e0c8d7 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#56 0x00007fbed1e67793 in ?? () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#57 0x00007fbeca8cf417 in g_main_context_dispatch () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#58 0x00007fbeca8cf650 in ?? () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#59 0x00007fbeca8cf6dc in g_main_context_iteration () from /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
#60 0x00007fbed1e66daf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#61 0x00007fbed1e0803a in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#62 0x00007fbed1e11170 in QCoreApplication::exec() () from /usr/lib/x86_64-linux-gnu/libQt5Core.so.5
#63 0x00005614df47911a in ?? ()
#64 0x00007fbed0e7ab97 in __libc_start_main (main=0x5614df476e40, argc=2, argv=0x7ffde6994b18, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7ffde6994b08) at ../csu/libc-start.c:310
#65 0x00005614df479afa in _start ()

Reported using DrKonqi
Comment 1 Jeffrey Bouter 2019-09-25 14:28:06 UTC
Created attachment 122863 [details]
Video causing the crash

A video showing the bug
Comment 2 Jeffrey Bouter 2019-09-25 14:28:53 UTC
I have attempted to both have the ~/.local/share/ktorrent/tor0 directory created and removed. I've also entirely removed ~/.local/share/ktorrent but the problem persists.
Comment 3 Christoph Feck 2019-10-24 08:29:04 UTC

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