Bug 229377

Summary: KTorrent crashes some time after limiting it's download speed, sometimes without limiting
Product: [Applications] ktorrent Reporter: Marek Śledziona <m.sledziona>
Component: generalAssignee: Joris Guisson <joris.guisson>
Status: RESOLVED FIXED    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Marek Śledziona 2010-03-04 11:11:41 UTC
Application: ktorrent (4.0beta1)
KDE Platform Version: 4.4.1 (KDE 4.4.1) "release 225"
Qt Version: 4.6.2
Operating System: Linux 2.6.31.12-0.1-desktop x86_64
Distribution: "openSUSE 11.2 (x86_64)"

-- Information about the crash:
This crash occurs when user enables a limit of transfer to whole KTorrent app. My Ktorrent was operating fine for about 5 hours until I have enabled a download limit at 120 kB/s (oter limits do the same). After that app was slowed down (then it's very hard to use it and e.g. close it normally) and at last it crashed. The same problem was with earlier version of this app (can't remember which compilation, but I think it was also 3.3.99-xx - from openSUSE Build Service), but then it crashed more often IMO.

The crash can be reproduced some of the time.

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

Thread 4 (Thread 0x7f262bae3910 (LWP 3729)):
#0  0x00007f264a8e9049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f264ab72ea3 in ?? () from /usr/lib64/libQtCore.so.4
#2  0x00007f264ab6e9f5 in QMutex::lock() () from /usr/lib64/libQtCore.so.4
#3  0x00007f264c998a8a in net::DownloadThread::waitForSocketReady (this=0x6dc720) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/net/downloadthread.cpp:128
#4  0x00007f264c998c56 in net::DownloadThread::update (this=0x6dc6ec) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/net/downloadthread.cpp:53
#5  0x00007f264c999629 in net::NetworkThread::run (this=0x6dc720) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/net/networkthread.cpp:48
#6  0x00007f264ab73775 in ?? () from /usr/lib64/libQtCore.so.4
#7  0x00007f264a8e465d in start_thread () from /lib64/libpthread.so.0
#8  0x00007f2649245e1d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f262b2e2910 (LWP 3730)):
[KCrash Handler]
#5  0x00007f264c9af7a1 in bt::PacketWriter::onReadyToWrite (this=0x1f09220, data=<value optimized out>, max_to_write=16393) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/peer/packetwriter.cpp:269
#6  0x00007f264c99d595 in mse::StreamSocket::onReadyToWrite (this=0x7f263b15bb60, data=0x7f263b218fa0 "@", max_to_write=4294967264)
    at /usr/src/debug/ktorrent-4.0beta1/libbtcore/mse/streamsocket.cpp:288
#7  0x00007f264c994dca in net::BufferedSocket::writeBuffered (this=0x7f263afd5760, max=0, now=1267695645198) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/net/bufferedsocket.cpp:182
#8  0x00007f264c99a52a in net::SocketGroup::processUnlimited (this=<value optimized out>, up=true, now=1267695645198) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/net/socketgroup.cpp:51
#9  0x00007f264c99a748 in net::SocketGroup::process (this=0x7f263b1b9630, up=false, now=18446744073709551584, global_allowance=@0x7f262b2e1f4c)
    at /usr/src/debug/ktorrent-4.0beta1/libbtcore/net/socketgroup.cpp:192
#10 0x00007f264c99955c in net::NetworkThread::doGroups (this=0x6dcc80, num_ready=<value optimized out>, now=1267695645198, limit=<value optimized out>)
    at /usr/src/debug/ktorrent-4.0beta1/libbtcore/net/networkthread.cpp:155
