Bug 262857

Summary: Crash while updating files outside KTorrent while downloading
Product: [Applications] ktorrent Reporter: Maarten ter Huurne <maarten>
Component: generalAssignee: Joris Guisson <joris.guisson>
Status: RESOLVED DUPLICATE    
Severity: crash    
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Maarten ter Huurne 2011-01-11 14:25:13 UTC
Application: ktorrent (4.0.4)
KDE Platform Version: 4.5.4 (KDE 4.5.4) "release 9"
Qt Version: 4.6.3
Operating System: Linux 2.6.35.1-3.2-desktop x86_64
Distribution (Platform): openSUSE RPMs

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

A multi-file torrent was both uploading and downloading when I manually replaced a file in the directory where it was downloading to. At that moment KTorrent suddenly crashed. I have done this procedure before and usually it doesn't crash, so it might be a race condition.

-- Backtrace:
Application: KTorrent (ktorrent), signal: Bus error
[Current thread is 1 (Thread 0x7f972d44c760 (LWP 29564))]

Thread 9 (Thread 0x7f971a2fb710 (LWP 29566)):
#0  0x00007f97298c0e13 in select () from /lib64/libc.so.6
#1  0x00007f972cffb9b7 in dht::RPCServerThread::run (this=0x71bf00) at /usr/src/debug/libktorrent-1.0.4/src/dht/rpcserver.cpp:107
#2  0x00007f972b1d2bf5 in ?? () from /usr/lib64/libQtCore.so.4
#3  0x00007f972af44a4f in start_thread () from /lib64/libpthread.so.0
#4  0x00007f97298c782d in clone () from /lib64/libc.so.6
#5  0x0000000000000000 in ?? ()

