Bug 357160 - KTorrent GUI freezes randlomly and stops torrent downloads
Summary: KTorrent GUI freezes randlomly and stops torrent downloads
Status: RESOLVED DUPLICATE of bug 354633
Alias: None
Product: ktorrent
Classification: Applications
Component: general (show other bugs)
Version: 4.3.1
Platform: Ubuntu Linux
: NOR crash
Target Milestone: ---
Assignee: Joris Guisson
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2015-12-25 21:33 UTC by Philip
Modified: 2016-04-16 23:13 UTC (History)
2 users (show)

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 Philip 2015-12-25 21:33:13 UTC
Application: ktorrent (4.3.1)
KDE Platform Version: 4.14.13
Qt Version: 4.8.6
Operating System: Linux 4.2.0-22-generic x86_64
Distribution: Ubuntu 15.10

-- Information about the crash:
- What I was doing when the application crashed:
After starting the KTorrent application it works normally, but usually after several seconds (generally less than a minute) freezes. Sometimes if I wait long enough GUI unfreezes and all torrents restart which indicates that there was no app activity while GUI was frozen. Same happens if I minimize KTorrent to tray right after start - the information while hovering above tray icon is not being updated and torrents are not being downloaded, also app doesn't revert to window mode while frozen.

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 0x7efffbd97840 (LWP 1723))]

