qBittorrent icon indicating copy to clipboard operation
qBittorrent copied to clipboard

Crash Report. 20th+ crash of the day. Crashes every 5-60 min.

Open Quest79 opened this issue 2 years ago • 24 comments

qBittorrent & operating system versions

qBittorrent version: v4.4.2 (64-bit) Libtorrent version: 2.0.5.0 Qt version: 5.15.2 Boost version: 1.78.0 OpenSSL version: 1.1.1n zlib version: 1.2.11 OS version: Windows 10 Version 2009 10.0.22000 x86_64 (This is windows 11 why is this app reporting windows 10?)

Caught signal: SIGABRT

What is the problem?

qBittorrent has crashed Please file a bug report at http://bugs.qbittorrent.org and provide the following information:

qBittorrent version: v4.4.2 (64-bit) Libtorrent version: 2.0.5.0 Qt version: 5.15.2 Boost version: 1.78.0 OpenSSL version: 1.1.1n zlib version: 1.2.11 OS version: Windows 10 Version 2009 10.0.22000 x86_64

Caught signal: SIGABRT

#  0 qbittorrent.exe      0x00007ff61e1499ec straceWin::getBacktrace()[ app\stacktrace_win.h : 220 ]
#  1 qbittorrent.exe      0x00007ff61e14ab6b sigAbnormalHandler(signum)[ app\main.cpp : 368 ]
#  2 qbittorrent.exe      0x00007ff61ef7a365 raise(signum)[ minkernel\crts\ucrt\src\appcrt\misc\signal.cpp : 541 ]
#  3 qbittorrent.exe      0x00007ff61ef86a94 abort()[ minkernel\crts\ucrt\src\appcrt\startup\abort.cpp : 64 ]
#  4 qbittorrent.exe      0x00007ff61ef7dd73 terminate()[ minkernel\crts\ucrt\src\appcrt\misc\terminate.cpp : 58 ]
#  5 qbittorrent.exe      0x00007ff61ef551b7 __scrt_unhandled_exception_filter(pointers)[ d:\agent\_work\1\s\src\vctools\crt\vcstartup\src\utility\utility_desktop.cpp : 91 ]
#  6 KERNELBASE.dll       0x00007ffb5f236391 UnhandledExceptionFilter()
#  7 ntdll.dll            0x00007ffb617aaeec memset()
#  8 ntdll.dll            0x00007ffb61793eb6 _C_specific_handler()
#  9 ntdll.dll            0x00007ffb617a8e4f _chkstk()
# 10 ntdll.dll            0x00007ffb61735e9a RtlRestoreContext()
# 11 ntdll.dll            0x00007ffb61733163 RtlRaiseException()
# 12 KERNELBASE.dll       0x00007ffb5f13474c RaiseException()
# 13 qbittorrent.exe      0x00007ff61ef73611 _CxxThrowException(pExceptionObject, pThrowInfo)[ d:\agent\_work\1\s\src\vctools\crt\vcruntime\src\eh\throw.cpp : 129 ]
# 14 qbittorrent.exe      0x00007ff61e14279b boost::throw_exception(e)[ g:\qbittorrent\boost_1_78_0\boost\throw_exception.hpp : 148 ]
# 15 qbittorrent.exe      0x00007ff61e13c8ed boost::asio::detail::do_throw_error(err, location)[ g:\qbittorrent\boost_1_78_0\boost\asio\detail\impl\throw_error.ipp : 38 ]
# 16 qbittorrent.exe      0x00007ff61e47929e boost::asio::detail::socket_select_interrupter::open_descriptors()[ g:\qbittorrent\boost_1_78_0\boost\asio\detail\impl\socket_select_interrupter.ipp : 66 ]
# 17 qbittorrent.exe      0x00007ff61e479e3e boost::asio::detail::select_reactor::run(ops, ops)[ g:\qbittorrent\boost_1_78_0\boost\asio\detail\impl\select_reactor.ipp : 266 ]
# 18 qbittorrent.exe      0x00007ff61e47a099 boost::asio::detail::select_reactor::run_thread()[ g:\qbittorrent\boost_1_78_0\boost\asio\detail\impl\select_reactor.ipp : 303 ]
# 19 qbittorrent.exe      0x00007ff61e4126cf boost::asio::detail::win_thread_function(arg)[ g:\qbittorrent\boost_1_78_0\boost\asio\detail\impl\win_thread.ipp : 119 ]
# 20 qbittorrent.exe      0x00007ff61ef864a0 thread_start(parameter, parameter)[ minkernel\crts\ucrt\src\appcrt\startup\thread.cpp : 115 ]
# 21 KERNEL32.DLL         0x00007ffb5f9154e0 BaseThreadInitThunk()
# 22 ntdll.dll            0x00007ffb6170485b RtlUserThreadStart()