Thread 8 (Thread 0x7f971aafc710 (LWP 29568)):
#0  0x00007f972af49709 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f9713b68951 in metronom_sync_loop () from /usr/lib64/libxine.so.1
#2  0x00007f972af44a4f in start_thread () from /lib64/libpthread.so.0
#3  0x00007f97298c782d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7f970e09a710 (LWP 29569)):
#0  0x00007f972af470b4 in pthread_mutex_lock () from /lib64/libpthread.so.0
#1  0x00007f9725132fae in g_main_context_prepare () from /usr/lib64/libglib-2.0.so.0
#2  0x00007f9725133e69 in ?? () from /usr/lib64/libglib-2.0.so.0
#3  0x00007f9725134510 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#4  0x00007f972b2e26d6 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#5  0x00007f972b2b9292 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#6  0x00007f972b2b9495 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/libQtCore.so.4
#7  0x00007f972b1d02cf in QThread::exec() () from /usr/lib64/libQtCore.so.4
#8  0x00007f9713dc63b4 in ?? () from /usr/lib64/kde4/plugins/phonon_backend/phonon_xine.so
#9  0x00007f972b1d2bf5 in ?? () from /usr/lib64/libQtCore.so.4
#10 0x00007f972af44a4f in start_thread () from /lib64/libpthread.so.0
#11 0x00007f97298c782d in clone () from /lib64/libc.so.6
#12 0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7f970d68f710 (LWP 29572)):
#0  0x00007f97298be6b3 in poll () from /lib64/libc.so.6
#1  0x00007f970d6949d7 in ao_alsa_handle_event_thread () from /usr/lib64/xine/plugins/1.29/xineplug_ao_out_alsa.so
#2  0x00007f972af44a4f in start_thread () from /lib64/libpthread.so.0
#3  0x00007f97298c782d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7f970ce8e710 (LWP 29573)):
#0  0x00007f972af4939c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f9713b7a96b in ao_loop () from /usr/lib64/libxine.so.1
#2  0x00007f972af44a4f in start_thread () from /lib64/libpthread.so.0
#3  0x00007f97298c782d in clone () from /lib64/libc.so.6
#4  0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7f9704a4a710 (LWP 29587)):
#0  0x00007f97298be6b3 in poll () from /lib64/libc.so.6
#1  0x00007f972cfab4bc in net::Poll::poll (this=0x6de290, timeout=<value optimized out>) at /usr/src/debug/libktorrent-1.0.4/src/net/poll.cpp:99
#2  0x00007f972cfa8408 in net::DownloadThread::waitForSocketReady (this=0x6de280) at /usr/src/debug/libktorrent-1.0.4/src/net/downloadthread.cpp:128
#3  0x00007f972cfa84f6 in net::DownloadThread::update (this=0x6de280) at /usr/src/debug/libktorrent-1.0.4/src/net/downloadthread.cpp:48
#4  0x00007f972cfa86f9 in net::NetworkThread::run (this=0x6de280) at /usr/src/debug/libktorrent-1.0.4/src/net/networkthread.cpp:48
#5  0x00007f972b1d2bf5 in ?? () from /usr/lib64/libQtCore.so.4
#6  0x00007f972af44a4f in start_thread () from /lib64/libpthread.so.0
#7  0x00007f97298c782d in clone () from /lib64/libc.so.6
#8  0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7f96fffff710 (LWP 29588)):
#0  0x00007f972af49709 in pthread_cond_timedwait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f972b1d29b5 in ?? () from /usr/lib64/libQtCore.so.4
#2  0x00007f972b1d2b20 in QThread::msleep(unsigned long) () from /usr/lib64/libQtCore.so.4
#3  0x00007f972cfa7ef8 in net::UploadThread::update (this=0x6de8f0) at /usr/src/debug/libktorrent-1.0.4/src/net/uploadthread.cpp:89
#4  0x00007f972cfa86f9 in net::NetworkThread::run (this=0x6de8f0) at /usr/src/debug/libktorrent-1.0.4/src/net/networkthread.cpp:48
#5  0x00007f972b1d2bf5 in ?? () from /usr/lib64/libQtCore.so.4
#6  0x00007f972af44a4f in start_thread () from /lib64/libpthread.so.0
#7  0x00007f97298c782d in clone () from /lib64/libc.so.6
#8  0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7f96ff7fe710 (LWP 29589)):
#0  0x00007f972af4939c in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0
#1  0x00007f972b1d32bb in QWaitCondition::wait(QMutex*, unsigned long) () from /usr/lib64/libQtCore.so.4
#2  0x00007f972cfab172 in net::ReverseResolverThread::run (this=0x7f9700014df0) at /usr/src/debug/libktorrent-1.0.4/src/net/reverseresolver.cpp:123
#3  0x00007f972b1d2bf5 in ?? () from /usr/lib64/libQtCore.so.4
#4  0x00007f972af44a4f in start_thread () from /lib64/libpthread.so.0
#5  0x00007f97298c782d in clone () from /lib64/libc.so.6
#6  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f972d44c760 (LWP 29564)):
[KCrash Handler]
#6  0x00007f97298768b3 in memcpy () from /lib64/libc.so.6
#7  0x00007f972cfc8fed in bt::ChunkDownload::piece (this=0x6b90770, p=..., ok=@0x7fff6ed2619f) at /usr/include/bits/string3.h:52
#8  0x00007f972cfce277 in bt::Downloader::pieceReceived (this=0xc335b0, p=...) at /usr/src/debug/libktorrent-1.0.4/src/download/downloader.cpp:134
#9  0x00007f972cfb83fd in bt::Peer::packetReady (this=0x63e5d30, packet=0x7f9714083100 "\a", len=<value optimized out>) at /usr/src/debug/libktorrent-1.0.4/src/peer/peer.cpp:283
#10 0x00007f972cfc04d8 in bt::PacketReader::update (this=0x64d32e0) at /usr/src/debug/libktorrent-1.0.4/src/peer/packetreader.cpp:141
#11 0x00007f972cfb6575 in bt::Peer::update (this=0x63e5d30) at /usr/src/debug/libktorrent-1.0.4/src/peer/peer.cpp:538
#12 0x00007f972cfbb5ad in bt::PeerManager::update (this=0xc6aac0) at /usr/src/debug/libktorrent-1.0.4/src/peer/peermanager.cpp:144
#13 0x00007f972cfe77e4 in bt::TorrentControl::update (this=0xc1d520) at /usr/src/debug/libktorrent-1.0.4/src/torrent/torrentcontrol.cpp:163
#14 0x000000000042bc43 in _start ()

Possible duplicates by query: bug 262446, bug 262432, bug 262378, bug 262037, bug 261102.

Reported using DrKonqi
Comment 1 Joris Guisson 2011-01-11 17:57:45 UTC

*** This bug has been marked as a duplicate of bug 241598 ***
Comment 2 Maarten ter Huurne 2011-01-11 18:33:35 UTC
I have some doubt that this bug is really resolved... Bug 241598 was fixed in revision 1137933, which is very shortly after libktorrent 1.0.1 was tagged (1137912), while I was using KTorrent 4.0.4 with libktorrent 1.0.4 when the crash occurred. I couldn't find an SVN tag for libktorrent 1.0.4, but most likely that release does include the commit that fixes bug 241598. So this bug might not be a duplicate, or maybe the fix is not working in certain cases.

One difference between this crash log and the one from bug 241598 is that here the crash occurred on reception of a packet while in the older log the crash occurred on sending a packet. I don't know if that difference is relevant though.
Comment 3 Joris Guisson 2011-01-11 18:38:56 UTC
The solution was only included in 4.1beta1
Comment 4 Maarten ter Huurne 2011-01-11 18:56:26 UTC
OK, thanks for clarifying that.