Thread 5 (Thread 0x7effdeffd700 (LWP 1733)):
#0  std::pair<int const, QSharedPointer<net::PollClient> >::pair (this=0x7effc826ddc0) at /usr/include/c++/5/bits/stl_pair.h:96
#1  __gnu_cxx::new_allocator<std::pair<int const, QSharedPointer<net::PollClient> > >::construct (this=<optimized out>, __val=..., __p=0x7effc826ddc0) at /usr/include/c++/5/ext/new_allocator.h:130
#2  std::_Rb_tree<int, std::pair<int const, QSharedPointer<net::PollClient> >, std::_Select1st<std::pair<int const, QSharedPointer<net::PollClient> > >, std::less<int>, std::allocator<std::pair<int const, QSharedPointer<net::PollClient> > > >::_M_construct_node (this=<optimized out>, __x=..., __node=0x7effc826dda0) at /usr/include/c++/5/bits/stl_tree.h:502
#3  std::_Rb_tree<int, std::pair<int const, QSharedPointer<net::PollClient> >, std::_Select1st<std::pair<int const, QSharedPointer<net::PollClient> > >, std::less<int>, std::allocator<std::pair<int const, QSharedPointer<net::PollClient> > > >::_M_create_node (this=<optimized out>, __x=...) at /usr/include/c++/5/bits/stl_tree.h:514
#4  std::_Rb_tree<int, std::pair<int const, QSharedPointer<net::PollClient> >, std::_Select1st<std::pair<int const, QSharedPointer<net::PollClient> > >, std::less<int>, std::allocator<std::pair<int const, QSharedPointer<net::PollClient> > > >::_Alloc_node::operator()<std::pair<int const, QSharedPointer<net::PollClient> > > (this=<synthetic pointer>, __arg=...) at /usr/include/c++/5/bits/stl_tree.h:459
#5  std::_Rb_tree<int, std::pair<int const, QSharedPointer<net::PollClient> >, std::_Select1st<std::pair<int const, QSharedPointer<net::PollClient> > >, std::less<int>, std::allocator<std::pair<int const, QSharedPointer<net::PollClient> > > >::_M_insert_<std::_Rb_tree<int, std::pair<int const, QSharedPointer<net::PollClient> >, std::_Select1st<std::pair<int const, QSharedPointer<net::PollClient> > >, std::less<int>, std::allocator<std::pair<int const, QSharedPointer<net::PollClient> > > >::_Alloc_node> (__node_gen=<synthetic pointer>, __v=..., __p=0x95ec60, __x=<optimized out>, this=0x95ec58) at /usr/include/c++/5/bits/stl_tree.h:1509
#6  std::_Rb_tree<int, std::pair<int const, QSharedPointer<net::PollClient> >, std::_Select1st<std::pair<int const, QSharedPointer<net::PollClient> > >, std::less<int>, std::allocator<std::pair<int const, QSharedPointer<net::PollClient> > > >::_M_insert_unique_<std::_Rb_tree<int, std::pair<int const, QSharedPointer<net::PollClient> >, std::_Select1st<std::pair<int const, QSharedPointer<net::PollClient> > >, std::less<int>, std::allocator<std::pair<int const, QSharedPointer<net::PollClient> > > >::_Alloc_node> (__node_gen=<synthetic pointer>, __v=..., __position=..., this=0x95ec58) at /usr/include/c++/5/bits/stl_tree.h:1978
#7  std::_Rb_tree<int, std::pair<int const, QSharedPointer<net::PollClient> >, std::_Select1st<std::pair<int const, QSharedPointer<net::PollClient> > >, std::less<int>, std::allocator<std::pair<int const, QSharedPointer<net::PollClient> > > >::_M_insert_unique_ (__x=..., __pos=..., this=0x95ec58) at /usr/include/c++/5/bits/stl_tree.h:984
#8  std::map<int, QSharedPointer<net::PollClient>, std::less<int>, std::allocator<std::pair<int const, QSharedPointer<net::PollClient> > > >::insert (__x=..., __position=..., this=0x95ec58) at /usr/include/c++/5/bits/stl_map.h:666
#9  std::map<int, QSharedPointer<net::PollClient>, std::less<int>, std::allocator<std::pair<int const, QSharedPointer<net::PollClient> > > >::operator[] (__k=<synthetic pointer>, this=0x95ec58) at /usr/include/c++/5/bits/stl_map.h:487
#10 net::Poll::add (this=this@entry=0x95ec30, pc=...) at ../../src/net/poll.cpp:74
#11 0x00007efffb917550 in net::DownloadThread::waitForSocketReady (this=this@entry=0x95ec20) at ../../src/net/downloadthread.cpp:114
#12 0x00007efffb917716 in net::DownloadThread::update (this=0x95ec20) at ../../src/net/downloadthread.cpp:48
#13 0x00007efffb917919 in net::NetworkThread::run (this=0x95ec20) at ../../src/net/networkthread.cpp:48
#14 0x00007efff877dd1c in QThreadPrivate::start (arg=0x95ec20) at thread/qthread_unix.cpp:349
#15 0x00007efff4aa56aa in start_thread (arg=0x7effdeffd700) at pthread_create.c:333
#16 0x00007efff7b9eeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7effde7fc700 (LWP 1734)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007efff877c622 in _q_futex (val2=0, addr2=0x0, timeout=0x0, val=2, op=0, addr=0x95ebf0) at thread/qmutex_unix.cpp:99
#2  QMutexPrivate::wait (this=this@entry=0x95ebf0, timeout=timeout@entry=-1) at thread/qmutex_unix.cpp:113
#3  0x00007efff8778a1d in QMutex::lock (this=<optimized out>) at thread/qmutex.cpp:164
#4  0x00007efffb915f39 in net::SocketMonitor::lock (this=<optimized out>) at ../../src/net/socketmonitor.cpp:108
#5  0x00007efffb91706c in net::UploadThread::update (this=0x95f010) at ../../src/net/uploadthread.cpp:49
#6  0x00007efffb917919 in net::NetworkThread::run (this=0x95f010) at ../../src/net/networkthread.cpp:48
#7  0x00007efff877dd1c in QThreadPrivate::start (arg=0x95f010) at thread/qthread_unix.cpp:349
#8  0x00007efff4aa56aa in start_thread (arg=0x7effde7fc700) at pthread_create.c:333
#9  0x00007efff7b9eeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7effddffb700 (LWP 1735)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007efff877e286 in QWaitConditionPrivate::wait (time=18446744073709551615, this=0x1571aa0) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=this@entry=0x1526bf8, mutex=mutex@entry=0x1526bf0, time=time@entry=18446744073709551615) at thread/qwaitcondition_unix.cpp:158
#3  0x00007efffb91a202 in net::ReverseResolverThread::run (this=0x1526be0) at ../../src/net/reverseresolver.cpp:124
#4  0x00007efff877dd1c in QThreadPrivate::start (arg=0x1526be0) at thread/qthread_unix.cpp:349
#5  0x00007efff4aa56aa in start_thread (arg=0x7effddffb700) at pthread_create.c:333
#6  0x00007efff7b9eeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7effdd07e700 (LWP 1736)):
#0  0x00007efff7b8f49d in read () at ../sysdeps/unix/syscall-template.S:81
#1  0x00007efff3b744e0 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#2  0x00007efff3b30cd4 in g_main_context_check () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#3  0x00007efff3b31190 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4  0x00007efff3b312fc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5  0x00007efff88be20e in QEventDispatcherGlib::processEvents (this=0x7effc40008c0, flags=...) at kernel/qeventdispatcher_glib.cpp:452
#6  0x00007efff888c0d1 in QEventLoop::processEvents (this=this@entry=0x7effdd07dd40, flags=...) at kernel/qeventloop.cpp:149
#7  0x00007efff888c445 in QEventLoop::exec (this=this@entry=0x7effdd07dd40, flags=...) at kernel/qeventloop.cpp:204
#8  0x00007efff877b4f9 in QThread::exec (this=this@entry=0x15d33d0) at thread/qthread.cpp:538
#9  0x00007efff886c133 in QInotifyFileSystemWatcherEngine::run (this=0x15d33d0) at io/qfilesystemwatcher_inotify.cpp:265
#10 0x00007efff877dd1c in QThreadPrivate::start (arg=0x15d33d0) at thread/qthread_unix.cpp:349
#11 0x00007efff4aa56aa in start_thread (arg=0x7effdd07e700) at pthread_create.c:333
#12 0x00007efff7b9eeed in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7efffbd97840 (LWP 1723)):
[KCrash Handler]
#6  __memcpy_sse2_unaligned () at ../sysdeps/x86_64/multiarch/memcpy-sse2-unaligned.S:79
#7  0x00007efffb9a0e9c in memcpy (__len=16384, __src=0x7effc8332e79, __dest=<optimized out>) at /usr/include/x86_64-linux-gnu/bits/string3.h:53
#8  bt::PieceData::write (this=0x178db00, buf=0x7effc8332e79 "\026'Ld\001E\257U\037\030\337nEf\250Nzz\246\067\035\225/B\364\210H\004\270\244]\217\302\066\066p\256\026d=\005b\310\235^\244\371\362\071\257s\v\323\377.\225w\364\374x\330\r\216\203\033\357\344Y\235\202\065", buf_size=16384, off=off@entry=0) at ../../src/diskio/piecedata.cpp:74
#9  0x00007efffb946a5c in bt::ChunkDownload::piece (this=this@entry=0x1601280, p=..., ok=ok@entry=@0x7ffd32bed14f: false) at ../../src/download/chunkdownload.cpp:111
#10 0x00007efffb94c33e in bt::Downloader::pieceReceived (this=0xab2100, p=...) at ../../src/download/downloader.cpp:136
#11 0x00007efffb930499 in bt::Peer::handlePiece (this=0x1513a60, packet=0x7effc8332e70 "\a", len=16393) at ../../src/peer/peer.cpp:305
#12 0x00007efffb939dbd in bt::PacketReader::update (this=0x1566fc0, peer=...) at ../../src/peer/packetreader.cpp:70
#13 0x00007efffb92dc28 in bt::Peer::update (this=0x1513a60) at ../../src/peer/peer.cpp:592
#14 0x00007efffb935a09 in bt::PeerManager::Private::update (this=0xaf3000) at ../../src/peer/peermanager.cpp:644
#15 0x00007efffb935ad9 in bt::PeerManager::update (this=<optimized out>) at ../../src/peer/peermanager.cpp:140
#16 0x00007efffb96d9b7 in bt::TorrentControl::update (this=0xb25710) at ../../src/torrent/torrentcontrol.cpp:160
#17 0x000000000042d26b in kt::Core::update (this=0xabe8f0) at ../../ktorrent/core.cpp:1056
#18 0x0000000000435e6d in kt::Core::qt_static_metacall (_o=<optimized out>, _c=<optimized out>, _id=<optimized out>, _a=<optimized out>) at ./core.moc:142
#19 0x00007efff88a1f60 in QMetaObject::activate (sender=0xabe918, m=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>) at kernel/qobject.cpp:3567
#20 0x00007efff88a7bd3 in QObject::event (this=0xabe918, e=<optimized out>) at kernel/qobject.cpp:1253
#21 0x00007efff8db9cdc in QApplicationPrivate::notify_helper (this=this@entry=0x98bc60, receiver=receiver@entry=0xabe918, e=e@entry=0x7ffd32bed890) at kernel/qapplication.cpp:4570
#22 0x00007efff8dc0c16 in QApplication::notify (this=0x7ffd32bee7e0, receiver=0xabe918, e=0x7ffd32bed890) at kernel/qapplication.cpp:4356
#23 0x000000000043d0f1 in kt::App::notify (this=<optimized out>, receiver=<optimized out>, event=<optimized out>) at ../../ktorrent/app.cpp:99
#24 0x00007efff888d85d in QCoreApplication::notifyInternal (this=0x7ffd32bee7e0, receiver=0xabe918, event=event@entry=0x7ffd32bed890) at kernel/qcoreapplication.cpp:955
#25 0x00007efff88c06c0 in QCoreApplication::sendEvent (event=0x7ffd32bed890, receiver=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:231
#26 QTimerInfoList::activateTimers (this=0x991ee0) at kernel/qeventdispatcher_unix.cpp:621
#27 0x00007efff88bd869 in timerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:193
#28 idleTimerSourceDispatch (source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:240
#29 0x00007efff3b30ff7 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#30 0x00007efff3b31250 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#31 0x00007efff3b312fc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#32 0x00007efff88be1ee in QEventDispatcherGlib::processEvents (this=0x98e400, flags=...) at kernel/qeventdispatcher_glib.cpp:450
#33 0x00007efff8e64c26 in QGuiEventDispatcherGlib::processEvents (this=<optimized out>, flags=...) at kernel/qguieventdispatcher_glib.cpp:204
#34 0x00007efff888c0d1 in QEventLoop::processEvents (this=this@entry=0x7ffd32bedb10, flags=...) at kernel/qeventloop.cpp:149
#35 0x00007efff888c445 in QEventLoop::exec (this=this@entry=0x7ffd32bedb10, flags=...) at kernel/qeventloop.cpp:204
#36 0x00007efff8892429 in QCoreApplication::exec () at kernel/qcoreapplication.cpp:1227
#37 0x00007efff8db7f2c in QApplication::exec () at kernel/qapplication.cpp:3828
#38 0x0000000000427c72 in main (argc=5, argv=0x7ffd32bee928) at ../../ktorrent/main.cpp:186