Steps to reproduce

  1. Launch app
  2. wait 5-30 min
  3. another crash

Additional context

Nothing else on my system network related or otherwise is crashing (online games included). I have a feeling it is crashing every time my wifi is interrupted. So instead of just neatly allowing for sudden connection loss, it just flat out freaks out and dies? A wild guess as I have no other ideas.

This is a fresh (few days old) install of windows 11 22000.

Log(s) & preferences file(s)

No response

Quest79 avatar May 23 '22 02:05 Quest79

Logs and ini qbittorrent.zip

Quest79 avatar May 23 '22 02:05 Quest79

Looks like some network related exception is unhandled by libtorrent. @arvidn, ping!

glassez avatar May 23 '22 04:05 glassez

I have a feeling it is crashing every time my wifi is interrupted.

Similar to issues #16958, #15552 & others.

xavier2k6 avatar May 23 '22 07:05 xavier2k6

this looks like an internal boost.asio thread, and it looks like it's failing to bind a socket to the IPv4 loopback address, port 0 (which means the OS gets to pick the port).

I think this is never really expected to fail.

arvidn avatar May 23 '22 08:05 arvidn

Also I am using a VPN for qbittorent called Windscribe. Spit tunneling in inclusive mode. Not sure if this is effecting anything.

Quest79 avatar May 23 '22 09:05 Quest79

Also I am using a VPN for qbittorent called Windscribe. Spit tunneling in inclusive mode. Not sure if this is effecting anything.

I am using the exact same thing (Windscribe. Spit tunneling) and have the exact same issue.

electricmessiah avatar Jul 19 '22 17:07 electricmessiah

Can you reproduce the crash if you disable UPnP and Local service discovery from qbittorrent? If not then it may be a temporary solution till it gets fixed upstream.

ghost avatar Jul 22 '22 03:07 ghost

I don't have UPnP or local discovery enabled and still have the issue.

electricmessiah avatar Jul 22 '22 18:07 electricmessiah

Is it possible that qBt enables UPnP and LSD for a split second before loading the config and disabling it? If so, changing settings wouldn't affect this issue.

arvidn avatar Jul 23 '22 19:07 arvidn

I found this in the code. Seems like libtorrent enables those by default and qbit attempts to disable them at startup. https://github.com/qbittorrent/qBittorrent/blob/5b269a782a8adb2cf611c0f53694a2c433345673/src/base/bittorrent/session.cpp#L1379

ghost avatar Jul 24 '22 04:07 ghost

I found this in the code. Seems like libtorrent enables those by default and qbit attempts to disable them at startup.

https://github.com/qbittorrent/qBittorrent/blob/5b269a782a8adb2cf611c0f53694a2c433345673/src/base/bittorrent/session.cpp#L1379

This code looks strange to me. It just disables UPnP from the start and I can't see where it can be enabled. Doesn't qBittorrent support UPnP intentionally?

glassez avatar Jul 30 '22 16:07 glassez

I found this in the code. Seems like libtorrent enables those by default and qbit attempts to disable them at startup. https://github.com/qbittorrent/qBittorrent/blob/5b269a782a8adb2cf611c0f53694a2c433345673/src/base/bittorrent/session.cpp#L1379

This code looks strange to me. It just disables UPnP from the start and I can't see where it can be enabled. Doesn't qBittorrent support UPnP intentionally?

But at the same time there is a "UPnP lease duration" setting. Does anyone understand how it is supposed to work? @Chocobo1?

glassez avatar Jul 30 '22 16:07 glassez

I think it re-enables it here https://github.com/qbittorrent/qBittorrent/blob/746fe7ba090920878ae38622e76ca663b7387c10/src/base/bittorrent/portforwarderimpl.cpp#L96

ghost avatar Jul 30 '22 16:07 ghost

