Bug 281196

Summary: Crash when closing KTorrent
Product: [Applications] ktorrent Reporter: Christoph Feck <cfeck>
Component: generalAssignee: Joris Guisson <joris.guisson>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:

Description Christoph Feck 2011-09-02 00:51:39 UTC
Application: ktorrent (4.2dev)
KDE Platform Version: 4.7.1 (4.7.1) (Compiled from sources)
Qt Version: 4.7.4
Operating System: Linux 2.6.37.6-0.7-desktop i686
Distribution: "openSUSE 11.4 (i586)"

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

I used KTorrent to download a torrent, after it was finished, I removed it and quit the program. Running today's master, so might be caused by today's changes.

-- Backtrace:
Application: KTorrent (ktorrent), signal: Segmentation fault
[Current thread is 1 (Thread 0xb382c710 (LWP 20162))]

Thread 5 (Thread 0xb073fb70 (LWP 24687)):
#0  0xffffe424 in __kernel_vsyscall ()
#1  0xb620c432 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:179
#2  0xb62af109 in QWaitConditionPrivate::wait (this=0x8252338, time=30000) at /local/git/Qt/qt/src/corelib/thread/qwaitcondition_unix.cpp:86
#3  0xb62aef29 in QWaitCondition::wait (this=0x825229c, mutex=0x8252298, time=30000) at /local/git/Qt/qt/src/corelib/thread/qwaitcondition_unix.cpp:160
#4  0xb629e90c in QThreadPoolThread::run (this=0x824b008) at /local/git/Qt/qt/src/corelib/concurrent/qthreadpool.cpp:140
#5  0xb62adde0 in QThreadPrivate::start (arg=0x824b008) at /local/git/Qt/qt/src/corelib/thread/qthread_unix.cpp:331
#6  0xb6207b05 in start_thread (arg=0xb073fb70) at pthread_create.c:297
#7  0xb5354d5e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 4 (Thread 0xaf73db70 (LWP 24688)):
#0  0xffffe424 in __kernel_vsyscall ()
#1  0xb620c432 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:179
#2  0xb62af109 in QWaitConditionPrivate::wait (this=0x8252338, time=30000) at /local/git/Qt/qt/src/corelib/thread/qwaitcondition_unix.cpp:86
#3  0xb62aef29 in QWaitCondition::wait (this=0x825229c, mutex=0x8252298, time=30000) at /local/git/Qt/qt/src/corelib/thread/qwaitcondition_unix.cpp:160
#4  0xb629e90c in QThreadPoolThread::run (this=0x8712e20) at /local/git/Qt/qt/src/corelib/concurrent/qthreadpool.cpp:140
#5  0xb62adde0 in QThreadPrivate::start (arg=0x8712e20) at /local/git/Qt/qt/src/corelib/thread/qthread_unix.cpp:331
#6  0xb6207b05 in start_thread (arg=0xaf73db70) at pthread_create.c:297
#7  0xb5354d5e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 3 (Thread 0xaff3eb70 (LWP 24689)):
#0  0xffffe424 in __kernel_vsyscall ()
#1  0xb620c432 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:179
#2  0xb62af109 in QWaitConditionPrivate::wait (this=0x8252338, time=30000) at /local/git/Qt/qt/src/corelib/thread/qwaitcondition_unix.cpp:86
#3  0xb62aef29 in QWaitCondition::wait (this=0x825229c, mutex=0x8252298, time=30000) at /local/git/Qt/qt/src/corelib/thread/qwaitcondition_unix.cpp:160
#4  0xb629e90c in QThreadPoolThread::run (this=0x8722498) at /local/git/Qt/qt/src/corelib/concurrent/qthreadpool.cpp:140
#5  0xb62adde0 in QThreadPrivate::start (arg=0x8722498) at /local/git/Qt/qt/src/corelib/thread/qthread_unix.cpp:331
#6  0xb6207b05 in start_thread (arg=0xaff3eb70) at pthread_create.c:297
#7  0xb5354d5e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 2 (Thread 0xad739b70 (LWP 24690)):
#0  0xffffe424 in __kernel_vsyscall ()
#1  0xb620c432 in pthread_cond_timedwait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S:179
#2  0xb62af109 in QWaitConditionPrivate::wait (this=0x8252338, time=30000) at /local/git/Qt/qt/src/corelib/thread/qwaitcondition_unix.cpp:86
#3  0xb62aef29 in QWaitCondition::wait (this=0x825229c, mutex=0x8252298, time=30000) at /local/git/Qt/qt/src/corelib/thread/qwaitcondition_unix.cpp:160
#4  0xb629e90c in QThreadPoolThread::run (this=0x87614c0) at /local/git/Qt/qt/src/corelib/concurrent/qthreadpool.cpp:140
#5  0xb62adde0 in QThreadPrivate::start (arg=0x87614c0) at /local/git/Qt/qt/src/corelib/thread/qthread_unix.cpp:331
#6  0xb6207b05 in start_thread (arg=0xad739b70) at pthread_create.c:297
#7  0xb5354d5e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130

