qbittorrent / qBittorrent

qBittorrent BitTorrent client
https://www.qbittorrent.org
Other
27.77k stars 3.92k forks source link

Qbittorrent 4.0 Windows High Cpu Usage, Process Won't Die After Exiting #7763

Closed CeruleanSky closed 6 years ago

CeruleanSky commented 6 years ago

qBittorrent version and Operating System

Qbittorrent 4.0..0 x64 - qbittorrent_4.0.0_x64_setup.exe

What is the problem

Qbittorrent has high cpu usage. It appears to be one thread. After exiting, while most of the windows are destroyed, the thread continues to run forever.

The program does not appear to be frozen.

What is the expected behavior

Qbittorrent to exit after a few seconds or minutes.

Steps to reproduce

Open Qbittorrent. Close Qbittorrent.

Extra info(if any)

Stack Trace of High CPU thread from Process Hacker

Edit: Please use stack traces and windbg output with symbols below

In case this is related. I also suffer from Issue 7751, RSS feeds not updating, only one updatng, or only updating once they are added and never again. The icons also remain in the "updating" state.

slrslr commented 6 years ago

Here are similar or related issues: https://github.com/qbittorrent/qBittorrent/issues/5097 https://github.com/qbittorrent/qBittorrent/issues/1332

sledgehammer999 commented 6 years ago

That stacktrace is a bit useless without function names. Does process hacker allow to load "debug symbols" or "PDB database/file"? If yes, load qbittorrent.pdb (found in program files) and take another stacktrace.

CeruleanSky commented 6 years ago

@slrslr To differentiate from those two tickets: This started on 4.0.0 , in regards to #5097 all previous versions worked fine.

Inregards to #1332 it isn't frozen or at 0% cpu usage, but listed as using ~100% of the cpu the thread is on.


@sledgehammer999

Just had to add the path to the symbols in the options. Here you go, it does seem it might be RSS and #7751 related.

The problem seems to go away when RSS is disabled.

I hit refresh and while each stack trace was different, it seems that this part is common to them all.

qbittorrent.exe!RSS::Private::Parser::parseAtomChannel+0x2b3