But at the same time there is a "UPnP lease duration" setting.

It's basically a way of refreshing the UPnP mapping on the router. By default qBt maps only once as a permanent lease.

ghost avatar Jul 30 '22 16:07 ghost

I think it re-enables it here

https://github.com/qbittorrent/qBittorrent/blob/746fe7ba090920878ae38622e76ca663b7387c10/src/base/bittorrent/portforwarderimpl.cpp#L96

Thanks! I completely forgot. It is I who am the author of PortForwarder abstraction (how long ago it was!). But I was really confused by the presence of "UPnP lease duration" setting in BitTorrent::Session class whereas it should be in PortForwarder. Apparently it was added by someone later.

glassez avatar Jul 30 '22 16:07 glassez

Is it possible that qBt enables UPnP and LSD for a split second before loading the config and disabling it?

qBittorrent applies settings at lt::session creation time (passing in constructor).

glassez avatar Jul 30 '22 16:07 glassez

A fix has been incorporated into asio.

ghost avatar Aug 03 '22 08:08 ghost

A fix has been incorporated into asio.

This will more than likely miss being included in upcoming Boost 1.80 release.

(libtorrent) Adhering to advise from asio maintainer may help in the interim....

xavier2k6 avatar Aug 03 '22 08:08 xavier2k6

Could someone test a build with this patch applied to libtorrent? https://github.com/arvidn/libtorrent/pull/6994

This is against libtorrent-1.2.x right now, I will forward-port it once it lands.

arvidn avatar Aug 07 '22 08:08 arvidn

Windows test build based on qBittorrent master & libtorrent upnp-select-reactor

https://github.com/xavier2k6/qBittorrent/suites/7701493068/artifacts/322063548

xavier2k6 avatar Aug 07 '22 11:08 xavier2k6

@Quest79 @electricmessiah Can you try build in https://github.com/qbittorrent/qBittorrent/issues/17082#issuecomment-1207383135 & provide feedback please?

xavier2k6 avatar Aug 09 '22 09:08 xavier2k6

@Quest79 @electricmessiah Can you try build in #17082 (comment) & provide feedback please?

I'll give it a shot.

electricmessiah avatar Aug 09 '22 15:08 electricmessiah

@xavier2k6 your build was made with a boost < 1.80, right?

arvidn avatar Aug 10 '22 05:08 arvidn

your build was made with a boost < 1.80, right?

Yes, Boost 1.79.0

upnp-selector

See workflow file: https://github.com/xavier2k6/qBittorrent/blob/da3a46c5dc07118987a256c8befc3ad52e8cfd64/.github/workflows/ci_windows.yaml

xavier2k6 avatar Aug 10 '22 08:08 xavier2k6

I suppose it doesn't hurt to land this, even if it doesn't solve the problem.

arvidn avatar Aug 14 '22 06:08 arvidn

qBt 4.4.4 has been released built against boost 1.80. So someone please check if 4.4.4 fixes your issue.

ghost avatar Aug 24 '22 04:08 ghost

@Quest79

Does newer qBittorrent v4.4.4 with boost 1.80 work fine?

PriitUring avatar Aug 28 '22 09:08 PriitUring

I will replace my current install and report back

Quest79 avatar Aug 28 '22 15:08 Quest79

@PriitUring

I was not able to catch the crash window info (it stayed up for a few sec then went away before I could copy). Here are the logs at least

Same setup as before just with the 444 1.80 version as suggested. This crash happened 6 hours into the test, so that is way better than the literal 5-30 min i was getting. I tried to manually disconnect my internet and reconnect and have the VPN reconnect to diff servers but I could not get it to crash again yet. If I do I will try to be quicker with copying the crash log window info.

qt.zip .

Quest79 avatar Aug 29 '22 00:08 Quest79

I left it up overnight with several torrents doing their thing and its still going without another crash.

Quest79 avatar Aug 29 '22 15:08 Quest79

At some point in the last 2 hours it finally crashed. Still a much better improvement.

qBittorrent version: v4.4.4 (64-bit) Libtorrent version: 2.0.7.0 Qt version: 5.15.5 Boost version: 1.80.0 OpenSSL version: 1.1.1q zlib version: 1.2.12 OS version: Windows 10 Version 2009 10.0.22000 x86_64

Caught signal: SIGABRT