Thread 1 (Thread 0xb382c710 (LWP 20162)):
[KCrash Handler]
#7  0x00310030 in ?? ()
#8  0xb138f6d0 in kt::WebSeedsModel::rowCount (this=0x82b4c18, parent=...) at /local/git/extragear/network/ktorrent/plugins/infowidget/webseedsmodel.cpp:106
#9  0xb63acd1d in QAbstractTableModel::hasChildren (this=0x82b4c18, parent=...) at /local/git/Qt/qt/src/corelib/kernel/qabstractitemmodel.cpp:3144
#10 0xb5d3e7e8 in QSortFilterProxyModel::hasChildren (this=0x82b2db0, parent=...) at /local/git/Qt/qt/src/gui/itemviews/qsortfilterproxymodel.cpp:1697
#11 0xb5cf14a1 in QTreeView::doItemsLayout (this=0x8405e88) at /local/git/Qt/qt/src/gui/itemviews/qtreeview.cpp:2024
#12 0xb5cf74c0 in QTreeViewPrivate::updateScrollBars (this=0x8405ea8) at /local/git/Qt/qt/src/gui/itemviews/qtreeview.cpp:3440
#13 0xb5cf41c0 in QTreeView::updateGeometries (this=0x8405e88) at /local/git/Qt/qt/src/gui/itemviews/qtreeview.cpp:2686
#14 0xb5cb4d83 in QAbstractItemView::qt_metacall (this=0x8405e88, _c=QMetaObject::InvokeMetaMethod, _id=23, _a=0xbfcf410c) at .moc/debug-shared/moc_qabstractitemview.cpp:241
#15 0xb5cf91e4 in QTreeView::qt_metacall (this=0x8405e88, _c=QMetaObject::InvokeMetaMethod, _id=54, _a=0xbfcf410c) at .moc/debug-shared/moc_qtreeview.cpp:119
#16 0xb63bd0e2 in QMetaObject::metacall (object=0x8405e88, cl=QMetaObject::InvokeMetaMethod, idx=54, argv=0xbfcf410c) at /local/git/Qt/qt/src/corelib/kernel/qmetaobject.cpp:237
#17 0xb63cff2f in QMetaObject::activate (sender=0x82b1478, m=0xb616237c, local_signal_index=9, argv=0x0) at /local/git/Qt/qt/src/corelib/kernel/qobject.cpp:3278
#18 0xb5cc414f in QHeaderView::geometriesChanged (this=0x82b1478) at .moc/debug-shared/moc_qheaderview.cpp:274
#19 0xb5cbf4c7 in QHeaderView::viewportEvent (this=0x82b1478, e=0xbfcf4738) at /local/git/Qt/qt/src/gui/itemviews/qheaderview.cpp:2414
#20 0xb5c00c35 in QAbstractScrollAreaPrivate::viewportEvent (this=0x82b1678, event=0xbfcf4738) at /local/git/Qt/qt/src/gui/widgets/qabstractscrollarea_p.h:100
#21 0xb5c00d12 in QAbstractScrollAreaFilter::eventFilter (this=0x82b2ab0, o=0x83fb908, e=0xbfcf4738) at /local/git/Qt/qt/src/gui/widgets/qabstractscrollarea_p.h:116
#22 0xb63b5e2d in QCoreApplicationPrivate::sendThroughObjectEventFilters (this=0x8192dd8, receiver=0x83fb908, event=0xbfcf4738) at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:902
#23 0xb56a024c in QApplicationPrivate::notify_helper (this=0x8192dd8, receiver=0x83fb908, e=0xbfcf4738) at /local/git/Qt/qt/src/gui/kernel/qapplication.cpp:4477
#24 0xb569ffab in QApplication::notify (this=0xbfcf4c94, receiver=0x83fb908, e=0xbfcf4738) at /local/git/Qt/qt/src/gui/kernel/qapplication.cpp:4446
#25 0x0807fccc in kt::App::notify (this=0xbfcf4c94, receiver=0x83fb908, event=0xbfcf4738) at /local/git/extragear/network/ktorrent/ktorrent/app.cpp:99
#26 0xb63b5b56 in QCoreApplication::notifyInternal (this=0xbfcf4c94, receiver=0x83fb908, event=0xbfcf4738) at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:787
#27 0xb5692075 in QCoreApplication::sendEvent (receiver=0x83fb908, event=0xbfcf4738) at ../../include/QtCore/../../../../git/Qt/qt/src/corelib/kernel/qcoreapplication.h:215
#28 0xb56fedc1 in QWidgetPrivate::hideChildren (this=0x82b1678, spontaneous=false) at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:7823
#29 0xb56fed8a in QWidgetPrivate::hideChildren (this=0x8405ea8, spontaneous=false) at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:7818
#30 0xb56fed8a in QWidgetPrivate::hideChildren (this=0x84074c0, spontaneous=false) at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:7818
#31 0xb56fe260 in QWidgetPrivate::hide_helper (this=0x84074c0) at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:7562
#32 0xb56fe959 in QWidget::setVisible (this=0x8407470, visible=false) at /local/git/Qt/qt/src/gui/kernel/qwidget.cpp:7734
#33 0xb75e7f9c in QWidget::hide (this=0x8407470) at /local/qt4/include/QtGui/qwidget.h:491
#34 0xb75e77c7 in kt::TabBarWidget::removeTab (this=0x831d638, ti=0x8407470) at /local/git/extragear/network/ktorrent/libktcore/gui/tabbarwidget.cpp:125
#35 0x0808180b in kt::TorrentActivity::removeToolWidget (this=0x82d8e88, widget=0x8407470) at /local/git/extragear/network/ktorrent/ktorrent/torrentactivity.cpp:199
#36 0xb13689f5 in kt::InfoWidgetPlugin::unload (this=0x83fba68) at /local/git/extragear/network/ktorrent/plugins/infowidget/infowidgetplugin.cpp:124
#37 0xb75e9932 in kt::PluginManager::unloadAll (this=0x82dae48) at /local/git/extragear/network/ktorrent/libktcore/plugin/pluginmanager.cpp:189
#38 0x08073229 in kt::Core::onExit (this=0x82caba8) at /local/git/extragear/network/ktorrent/ktorrent/core.cpp:925
#39 0x0807ec87 in kt::GUI::queryExit (this=0x816dcc8) at /local/git/extragear/network/ktorrent/ktorrent/gui.cpp:568
#40 0xb6c8f344 in KMainWindowPrivate::_k_shuttingDown (this=0x824c630) at /local/git/KDE/libs/kdelibs/kdeui/widgets/kmainwindow.cpp:1142
#41 0xb6c8f7c6 in KMainWindow::qt_metacall (this=0x816dcc8, _c=QMetaObject::InvokeMetaMethod, _id=7, _a=0xbfcf4b9c) at /local/build/KDE/libs/kdelibs/kdeui/kmainwindow.moc:102
#42 0xb6cd7469 in KXmlGuiWindow::qt_metacall (this=0x816dcc8, _c=QMetaObject::InvokeMetaMethod, _id=38, _a=0xbfcf4b9c) at /local/build/KDE/libs/kdelibs/kdeui/kxmlguiwindow.moc:102
#43 0xb74569e4 in KParts::MainWindow::qt_metacall (this=0x816dcc8, _c=QMetaObject::InvokeMetaMethod, _id=38, _a=0xbfcf4b9c) at /local/build/KDE/libs/kdelibs/kparts/mainwindow.moc:75
#44 0x0807ee9c in kt::GUI::qt_metacall (this=0x816dcc8, _c=QMetaObject::InvokeMetaMethod, _id=38, _a=0xbfcf4b9c) at /local/build/extragear/network/ktorrent/ktorrent/gui.moc:102
#45 0xb63bd0e2 in QMetaObject::metacall (object=0x816dcc8, cl=QMetaObject::InvokeMetaMethod, idx=38, argv=0xbfcf4b9c) at /local/git/Qt/qt/src/corelib/kernel/qmetaobject.cpp:237
#46 0xb63cff2f in QMetaObject::activate (sender=0xbfcf4c94, m=0xb6539464, local_signal_index=0, argv=0x0) at /local/git/Qt/qt/src/corelib/kernel/qobject.cpp:3278
#47 0xb6427001 in QCoreApplication::aboutToQuit (this=0xbfcf4c94) at .moc/debug-shared/moc_qcoreapplication.cpp:131
#48 0xb63b6291 in QCoreApplication::exec () at /local/git/Qt/qt/src/corelib/kernel/qcoreapplication.cpp:1069
#49 0xb569d7b0 in QApplication::exec () at /local/git/Qt/qt/src/gui/kernel/qapplication.cpp:3755
#50 0x0806d4e6 in main (argc=6, argv=0xbfcf50c4) at /local/git/extragear/network/ktorrent/ktorrent/main.cpp:177