Reported using DrKonqi
Comment 1 Nick Shaforostoff 2016-02-14 23:13:11 UTC
which filesystem do you use for the partition you download files to? how much free space does it have?

also please try KTorrent for KDE5 Frameworks
Comment 2 Philip 2016-02-15 13:02:13 UTC
I use NTFS partition for torrent data, so yes, currently it is the most possible cause of the problem according to the information in the internet.

Free space should be enough, currently there is 19GB free out of 40GB on the partition, and I still get freezes and that's annoying.

Ktorrent version is 4.3.1, it is using KDE platform 4.14.13, my system in KUbuntu 15.10 with KDE plasma 5.4.2

Maybe mounting options for NTFS partition should be changed? this is my entry in the fstab config: 
UUID=<disk_uid> <mount_point> ntfs rw,auto,users,exec,nls=utf8,umask=003,gid=46,uid=1000
Comment 3 Amichai Rothman 2016-04-05 21:37:27 UTC
Duplicate of bug #354633 ?
Comment 4 Philip 2016-04-06 06:08:11 UTC
Yes, I marked this thread as duplicate, thanks for pointing that out

*** This bug has been marked as a duplicate of bug 354633 ***
Comment 5 Nick Shaforostoff 2016-04-16 23:13:10 UTC
can someone confirm that commenting 'if (!OpenFileAllowed())' line (making the next 'return 0;' being executed unconditionally) in cachefile.cpp makes ntfs download work fine finally?