Stacktrace 1 ``` 0, ntoskrnl.exe!KeWaitForSingleObject+0x293d 1, ntoskrnl.exe!KeWaitForSingleObject+0x11a7 2, ntoskrnl.exe!KeWaitForSingleObject+0x9a1 3, ntoskrnl.exe!KeWaitForSingleObject+0x2b8 4, ntoskrnl.exe!KeCheckProcessorGroupAffinity+0xb64 5, ntoskrnl.exe!KeWaitForSingleObject+0x2a3e 6, ntoskrnl.exe!KeSynchronizeExecution+0x25f3 7, qbittorrent.exe!RSS::Private::Parser::parseAtomArticle+0x9b6 8, qbittorrent.exe!RSS::Private::Parser::parseAtomChannel+0x2b3 9, qbittorrent.exe!RSS::Private::Parser::parse_impl+0xfe 10, qbittorrent.exe!QMetaCallEvent::placeMetaCall+0x7a 11, qbittorrent.exe!QObject::event+0xd3 12, qbittorrent.exe!QApplicationPrivate::notify_helper+0x14b 13, qbittorrent.exe!QApplication::notify+0x1ab3 14, qbittorrent.exe!Application::notify+0x20 15, qbittorrent.exe!QCoreApplication::notifyInternal2+0xbf 16, qbittorrent.exe!QCoreApplicationPrivate::sendPostedEvents+0x223 17, qbittorrent.exe!qt_internal_proc+0x3cc 18, user32.dll!CallWindowProcW+0x4d0 19, user32.dll!DispatchMessageW+0x1af 20, qbittorrent.exe!QEventDispatcherWin32::processEvents+0x469 21, qbittorrent.exe!QEventLoop::exec+0x112 22, qbittorrent.exe!QThread::run+0x8e 23, qbittorrent.exe!QThreadPrivate::start+0xda 24, qbittorrent.exe!thread_start+0x50 25, kernel32.dll+0x12774 26, ntdll.dll+0x70d51 ```
Stacktrace 2 ``` 0, ntoskrnl.exe!KeWaitForSingleObject+0x293d 1, ntoskrnl.exe!KeWaitForSingleObject+0x11a7 2, ntoskrnl.exe!KeWaitForSingleObject+0x9a1 3, ntoskrnl.exe!KeWaitForSingleObject+0x2b8 4, ntoskrnl.exe!KeCheckProcessorGroupAffinity+0xb64 5, ntoskrnl.exe!KeWaitForSingleObject+0x2a3e 6, ntoskrnl.exe!KeSynchronizeExecution+0x25f3 7, qbittorrent.exe!QHash::detach+0x1c 8, qbittorrent.exe!QHash::operator[]+0x2d 9, qbittorrent.exe!RSS::Private::Parser::parseAtomArticle+0x9e5 10, qbittorrent.exe!RSS::Private::Parser::parseAtomChannel+0x2b3 11, qbittorrent.exe!RSS::Private::Parser::parse_impl+0xfe 12, qbittorrent.exe!QMetaCallEvent::placeMetaCall+0x7a 13, qbittorrent.exe!QObject::event+0xd3 14, qbittorrent.exe!QApplicationPrivate::notify_helper+0x14b 15, qbittorrent.exe!QApplication::notify+0x1ab3 16, qbittorrent.exe!Application::notify+0x20 17, qbittorrent.exe!QCoreApplication::notifyInternal2+0xbf 18, qbittorrent.exe!QCoreApplicationPrivate::sendPostedEvents+0x223 19, qbittorrent.exe!qt_internal_proc+0x3cc 20, user32.dll!CallWindowProcW+0x4d0 21, user32.dll!DispatchMessageW+0x1af 22, qbittorrent.exe!QEventDispatcherWin32::processEvents+0x469 23, qbittorrent.exe!QEventLoop::exec+0x112 24, qbittorrent.exe!QThread::run+0x8e 25, qbittorrent.exe!QThreadPrivate::start+0xda 26, qbittorrent.exe!thread_start+0x50 27, kernel32.dll+0x12774 28, ntdll.dll+0x70d51 ```
Stacktrace 3 ``` 0, ntoskrnl.exe!KeWaitForSingleObject+0x293d 1, ntoskrnl.exe!KeSynchronizeExecution+0x25f3 2, qbittorrent.exe!__chkstk+0x4 3, qbittorrent.exe!qt_from_latin1+0x434 4, qbittorrent.exe!operator==+0x5a 5, qbittorrent.exe!RSS::Private::Parser::parseAtomArticle+0x996 6, qbittorrent.exe!RSS::Private::Parser::parseAtomChannel+0x2b3 7, qbittorrent.exe!RSS::Private::Parser::parse_impl+0xfe 8, qbittorrent.exe!QMetaCallEvent::placeMetaCall+0x7a 9, qbittorrent.exe!QObject::event+0xd3 10, qbittorrent.exe!QApplicationPrivate::notify_helper+0x14b 11, qbittorrent.exe!QApplication::notify+0x1ab3 12, qbittorrent.exe!Application::notify+0x20 13, qbittorrent.exe!QCoreApplication::notifyInternal2+0xbf 14, qbittorrent.exe!QCoreApplicationPrivate::sendPostedEvents+0x223 15, qbittorrent.exe!qt_internal_proc+0x3cc 16, user32.dll!CallWindowProcW+0x4d0 17, user32.dll!DispatchMessageW+0x1af 18, qbittorrent.exe!QEventDispatcherWin32::processEvents+0x469 19, qbittorrent.exe!QEventLoop::exec+0x112 20, qbittorrent.exe!QThread::run+0x8e 21, qbittorrent.exe!QThreadPrivate::start+0xda 22, qbittorrent.exe!thread_start+0x50 23, kernel32.dll+0x12774 24, ntdll.dll+0x70d51 ```
Stacktrace 4 ``` 0, ntoskrnl.exe!KeWaitForSingleObject+0x293d 1, ntoskrnl.exe!KeWaitForSingleObject+0x11a7 2, ntoskrnl.exe!KeWaitForSingleObject+0x9a1 3, ntoskrnl.exe!KeWaitForSingleObject+0x2b8 4, ntoskrnl.exe!KeCheckProcessorGroupAffinity+0xb64 5, ntoskrnl.exe!KeWaitForSingleObject+0x2a3e 6, ntoskrnl.exe!KeSynchronizeExecution+0x25f3 7, qbittorrent.exe!__chkstk 8, qbittorrent.exe!QVector::reallocData+0xf93 9, qbittorrent.exe!qt_from_latin1+0x5af 10, qbittorrent.exe!operator==+0x5a 11, qbittorrent.exe!RSS::Private::Parser::parseAtomArticle+0x996 12, qbittorrent.exe!RSS::Private::Parser::parseAtomChannel+0x2b3 13, qbittorrent.exe!RSS::Private::Parser::parse_impl+0xfe 14, qbittorrent.exe!QMetaCallEvent::placeMetaCall+0x7a 15, qbittorrent.exe!QObject::event+0xd3 16, qbittorrent.exe!QApplicationPrivate::notify_helper+0x14b 17, qbittorrent.exe!QApplication::notify+0x1ab3 18, qbittorrent.exe!Application::notify+0x20 19, qbittorrent.exe!QCoreApplication::notifyInternal2+0xbf 20, qbittorrent.exe!QCoreApplicationPrivate::sendPostedEvents+0x223 21, qbittorrent.exe!qt_internal_proc+0x3cc 22, user32.dll!CallWindowProcW+0x4d0 23, user32.dll!DispatchMessageW+0x1af 24, qbittorrent.exe!QEventDispatcherWin32::processEvents+0x469 25, qbittorrent.exe!QEventLoop::exec+0x112 26, qbittorrent.exe!QThread::run+0x8e 27, qbittorrent.exe!QThreadPrivate::start+0xda 28, qbittorrent.exe!thread_start+0x50 29, kernel32.dll+0x12774 30, ntdll.dll+0x70d51 ```
CeruleanSky commented 6 years ago