#11 0x00007f264c99858a in net::UploadThread::update (this=0x6dcc80) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/net/uploadthread.cpp:66
#12 0x00007f264c999629 in net::NetworkThread::run (this=0x6dcc80) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/net/networkthread.cpp:48
#13 0x00007f264ab73775 in ?? () from /usr/lib64/libQtCore.so.4
#14 0x00007f264a8e465d in start_thread () from /lib64/libpthread.so.0
#15 0x00007f2649245e1d in clone () from /lib64/libc.so.6
#16 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f262aae1910 (LWP 3731)):
#0  0x00007f264a8e9049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f264ab7472b in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007f264c99c2c2 in net::ReverseResolverThread::run (this=0x18bd100) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/net/reverseresolver.cpp:120
#3  0x00007f264ab73775 in ?? () from /usr/lib64/libQtCore.so.4
#4  0x00007f264a8e465d in start_thread () from /lib64/libpthread.so.0
#5  0x00007f2649245e1d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f264ce6a7f0 (LWP 2214)):
#0  0x00007f264a8e9049 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f264ab72ea3 in ?? () from /usr/lib64/libQtCore.so.4
#2  0x00007f264ab6e9f5 in QMutex::lock() () from /usr/lib64/libQtCore.so.4
#3  0x00007f264c9afa04 in relock (this=<value optimized out>) at /usr/include/QtCore/qmutex.h:120
#4  QMutexLocker (this=<value optimized out>) at /usr/include/QtCore/qmutex.h:102
#5  bt::PacketWriter::queuePacket (this=<value optimized out>) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/peer/packetwriter.cpp:71
#6  0x00007f264c9ae123 in bt::PeerDownloader::cancel (this=0x1ff3e70, req=...) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/peer/peerdownloader.cpp:134
#7  0x00007f264c9b8179 in bt::ChunkDownload::sendCancels (this=0x13fb320, pd=0x1ff3e70) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/download/chunkdownload.cpp:333
#8  0x00007f264c9b98eb in bt::ChunkDownload::notDownloaded (this=0x13fb320, r=..., reject=true) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/download/chunkdownload.cpp:207
#9  0x00007f264c9b9c76 in bt::ChunkDownload::qt_metacall (this=0x13fb320, _c=InvokeMetaMethod, _id=<value optimized out>, _a=0x7fff4b99b7a0)
    at /usr/src/debug/ktorrent-4.0beta1/build/libbtcore/chunkdownload.moc:77
#10 0x00007f264ac7a78f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#11 0x00007f264c9c6ba5 in bt::PieceDownloader::rejected (this=0x1167f1c, _t1=<value optimized out>) at /usr/src/debug/ktorrent-4.0beta1/build/libbtcore/piecedownloader.moc:94
#12 0x00007f264c9ade13 in bt::PeerDownloader::onRejected (this=0x1ff3e70, req=...) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/peer/peerdownloader.cpp:146
#13 0x00007f264c9a7398 in bt::Peer::packetReady (this=0xd42ca0, packet=0x7f2624252d70 "\020", len=<value optimized out>) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/peer/peer.cpp:307
#14 0x00007f264c9b0d18 in bt::PacketReader::update (this=0x1103520) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/peer/packetreader.cpp:141
#15 0x00007f264c9a60fd in bt::Peer::update (this=0xd42ca0) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/peer/peer.cpp:512
#16 0x00007f264c9ab390 in bt::PeerManager::update (this=0x7f2639bd06d0) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/peer/peermanager.cpp:119
#17 0x00007f264c9da62a in bt::TorrentControl::update (this=0x7f2639bb2930) at /usr/src/debug/ktorrent-4.0beta1/libbtcore/torrent/torrentcontrol.cpp:150
#18 0x000000000042a2fb in kt::Core::update (this=0x6fc210) at /usr/src/debug/ktorrent-4.0beta1/ktorrent/core.cpp:886
#19 0x0000000000430618 in kt::Core::qt_metacall (this=0x6fc210, _c=InvokeMetaMethod, _id=-512, _a=0x7fff4b99bc10) at /usr/src/debug/ktorrent-4.0beta1/build/ktorrent/core.moc:159
#20 0x00007f264ac7a78f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/libQtCore.so.4
#21 0x00007f264ac773e3 in QObject::event(QEvent*) () from /usr/lib64/libQtCore.so.4
#22 0x00007f2649e07e1c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#23 0x00007f2649e0e3fb in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/libQtGui.so.4
#24 0x00007f264bb06456 in KApplication::notify(QObject*, QEvent*) () from /usr/lib64/libkdeui.so.5
#25 0x00007f264ac6798c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib64/libQtCore.so.4
#26 0x00007f264ac94655 in ?? () from /usr/lib64/libQtCore.so.4
#27 0x00007f264ac911e8 in ?? () from /usr/lib64/libQtCore.so.4
#28 0x00007f2644f67dee in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#29 0x00007f2644f6b7b8 in ?? () from /usr/lib64/libglib-2.0.so.0
#30 0x00007f2644f6b8e0 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#31 0x00007f264ac90eb3 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#32 0x00007f2649eb651e in ?? () from /usr/lib64/libQtGui.so.4
#33 0x00007f264ac662a2 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#34 0x00007f264ac6667c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#35 0x00007f264ac6a3cb in QCoreApplication::exec() () from /usr/lib64/libQtCore.so.4
#36 0x000000000042823b in main (argc=<value optimized out>, argv=<value optimized out>) at /usr/src/debug/ktorrent-4.0beta1/ktorrent/main.cpp:171

Possible duplicates by query: bug 166176.

Reported using DrKonqi
Comment 1 Joris Guisson 2010-03-07 17:19:14 UTC
This is fixed in trunkk