Possible duplicates by query: bug 217385.

Reported using DrKonqi
Comment 1 Joris Guisson 2011-09-02 18:40:13 UTC
Doesn't seem to be related to yesterdays changes.

It's crashing due to a dangling pointer to the removed torrent. Not sure yet how that is possible.
Comment 2 Joris Guisson 2011-12-04 10:23:04 UTC
Git commit 9c8049afc45d090a4920f6dc5c4a7aafcf28a2f9 by Joris Guisson.
Committed on 04/12/2011 at 11:22.
Pushed by guisson into branch 'master'.

Fix crash due to dangling pointer

BUG: 281196

M  +1    -0    ChangeLog
M  +4    -5    plugins/infowidget/chunkdownloadmodel.cpp
M  +2    -6    plugins/infowidget/chunkdownloadmodel.h
M  +3    -3    plugins/infowidget/chunkdownloadview.cpp
M  +3    -7    plugins/infowidget/chunkdownloadview.h
M  +32   -22   plugins/infowidget/fileview.cpp
M  +2    -2    plugins/infowidget/fileview.h
M  +25   -23   plugins/infowidget/statustab.cpp
M  +2    -2    plugins/infowidget/statustab.h
M  +16   -13   plugins/infowidget/trackerview.cpp
M  +2    -6    plugins/infowidget/trackerview.h
M  +12   -12   plugins/infowidget/webseedsmodel.cpp
M  +3    -6    plugins/infowidget/webseedsmodel.h
M  +24   -20   plugins/infowidget/webseedstab.cpp
M  +2    -6    plugins/infowidget/webseedstab.h

http://commits.kde.org/ktorrent/9c8049afc45d090a4920f6dc5c4a7aafcf28a2f9