I also finished getting windbg installed and working with |* ~* kp

Should be a bit more helpful, here is that 0x2b3 line referenced above:

qbittorrent!RSS::Private::Parser::parseAtomChannel(class QXmlStreamReader * xml = 0x000000a2`d3bfbc08)+0x2b3 [g:\qbittorrent\qbittorrent-4.0.0\src\base\rss\private\rss_parser.cpp @ 438]

Just the thread above:

``` 8 Id: 2c60.2750 Suspend: 1 Teb: 000000a2`cebe6000 Unfrozen # Child-SP RetAddr Call Site 00 000000a2`d3bfb5d8 00007ff6`7cee732b qbittorrent!__chkstk(void) 01 000000a2`d3bfb5e0 00007ff6`7c589af3 qbittorrent!qHashBits+0x2b 02 (Inline Function) --------`-------- qbittorrent!QHash::findNode+0xe [g:\qbittorrent\install_msvc64\qt5\include\qtcore\qhash.h @ 923] 03 000000a2`d3bfb600 00007ff6`7c60a46d qbittorrent!QHash::operator[](class QString * akey = 0x00007ff6`7daf43e0)+0x3b [g:\qbittorrent\install_msvc64\qt5\include\qtcore\qhash.h @ 747] 04 000000a2`d3bfb660 00007ff6`7c60aaa3 qbittorrent!RSS::Private::Parser::parseAtomArticle(class QXmlStreamReader * xml = 0x000000a2`d3bfbc08)+0x9e5 [g:\qbittorrent\qbittorrent-4.0.0\src\base\rss\private\rss_parser.cpp @ 415] 05 000000a2`d3bfba90 00007ff6`7c608aa6 qbittorrent!RSS::Private::Parser::parseAtomChannel(class QXmlStreamReader * xml = 0x000000a2`d3bfbc08)+0x2b3 [g:\qbittorrent\qbittorrent-4.0.0\src\base\rss\private\rss_parser.cpp @ 438] 06 000000a2`d3bfbb40 00007ff6`7ce9b552 qbittorrent!RSS::Private::Parser::parse_impl(class QByteArray * feedData = )+0xfe [g:\qbittorrent\qbittorrent-4.0.0\src\base\rss\private\rss_parser.cpp @ 252] 07 000000a2`d3bfbbf0 00007ff6`7ce9c087 qbittorrent!QMetaCallEvent::placeMetaCall+0x7a 08 000000a2`d3bfbc30 00007ff6`7ca514ff qbittorrent!QObject::event+0xd3 09 000000a2`d3bfbd90 00007ff6`7ca50e27 qbittorrent!QApplicationPrivate::notify_helper+0x14b 0a 000000a2`d3bfbdc0 00007ff6`7c57d750 qbittorrent!QApplication::notify+0x1ab3 0b 000000a2`d3bfc370 00007ff6`7ced4b77 qbittorrent!Application::notify(class QObject * receiver = 0x000001b1`90bdf8f0, class QEvent * event = 0x00000000`00000000)+0x20 [g:\qbittorrent\qbittorrent-4.0.0\src\app\application.cpp @ 585] 0c 000000a2`d3bfc3e0 00007ff6`7ced5487 qbittorrent!QCoreApplication::notifyInternal2+0xbf 0d 000000a2`d3bfc460 00007ff6`7cfaf1ec qbittorrent!QCoreApplicationPrivate::sendPostedEvents+0x223 0e 000000a2`d3bfc510 00007ffa`dde9bc50 qbittorrent!qt_internal_proc+0x3cc 0f 000000a2`d3bfc640 00007ffa`dde9b5cf USER32!UserCallWinProcCheckWow+0x280 10 000000a2`d3bfc7a0 00007ff6`7cfb038d USER32!DispatchMessageWorker+0x19f 11 000000a2`d3bfc820 00007ff6`7cfb66e2 qbittorrent!QEventDispatcherWin32::processEvents+0x469 12 000000a2`d3bffbe0 00007ff6`7cf65772 qbittorrent!QEventLoop::exec+0x112 13 000000a2`d3bffc50 00007ff6`7cf0381a qbittorrent!QThread::run+0x8e 14 000000a2`d3bffca0 00007ff6`7d081104 qbittorrent!QThreadPrivate::start+0xda 15 (Inline Function) --------`-------- qbittorrent!invoke_thread_procedure+0xd [minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 91] 16 000000a2`d3bffce0 00007ffa`e08b2774 qbittorrent!thread_start

Everything:

``` (2c60.16cc): Break instruction exception - code 80000003 (first chance) No .natvis files found at C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\Visualizers. No .natvis files found at C:\Users\admin1\AppData\Local\Dbg\Visualizers. ntdll!DbgBreakPoint: 00007ffa`e09f8d60 cc int 3 0:020> |* ~* kp 0 Id: 2c60.214c Suspend: 1 Teb: 000000a2`cebd4000 Unfrozen # Child-SP RetAddr Call Site 00 000000a2`cf3ff188 00007ffa`dd8a988f ntdll!NtWaitForSingleObject+0x14 *** WARNING: Unable to verify checksum for C:\Program Files (x86)\qBittorrent\qbittorrent.exe 01 000000a2`cf3ff190 00007ff6`7cf03d42 KERNELBASE!WaitForSingleObjectEx+0x9f 02 000000a2`cf3ff230 00007ff6`7c5fcc86 qbittorrent!QThread::wait+0xde 03 000000a2`cf3ff2b0 00007ff6`7c5fcc1d qbittorrent!RSS::Session::~Session(void)+0x46 [g:\qbittorrent\qbittorrent-4.0.0\src\base\rss\rss_session.cpp @ 112] 04 000000a2`cf3ff2f0 00007ff6`7c57de54 qbittorrent!RSS::Session::`scalar deleting destructor'(void)+0x1d 05 000000a2`cf3ff320 00007ff6`7c721bf1 qbittorrent!Application::cleanup(void)+0x254 [g:\qbittorrent\qbittorrent-4.0.0\src\app\application.cpp @ 696] 06 000000a2`cf3ff3c0 00007ff6`7cea0a00 qbittorrent!Application::qt_static_metacall(class QObject * _o = , QMetaObject::Call _c = , int _id = , void ** _a = )+0x51 [g:\qbittorrent\build-qbittorrent400-qt5_msvc2017_x64-release\src\release\moc_application.cpp @ 95] 07 000000a2`cf3ff3f0 00007ff6`7ced7bfd qbittorrent!QMetaObject::activate+0x588 08 000000a2`cf3ff510 00007ff6`7c57d3ea qbittorrent!QCoreApplication::aboutToQuit+0x35 09 000000a2`cf3ff550 00007ff6`7c588a52 qbittorrent!Application::exec(class QStringList * params = )+0x5a6 [g:\qbittorrent\qbittorrent-4.0.0\src\app\application.cpp @ 530] 0a 000000a2`cf3ff650 00007ff6`7d059913 qbittorrent!main(int argc = 0n1, char ** argv = 0x000001b1`8dd1d920)+0x6ae [g:\qbittorrent\qbittorrent-4.0.0\src\app\main.cpp @ 263] 0b 000000a2`cf3ffa40 00007ff6`7d0744c3 qbittorrent!WinMain+0x123 0c (Inline Function) --------`-------- qbittorrent!invoke_main+0x21 [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 102] 0d 000000a2`cf3ffac0 00007ffa`e08b2774 qbittorrent!__scrt_common_main_seh(void)+0x117 [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl @ 283] 0e 000000a2`cf3ffb00 00007ffa`e09c0d51 KERNEL32!BaseThreadInitThunk+0x14 0f 000000a2`cf3ffb30 00000000`00000000 ntdll!RtlUserThreadStart+0x21 1 Id: 2c60.5a8 Suspend: 1 Teb: 000000a2`cebd6000 Unfrozen # Child-SP RetAddr Call Site 00 000000a2`cfbffba8 00007ffa`dd8a988f ntdll!NtWaitForSingleObject+0x14 *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\AppPatch\AppPatch64\EMET64.dll - 01 000000a2`cfbffbb0 00007ffa`bf1f8b42 KERNELBASE!WaitForSingleObjectEx+0x9f 02 000000a2`cfbffc50 00007ffa`bf1b67c9 EMET64!EMETSendCert+0x3582 03 000000a2`cfbffc80 00007ffa`e08b2774 EMET64+0x467c9 04 000000a2`cfbffcb0 00007ffa`e09c0d51 KERNEL32!BaseThreadInitThunk+0x14 05 000000a2`cfbffce0 00000000`00000000 ntdll!RtlUserThreadStart+0x21 2 Id: 2c60.313c Suspend: 1 Teb: 000000a2`cebd8000 Unfrozen # Child-SP RetAddr Call Site 00 000000a2`d03fc658 00007ffa`dd8bdd20 ntdll!NtWaitForMultipleObjects+0x14 01 000000a2`d03fc660 00007ffa`ddeafa60 KERNELBASE!WaitForMultipleObjectsEx+0xf0 02 000000a2`d03fc960 00007ff6`7cfb0428 USER32!RealMsgWaitForMultipleObjectsEx+0x160 03 000000a2`d03fca50 00007ff6`7cfb66e2 qbittorrent!QEventDispatcherWin32::processEvents+0x504 04 000000a2`d03ffe10 00007ff6`7cf65772 qbittorrent!QEventLoop::exec+0x112 05 000000a2`d03ffe80 00007ff6`7cf0381a qbittorrent!QThread::run+0x8e 06 000000a2`d03ffed0 00007ff6`7d081104 qbittorrent!QThreadPrivate::start+0xda 07 (Inline Function) --------`-------- qbittorrent!invoke_thread_procedure+0xd [minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 91] 08 000000a2`d03fff10 00007ffa`e08b2774 qbittorrent!thread_start::run(void)+0x30 [g:\qbittorrent\boost_1_65_1\boost\asio\detail\win_thread.hpp @ 118] 04 000000a2`d13ff7c0 00007ff6`7d081104 qbittorrent!boost::asio::detail::win_thread_function(void * arg = 0x000001b1`8dd7c770)+0x38 [g:\qbittorrent\boost_1_65_1\boost\asio\detail\impl\win_thread.ipp @ 120] 05 (Inline Function) --------`-------- qbittorrent!invoke_thread_procedure+0xd [minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 91] 06 000000a2`d13ff800 00007ffa`e08b2774 qbittorrent!thread_start::run(void)+0x30 [g:\qbittorrent\boost_1_65_1\boost\asio\detail\win_thread.hpp @ 118] 07 000000a2`d23ffa30 00007ff6`7d081104 qbittorrent!boost::asio::detail::win_thread_function(void * arg = 0x000001b1`8fce9960)+0x38 [g:\qbittorrent\boost_1_65_1\boost\asio\detail\impl\win_thread.ipp @ 120] 08 (Inline Function) --------`-------- qbittorrent!invoke_thread_procedure+0xd [minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 91] 09 000000a2`d23ffa70 00007ffa`e08b2774 qbittorrent!thread_start::findNode+0xe [g:\qbittorrent\install_msvc64\qt5\include\qtcore\qhash.h @ 923] 03 000000a2`d3bfb600 00007ff6`7c60a46d qbittorrent!QHash::operator[](class QString * akey = 0x00007ff6`7daf43e0)+0x3b [g:\qbittorrent\install_msvc64\qt5\include\qtcore\qhash.h @ 747] 04 000000a2`d3bfb660 00007ff6`7c60aaa3 qbittorrent!RSS::Private::Parser::parseAtomArticle(class QXmlStreamReader * xml = 0x000000a2`d3bfbc08)+0x9e5 [g:\qbittorrent\qbittorrent-4.0.0\src\base\rss\private\rss_parser.cpp @ 415] 05 000000a2`d3bfba90 00007ff6`7c608aa6 qbittorrent!RSS::Private::Parser::parseAtomChannel(class QXmlStreamReader * xml = 0x000000a2`d3bfbc08)+0x2b3 [g:\qbittorrent\qbittorrent-4.0.0\src\base\rss\private\rss_parser.cpp @ 438] 06 000000a2`d3bfbb40 00007ff6`7ce9b552 qbittorrent!RSS::Private::Parser::parse_impl(class QByteArray * feedData = )+0xfe [g:\qbittorrent\qbittorrent-4.0.0\src\base\rss\private\rss_parser.cpp @ 252] 07 000000a2`d3bfbbf0 00007ff6`7ce9c087 qbittorrent!QMetaCallEvent::placeMetaCall+0x7a 08 000000a2`d3bfbc30 00007ff6`7ca514ff qbittorrent!QObject::event+0xd3 09 000000a2`d3bfbd90 00007ff6`7ca50e27 qbittorrent!QApplicationPrivate::notify_helper+0x14b 0a 000000a2`d3bfbdc0 00007ff6`7c57d750 qbittorrent!QApplication::notify+0x1ab3 0b 000000a2`d3bfc370 00007ff6`7ced4b77 qbittorrent!Application::notify(class QObject * receiver = 0x000001b1`90bdf8f0, class QEvent * event = 0x00000000`00000000)+0x20 [g:\qbittorrent\qbittorrent-4.0.0\src\app\application.cpp @ 585] 0c 000000a2`d3bfc3e0 00007ff6`7ced5487 qbittorrent!QCoreApplication::notifyInternal2+0xbf 0d 000000a2`d3bfc460 00007ff6`7cfaf1ec qbittorrent!QCoreApplicationPrivate::sendPostedEvents+0x223 0e 000000a2`d3bfc510 00007ffa`dde9bc50 qbittorrent!qt_internal_proc+0x3cc 0f 000000a2`d3bfc640 00007ffa`dde9b5cf USER32!UserCallWinProcCheckWow+0x280 10 000000a2`d3bfc7a0 00007ff6`7cfb038d USER32!DispatchMessageWorker+0x19f 11 000000a2`d3bfc820 00007ff6`7cfb66e2 qbittorrent!QEventDispatcherWin32::processEvents+0x469 12 000000a2`d3bffbe0 00007ff6`7cf65772 qbittorrent!QEventLoop::exec+0x112 13 000000a2`d3bffc50 00007ff6`7cf0381a qbittorrent!QThread::run+0x8e 14 000000a2`d3bffca0 00007ff6`7d081104 qbittorrent!QThreadPrivate::start+0xda 15 (Inline Function) --------`-------- qbittorrent!invoke_thread_procedure+0xd [minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 91] 16 000000a2`d3bffce0 00007ffa`e08b2774 qbittorrent!thread_start * ops = 0x000000a2`d63ffad8)+0x2fa [g:\qbittorrent\boost_1_65_1\boost\asio\detail\impl\select_reactor.ipp @ 219] 06 (Inline Function) --------`-------- qbittorrent!boost::asio::detail::select_reactor::run_thread+0x43 [g:\qbittorrent\boost_1_65_1\boost\asio\detail\impl\select_reactor.ipp @ 261] 07 000000a2`d63ffaa0 00007ff6`7c748348 qbittorrent!boost::asio::detail::select_reactor::call_run_thread(class boost::asio::detail::select_reactor * reactor = 0x000001b1`8dd83790)+0x68 [g:\qbittorrent\boost_1_65_1\boost\asio\detail\impl\select_reactor.ipp @ 269] 08 000000a2`d63ffb00 00007ff6`7d081104 qbittorrent!boost::asio::detail::win_thread_function(void * arg = 0x000001b1`8dd614a0)+0x38 [g:\qbittorrent\boost_1_65_1\boost\asio\detail\impl\win_thread.ipp @ 120] 09 (Inline Function) --------`-------- qbittorrent!invoke_thread_procedure+0xd [minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 91] 0a 000000a2`d63ffb40 00007ffa`e08b2774 qbittorrent!thread_start * l = 0x000000a2`d73ffa88)+0x3e [g:\qbittorrent\libtorrent\src\thread.cpp @ 126] 03 000000a2`d73ffa60 00007ff6`7c82677f qbittorrent!libtorrent::disk_io_thread::thread_fun(int thread_id = 0n0, libtorrent::disk_io_thread::thread_type_t type = generic_thread (0n0), class boost::shared_ptr * w = 0x000000a2`d73ffb30)+0xa9 [g:\qbittorrent\libtorrent\src\disk_io_thread.cpp @ 3264] 04 (Inline Function) --------`-------- qbittorrent!boost::_mfi::mf3 >::operator()+0x2b [g:\qbittorrent\boost_1_65_1\boost\bind\mem_fn_template.hpp @ 393] 05 (Inline Function) --------`-------- qbittorrent!boost::_bi::list4,boost::_bi::value,boost::_bi::value,boost::_bi::value > >::operator()+0x67 [g:\qbittorrent\boost_1_65_1\boost\bind\bind.hpp @ 463] 06 (Inline Function) --------`-------- qbittorrent!boost::_bi::bind_t >,boost::_bi::list4,boost::_bi::value,boost::_bi::value,boost::_bi::value > > >::operator()+0x67 [g:\qbittorrent\boost_1_65_1\boost\bind\bind.hpp @ 1294] 07 000000a2`d73ffaf0 00007ff6`7c748348 qbittorrent!boost::asio::detail::win_thread::func >,boost::_bi::list4,boost::_bi::value,boost::_bi::value,boost::_bi::value > > > >::run(void)+0x87 [g:\qbittorrent\boost_1_65_1\boost\asio\detail\win_thread.hpp @ 118] 08 000000a2`d73ffb50 00007ff6`7d081104 qbittorrent!boost::asio::detail::win_thread_function(void * arg = 0x000001b1`90a21800)+0x38 [g:\qbittorrent\boost_1_65_1\boost\asio\detail\impl\win_thread.ipp @ 120] 09 (Inline Function) --------`-------- qbittorrent!invoke_thread_procedure+0xd [minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 91] 0a 000000a2`d73ffb90 00007ffa`e08b2774 qbittorrent!thread_start * l = 0x000000a2`d7bffae8)+0x3e [g:\qbittorrent\libtorrent\src\thread.cpp @ 126] 03 000000a2`d7bffac0 00007ff6`7c82677f qbittorrent!libtorrent::disk_io_thread::thread_fun(int thread_id = 0n1, libtorrent::disk_io_thread::thread_type_t type = generic_thread (0n0), class boost::shared_ptr * w = 0x000000a2`d7bffb90)+0xa9 [g:\qbittorrent\libtorrent\src\disk_io_thread.cpp @ 3264] 04 (Inline Function) --------`-------- qbittorrent!boost::_mfi::mf3 >::operator()+0x2b [g:\qbittorrent\boost_1_65_1\boost\bind\mem_fn_template.hpp @ 393] 05 (Inline Function) --------`-------- qbittorrent!boost::_bi::list4,boost::_bi::value,boost::_bi::value,boost::_bi::value > >::operator()+0x67 [g:\qbittorrent\boost_1_65_1\boost\bind\bind.hpp @ 463] 06 (Inline Function) --------`-------- qbittorrent!boost::_bi::bind_t >,boost::_bi::list4,boost::_bi::value,boost::_bi::value,boost::_bi::value > > >::operator()+0x67 [g:\qbittorrent\boost_1_65_1\boost\bind\bind.hpp @ 1294] 07 000000a2`d7bffb50 00007ff6`7c748348 qbittorrent!boost::asio::detail::win_thread::func >,boost::_bi::list4,boost::_bi::value,boost::_bi::value,boost::_bi::value > > > >::run(void)+0x87 [g:\qbittorrent\boost_1_65_1\boost\asio\detail\win_thread.hpp @ 118] 08 000000a2`d7bffbb0 00007ff6`7d081104 qbittorrent!boost::asio::detail::win_thread_function(void * arg = 0x000001b1`8dc9e5e0)+0x38 [g:\qbittorrent\boost_1_65_1\boost\asio\detail\impl\win_thread.ipp @ 120] 09 (Inline Function) --------`-------- qbittorrent!invoke_thread_procedure+0xd [minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 91] 0a 000000a2`d7bffbf0 00007ffa`e08b2774 qbittorrent!thread_start * l = 0x000000a2`d83ffbc8)+0x3e [g:\qbittorrent\libtorrent\src\thread.cpp @ 126] 03 000000a2`d83ffba0 00007ff6`7c82677f qbittorrent!libtorrent::disk_io_thread::thread_fun(int thread_id = 0n2, libtorrent::disk_io_thread::thread_type_t type = generic_thread (0n0), class boost::shared_ptr * w = 0x000000a2`d83ffc70)+0xa9 [g:\qbittorrent\libtorrent\src\disk_io_thread.cpp @ 3264] 04 (Inline Function) --------`-------- qbittorrent!boost::_mfi::mf3 >::operator()+0x2b [g:\qbittorrent\boost_1_65_1\boost\bind\mem_fn_template.hpp @ 393] 05 (Inline Function) --------`-------- qbittorrent!boost::_bi::list4,boost::_bi::value,boost::_bi::value,boost::_bi::value > >::operator()+0x67 [g:\qbittorrent\boost_1_65_1\boost\bind\bind.hpp @ 463] 06 (Inline Function) --------`-------- qbittorrent!boost::_bi::bind_t >,boost::_bi::list4,boost::_bi::value,boost::_bi::value,boost::_bi::value > > >::operator()+0x67 [g:\qbittorrent\boost_1_65_1\boost\bind\bind.hpp @ 1294] 07 000000a2`d83ffc30 00007ff6`7c748348 qbittorrent!boost::asio::detail::win_thread::func >,boost::_bi::list4,boost::_bi::value,boost::_bi::value,boost::_bi::value > > > >::run(void)+0x87 [g:\qbittorrent\boost_1_65_1\boost\asio\detail\win_thread.hpp @ 118] 08 000000a2`d83ffc90 00007ff6`7d081104 qbittorrent!boost::asio::detail::win_thread_function(void * arg = 0x000001b1`8dc9e2e0)+0x38 [g:\qbittorrent\boost_1_65_1\boost\asio\detail\impl\win_thread.ipp @ 120] 09 (Inline Function) --------`-------- qbittorrent!invoke_thread_procedure+0xd [minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 91] 0a 000000a2`d83ffcd0 00007ffa`e08b2774 qbittorrent!thread_start * l = 0x000000a2`d8bff8a8)+0x3e [g:\qbittorrent\libtorrent\src\thread.cpp @ 126] 03 000000a2`d8bff880 00007ff6`7c82677f qbittorrent!libtorrent::disk_io_thread::thread_fun(int thread_id = 0n3, libtorrent::disk_io_thread::thread_type_t type = hasher_thread (0n1), class boost::shared_ptr * w = 0x000000a2`d8bff950)+0x12d [g:\qbittorrent\libtorrent\src\disk_io_thread.cpp @ 3281] 04 (Inline Function) --------`-------- qbittorrent!boost::_mfi::mf3 >::operator()+0x2b [g:\qbittorrent\boost_1_65_1\boost\bind\mem_fn_template.hpp @ 393] 05 (Inline Function) --------`-------- qbittorrent!boost::_bi::list4,boost::_bi::value,boost::_bi::value,boost::_bi::value > >::operator()+0x67 [g:\qbittorrent\boost_1_65_1\boost\bind\bind.hpp @ 463] 06 (Inline Function) --------`-------- qbittorrent!boost::_bi::bind_t >,boost::_bi::list4,boost::_bi::value,boost::_bi::value,boost::_bi::value > > >::operator()+0x67 [g:\qbittorrent\boost_1_65_1\boost\bind\bind.hpp @ 1294] 07 000000a2`d8bff910 00007ff6`7c748348 qbittorrent!boost::asio::detail::win_thread::func >,boost::_bi::list4,boost::_bi::value,boost::_bi::value,boost::_bi::value > > > >::run(void)+0x87 [g:\qbittorrent\boost_1_65_1\boost\asio\detail\win_thread.hpp @ 118] 08 000000a2`d8bff970 00007ff6`7d081104 qbittorrent!boost::asio::detail::win_thread_function(void * arg = 0x000001b1`8dc9e3a0)+0x38 [g:\qbittorrent\boost_1_65_1\boost\asio\detail\impl\win_thread.ipp @ 120] 09 (Inline Function) --------`-------- qbittorrent!invoke_thread_procedure+0xd [minkernel\crts\ucrt\src\appcrt\startup\thread.cpp @ 91] 0a 000000a2`d8bff9b0 00007ffa`e08b2774 qbittorrent!thread_start
sledgehammer999 commented 6 years ago

@glassez this performance issues seem related to RSS. Care to take a look? (see stracktraces above)

@CeruleanSky thanks, those seem helpful now.

CeruleanSky commented 6 years ago

I started experimenting with what feeds cause a failure and tried some external ones I use with other apps. While not containing torrents, this feed worked with the old parser showing all the articles. It seems to run indefinitely with the new parser.

Getting this to work again and show the articles like the old parser did would help with feeds where not every one has a torrent, such as those that mix posts and torrents, or other irregular torrent feeds causing issues, like if a search for torrents is no longer returning torrents.

https://www.reddit.com/.rss

https://www.youtube.com/feeds/videos.xml?channel_id=UCzQUP1qoWDoEbmsQxvdjxgQ

PinaColonic commented 6 years ago

Do you use an IP filtlist? I was seeing incredibly high CPU and problems starting qbit on Linux until I disabled it with 4.0. Definitely something broken there on Linux...

glassez commented 6 years ago

Working on it...

CeruleanSky commented 6 years ago

@PinaColonic As far as I can tell I am not having any issues with using a IP filterlist and cpu usage. Might want to get a backtrace of the high cpu thread. After it is launched and attached and you ensure you have debug symbols installed, braakpoint In gdb run thread apply all bt. Probably best to open another ticket for that issue or see if one exists.

@glassez Thank you, let me know if there is anything else I can do to help.

gndqb commented 6 years ago

Did some testing with disabling RSS. If I disable RSS (untick fetching and auto-downloading in Options/RSS), and then end task in task manager (because it doesn't end by exit), then after restart QBT has normal cpu usage of cca 1-2% cpu.

Then I go to Options/RSS, and enable RSS (fetching and auto DL). Immediately RSS updates, new torrents are added, and CPU jumps to 50-55%, and RSS freezes. Looking at RSS list, frozen icons are on Demonoid rss, all others have regular icons. CPU is locked on cca 55%.

I hit Update All, and all RSS icons freeze (grey circles not moving). CPU stays on 55%. RSS not updating anymore after that.

connected to this: https://github.com/qbittorrent/qBittorrent/issues/7751

glassez commented 6 years ago

frozen icons ate on Demonoid rss

Please provide affected feed URL.

MithranArkanere commented 6 years ago

As far as I can tell, the problem only happens with Atom feeds.

After using a tool such as this one: http://feedmix.novaclic.com/atom2rss.php To convert the feed, the problem no longer happened.

glassez commented 6 years ago

The problem is already located, the fix coming soon.

https://www.youtube.com/feeds/videos.xml?channel_id=UCzQUP1qoWDoEbmsQxvdjxgQ

This has another kind of issue. Can someone confirm this feed works correctly in v3.3.x?

CeruleanSky commented 6 years ago

This has another kind of issue. Can someone confirm this feed works correctly in v3.3.x?

Tried the youtube and reddit feeds in qbittorrent 3.3.16

  1. Name of feed and icon updated properly
  2. Items loaded
  3. Content, images, date, author, info looks fine and links work
  4. "Open News Url" right click function takes you to the proper url

PowerfulJre Youtube Channel Feed

Reddit rss

CeruleanSky commented 6 years ago

Can confirm that qBittorrent 4.0.2 win x64 fixes all the issues with the cpu usage I had.
All rss feeds work, at least of mine, loading properly. qBittorrent terminates after closing the window within a very short time.

Thank you.

technicalzero commented 6 years ago

I'm still having the issue described in #7873 - any advice?