#  0 qbittorrent.exe      0x00007ff62fb59dbc straceWin::getBacktrace()[ app\stacktrace_win.h : 220 ]
#  1 qbittorrent.exe      0x00007ff62fb5af4b sigAbnormalHandler(signum)[ app\main.cpp : 367 ]
#  2 qbittorrent.exe      0x00007ff6309953f3 raise(signum)[ minkernel\crts\ucrt\src\appcrt\misc\signal.cpp : 541 ]
#  3 qbittorrent.exe      0x00007ff6309a2f58 abort()[ minkernel\crts\ucrt\src\appcrt\startup\abort.cpp : 64 ]
#  4 qbittorrent.exe      0x00007ff6309994a5 terminate()[ minkernel\crts\ucrt\src\appcrt\misc\terminate.cpp : 58 ]
#  5 qbittorrent.exe      0x00007ff6309c0a1c __C_specific_handler_noexcept(ExceptionRecord, EstablisherFrame, ContextRecord, DispatcherContext)[ d:\agent\_work\2\s\src\vctools\crt\vcruntime\src\eh\chandler_noexcept.cpp : 65 ]
#  6 ntdll.dll            0x00007ffee9a68fcf _chkstk()
#  7 ntdll.dll            0x00007ffee99f5e9a RtlRestoreContext()
#  8 ntdll.dll            0x00007ffee99f3163 RtlRaiseException()
#  9 KERNELBASE.dll       0x00007ffee746474c RaiseException()
# 10 qbittorrent.exe      0x00007ff630988ed1 _CxxThrowException(pExceptionObject, pThrowInfo)[ d:\agent\_work\2\s\src\vctools\crt\vcruntime\src\eh\throw.cpp : 129 ]
# 11 qbittorrent.exe      0x00007ff62fb52923 boost::throw_exception(e)[ g:\qbittorrent\boost_1_80_0\boost\throw_exception.hpp : 157 ]
# 12 qbittorrent.exe      0x00007ff62fb4c98d boost::asio::detail::do_throw_error(err, location)[ g:\qbittorrent\boost_1_80_0\boost\asio\detail\impl\throw_error.ipp : 42 ]
# 13 qbittorrent.exe      0x00007ff62fe88b1b boost::asio::detail::socket_select_interrupter::open_descriptors()[ g:\qbittorrent\boost_1_80_0\boost\asio\detail\impl\socket_select_interrupter.ipp : 66 ]
# 14 qbittorrent.exe      0x00007ff62fe89c06 boost::asio::detail::select_reactor::restart_reactor::do_complete(owner, base, __formal, __formal)[ g:\qbittorrent\boost_1_80_0\boost\asio\detail\impl\select_reactor.ipp : 334 ]
# 15 qbittorrent.exe      0x00007ff62fe23648 boost::asio::detail::win_iocp_io_context::do_one(this_thread, ec)[ g:\qbittorrent\boost_1_80_0\boost\asio\detail\impl\win_iocp_io_context.ipp : 473 ]
# 16 qbittorrent.exe      0x00007ff62fe22edf boost::asio::detail::win_iocp_io_context::run(ec)[ g:\qbittorrent\boost_1_80_0\boost\asio\detail\impl\win_iocp_io_context.ipp : 204 ]
# 17 qbittorrent.exe      0x00007ff62fe238bc boost::asio::io_context::run()[ g:\qbittorrent\boost_1_80_0\boost\asio\impl\io_context.ipp : 63 ]
# 18 qbittorrent.exe      0x00007ff62fe250e7 std::_LaunchPad >,std::default_delete > > > >::_Go()[ c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\thr\xthread : 230 ]
# 19 qbittorrent.exe      0x00007ff62fe21f69 std::_Pad::_Call_func(_Data)[ c:\program files (x86)\microsoft visual studio\2017\community\vc\tools\msvc\14.16.27023\include\thr\xthread : 208 ]
# 20 qbittorrent.exe      0x00007ff6309a266a thread_start(parameter, parameter)[ minkernel\crts\ucrt\src\appcrt\startup\thread.cpp : 97 ]
# 21 KERNEL32.DLL         0x00007ffee92454e0 BaseThreadInitThunk()
# 22 ntdll.dll            0x00007ffee99c485b RtlUserThreadStart()

Quest79 avatar Aug 29 '22 20:08 Quest79