Description of problem: I updated from kernel 3.19.7-200.fc21 to 4.0.4-202.fc21 and ktorrent has started hanging while seeding. Its window stops responding and it does nothing; it must be killed with eg 'kill -9'. The hang is long term (it can last hours). Given the stack backtrace I've obtained through gdb, it's possible that this issue is in libQtNetwork. I haven't reverted to 3.19.7-200 to verify that it is specifically the kernel that did this, but I don't see any other relevant package update for me between 'working ktorrent' and 'hanging ktorrent'. I can do this test if desired. I'm using a 64-bit x86 kernel and I have multiple interfaces, although none of them are coming and going dynamically (this is relevant given the stack trace). Version-Release number of selected component (if applicable): ktorrent-4.3.1-12.fc21.x86_64 qt-4.8.6-30.fc21.x86_64 kernel-4.0.4-202.fc21.x86_64 How reproducible: Reliably, although it can take a while before ktorrent hangs. Additional info: GDB on a running but hung ktorrent reports: (gdb) where #0 0x00007f84d6b501dd in recvmsg () at /lib64/libc.so.6 #1 0x00007f84d6b6a69d in __netlink_request () at /lib64/libc.so.6 #2 0x00007f84d6b6a96c in getifaddrs_internal () at /lib64/libc.so.6 #3 0x00007f84d6b6b610 in getifaddrs () at /lib64/libc.so.6 #4 0x00007f84da34e132 in QNetworkInterfaceManager::scan() () at /lib64/libQtNetwork.so.4 #5 0x00007f84da348cee in QNetworkInterfaceManager::allInterfaces() () at /lib64/libQtNetwork.so.4 #6 0x00007f84da349270 in QNetworkInterfaceManager::interfaceFromName(QString const&) () at /lib64/libQtNetwork.so.4 #7 0x00007f84da34936b in QNetworkInterface::interfaceFromName(QString const&) () at /lib64/libQtNetwork.so.4 #8 0x00007f84db774184 in bt::NetworkInterfaceIPAddresses(QString const&) () at /lib64/libktorrent.so.5 #9 0x00007f84db78ff98 in net::TrafficShapedSocket::TrafficShapedSocket(bool, int) () at /lib64/libktorrent.so.5 #10 0x00007f84db7862bd in net::PacketSocket::PacketSocket(bool, int) () at /lib64/libktorrent.so.5 #11 0x00007f84db790f65 in mse::EncryptedPacketSocket::EncryptedPacketSocket(int) () at /lib64/libktorrent.so.5 #12 0x00007f84db794014 in bt::Authenticate::Authenticate(net::Address const&, bt::TransportProtocol, bt::SHA1Hash const&, bt::PeerID const&, QWeakPointer<bt::PeerConnector>) () at /lib64/libktorrent.so.5 #13 0x00007f84db7918bc in mse::EncryptedAuthenticate::EncryptedAuthenticate(net::Address const&, bt::TransportProtocol, bt::SHA1Hash const&, bt::PeerID const&, QWeakPointer<bt::PeerConnector>) () at /lib64/libktorrent.so.5 #14 0x00007f84db7acc13 in bt::PeerConnector::Private::start(bt::PeerConnector::Method) () at /lib64/libktorrent.so.5 #15 0x00007f84db77f4e4 in bt::ResourceManager::update() () at /lib64/libktorrent.so.5 #16 0x00007f84db77f7d2 in bt::ResourceManager::add(bt::Resource*) () at /lib64/libktorrent.so.5 #17 0x00007f84db7a5688 in bt::PeerManager::Private::connectToPeers() () at /lib64/libktorrent.so.5 #18 0x00007f84db7a5b3d in bt::PeerManager::Private::update() () at /lib64/libktorrent.so.5 #19 0x00007f84db7da557 in bt::TorrentControl::update() () at /lib64/libktorrent.so.5 #20 0x000000000042bbd3 in kt::Core::update() () #21 0x0000000000433e65 in kt::Core::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () #22 0x00007f84d77d4d9c in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () at /lib64/libQtCore.so.4 #23 0x00007f84d77d9363 in QObject::event(QEvent*) () at /lib64/libQtCore.so.4 #24 0x00007f84d7cf0efc in QApplicationPrivate::notify_helper(QObject*, QEvent*) (gdb) where #0 0x00007f84d6b501dd in recvmsg () at /lib64/libc.so.6 #1 0x00007f84d6b6a69d in __netlink_request () at /lib64/libc.so.6 #2 0x00007f84d6b6a96c in getifaddrs_internal () at /lib64/libc.so.6 #3 0x00007f84d6b6b610 in getifaddrs () at /lib64/libc.so.6 #4 0x00007f84da34e132 in QNetworkInterfaceManager::scan() () at /lib64/libQtNetwork.so.4 #5 0x00007f84da348cee in QNetworkInterfaceManager::allInterfaces() () at /lib64/libQtNetwork.so.4 #6 0x00007f84da349270 in QNetworkInterfaceManager::interfaceFromName(QString const&) () at /lib64/libQtNetwork.so.4 #7 0x00007f84da34936b in QNetworkInterface::interfaceFromName(QString const&) () at /lib64/libQtNetwork.so.4 #8 0x00007f84db774184 in bt::NetworkInterfaceIPAddresses(QString const&) () at /lib64/libktorrent.so.5 #9 0x00007f84db78ff98 in net::TrafficShapedSocket::TrafficShapedSocket(bool, int) () at /lib64/libktorrent.so.5 #10 0x00007f84db7862bd in net::PacketSocket::PacketSocket(bool, int) () at /lib64/libktorrent.so.5 #11 0x00007f84db790f65 in mse::EncryptedPacketSocket::EncryptedPacketSocket(int) () at /lib64/libktorrent.so.5 #12 0x00007f84db794014 in bt::Authenticate::Authenticate(net::Address const&, bt::TransportProtocol, bt::SHA1Hash const&, bt::PeerID const&, QWeakPointer<bt::PeerConnector>) () at /lib64/libktorrent.so.5 #13 0x00007f84db7918bc in mse::EncryptedAuthenticate::EncryptedAuthenticate(net::Address const&, bt::TransportProtocol, bt::SHA1Hash const&, bt::PeerID const&, QWeakPointer<bt::PeerConnector>) () at /lib64/libktorrent.so.5 #14 0x00007f84db7acc13 in bt::PeerConnector::Private::start(bt::PeerConnector::Method) () at /lib64/libktorrent.so.5 #15 0x00007f84db77f4e4 in bt::ResourceManager::update() () at /lib64/libktorrent.so.5 #16 0x00007f84db77f7d2 in bt::ResourceManager::add(bt::Resource*) () at /lib64/libktorrent.so.5 #17 0x00007f84db7a5688 in bt::PeerManager::Private::connectToPeers() () at /lib64/libktorrent.so.5 #18 0x00007f84db7a5b3d in bt::PeerManager::Private::update() () at /lib64/libktorrent.so.5 #19 0x00007f84db7da557 in bt::TorrentControl::update() () at /lib64/libktorrent.so.5 #20 0x000000000042bbd3 in kt::Core::update() () #21 0x0000000000433e65 in kt::Core::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) () #22 0x00007f84d77d4d9c in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () at /lib64/libQtCore.so.4 #23 0x00007f84d77d9363 in QObject::event(QEvent*) () at /lib64/libQtCore.so.4 #24 0x00007f84d7cf0efc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQtGui.so.4 #25 0x00007f84d7cf7958 in QApplication::notify(QObject*, QEvent*) () at /lib64/libQtGui.so.4 #26 0x000000000043a662 in kt::App::notify(QObject*, QEvent*) () #27 0x00007f84d77c022d in QCoreApplication::notifyInternal(QObject*, QEvent*) () at /lib64/libQtCore.so.4 #28 0x00007f84d77f1bab in QTimerInfoList::activateTimers() () at /lib64/libQtCore.so.4 #29 0x00007f84d77eebc9 in idleTimerSourceDispatch(_GSource*, int (*)(void*), void*) () at /lib64/libQtCore.so.4 #30 0x00007f84d08507fb in g_main_context_dispatch () at /lib64/libglib-2.0.so.0 #31 0x00007f84d0850b98 in g_main_context_iterate.isra () at /lib64/libglib-2.0.so.0 #32 0x00007f84d0850c4c in g_main_context_iteration () at /lib64/libglib-2.0.so.0 #33 0x00007f84d77ef55e in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQtCore.so.4 #34 0x00007f84d7d94176 in QGuiEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQtGui.so.4 #35 0x00007f84d77bed81 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQtCore.so.4 #36 0x00007f84d77bf0e5 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () at /lib64/libQtCore.so.4 #37 0x00007f84d77c47c9 in QCoreApplication::exec() () at /lib64/libQtCore.so.4 #38 0x00000000004278e8 in main () I have a core file from gcore.
> I can do this test if desired. That would be greatly helpful if you could, thanks.
At this point ktorrent has been seeding on 3.19.7-200 for a bit over two and a half hours without problems. This is well over how long it seems to usually last on 4.0.4. I'll leave it running at least overnight (I need to reboot this machine in the near future for other work).
For what it's worth: I updated one machine to Fedora 22 and this doesn't seem to happen on it any more (I've been seeding Fedora torrents with ktorrent for about 18 hours with no hang). The ktorrent and qt versions are about the same between Fedora 21 and 22 but Fedora 22 is using kernel-4.0.6-300.fc22.x86_64, which doesn't seem to have been released for Fedora 21 yet. (If it's released for F21 relatively soon, I'll test ktorrent on my currently remaining Fedora 21 machine. If it's not released soon, I'll probably have upgraded that machine to Fedora 22.)
Thanks to let me know - please let me know if you have further tests and can narrow it down to the kernel or any other component.
I updated my (remaining) Fedora machine to kernel 4.0.6-200.fc21 and ktorrent immediately stopped hanging while seeding. My yum logs show no ktorrent or qt library updates, so it looks like this was a kernel issue that was specific to 4.0.4-201.fc21 and 4.0.5-200.fc21. Since everything works again with the current kernel (on both Fedora 21 and 22), I think you can close this bug as 'resolved in errata' or something like that.
ok