qbittorrent / qBittorrent

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

Consistent fatal crash after running overnight. #20699

Open th3w1zard1 opened 3 months ago

th3w1zard1 commented 3 months ago

qBittorrent & operating system versions

qBittorrent: 4.6.4 (been happening since 4.5.x) Operating System: Windows 10 Home 22H2 Qt: 5.12.2? and 6.x.x? Happens with the lt20 and the other build.

What is the problem?

For the past 8 months, when leaving qBittorrent running overnight or for extended periods, I will get a crash when attempting to pull it up from the taskbar minimized state. Been tracking this on my own for a while and I noticed:

Steps to reproduce

  1. Leave qBittorrent in an inactivated state (minimized, taskbar, etc)
  2. Leave it running for a prolonged period (e.g. 15 hours)
  3. Open it up
  4. Get a crash about 5 seconds later.

Additional context

I have finally captured a crash dump of the stack:

qbittorrent.exe!qAbort(void)
qbittorrent.exe!qFormatLogMessage(enum QtMsgType,class QMessageLogContext const &,class QString const &)
qbittorrent.exe!QMessageLogger::fatal(char const *,...)
qbittorrent.exe!QWindowsFontEngine::supportsTransformation(class QTransform const &)
qbittorrent.exe!QWindowsNativeImage::QWindowsNativeImage(int,int,enum QImage::Format)
qbittorrent.exe!QWindowsFontEngine::drawGDIGlyph(struct HFONT__ *,unsigned int,int,class QTransform const &,enum QImage::Format)
qbittorrent.exe!QWindowsFontEngine::alphaRGBMapForGlyph(unsigned int,struct QFixedPoint const &,class QTransform const &)
qbittorrent.exe!QTextureGlyphCache::textureMapForGlyph(unsigned int,struct QFixedPoint const &)
qbittorrent.exe!QImageTextureGlyphCache::fillTexture(struct QTextureGlyphCache::Coord const &,unsigned int,struct QFixedPoint const &)
qbittorrent.exe!QTextureGlyphCache::fillInPendingGlyphs(void)
qbittorrent.exe!QRasterPaintEngine::drawCachedGlyphs(int,unsigned int const *,struct QFixedPoint const *,class QFontEngine *)
qbittorrent.exe!QRasterPaintEngine::drawTextItem(class QPointF const &,class QTextItem const &)
qbittorrent.exe!QPainterPrivate::drawTextItem(class QPointF const &,class QTextItem const &,class QTextEngine *)
qbittorrent.exe!QTextLine::draw_internal(class QPainter *,class QPointF const &,struct QTextLayout::FormatRange const *)
qbittorrent.exe!qt_format_text(class QFont const &,class QRectF const &,int,class QTextOption const *,class QString const &,class QRectF *,int,int *,int,class QPainter *)
qbittorrent.exe!QPainter::drawText(class QRect const &,int,class QString const &,class QRect *)
qbittorrent.exe!QStyle::drawItemText(class QPainter *,class QRect const &,int,class QPalette const &,bool,class QString const &,enum QPalette::ColorRole)
qbittorrent.exe!QStyleSheetStyle::drawItemText(class QPainter *,class QRect const &,int,class QPalette const &,bool,class QString const &,enum QPalette::ColorRole)
qbittorrent.exe!QLabel::paintEvent(class QPaintEvent *)
qbittorrent.exe!QTipLabel::paintEvent(class QPaintEvent *)
qbittorrent.exe!QWidget::event(class QEvent *)
qbittorrent.exe!QFrame::event(class QEvent *)
qbittorrent.exe!QLabel::event(class QEvent *)
qbittorrent.exe!QApplicationPrivate::notify_helper(class QObject *,class QEvent *)
qbittorrent.exe!QApplication::notify(class QObject *,class QEvent *)
qbittorrent.exe!QCoreApplication::notifyInternal2(class QObject *,class QEvent *)
qbittorrent.exe!QWidgetPrivate::sendPaintEvent(class QRegion const &)
qbittorrent.exe!QWidgetPrivate::drawWidget(class QPaintDevice *,class QRegion const &,class QPoint const &,class QFlags<enum QWidgetPrivate::DrawWidgetFlag>,class QPainter *,class QWidgetRepaintManager *)
qbittorrent.exe!QWidgetPrivate::render(class QPaintDevice *,class QPoint const &,class QRegion const &,class QFlags<enum QWidget::RenderFlag>)
qbittorrent.exe!QWidget::grab(class QRect const &)
qbittorrent.exe!QRollEffect::QRollEffect(class QWidget *,class QFlags<enum Qt::WindowType>,unsigned int)
qbittorrent.exe!qScrollEffect(class QWidget *,unsigned int,int)
qbittorrent.exe!QToolTip::showText(class QPoint const &,class QString const &,class QWidget *,class QRect const &,int)
qbittorrent.exe!QAbstractItemDelegate::helpEvent(class QHelpEvent *,class QAbstractItemView *,class QStyleOptionViewItem const &,class QModelIndex const &)
qbittorrent.exe!QAbstractItemView::viewportEvent(class QEvent *)
qbittorrent.exe!QCoreApplicationPrivate::sendThroughObjectEventFilters(class QObject *,class QEvent *)
qbittorrent.exe!QApplicationPrivate::notify_helper(class QObject *,class QEvent *)
qbittorrent.exe!QApplication::notify(class QObject *,class QEvent *)
qbittorrent.exe!QCoreApplication::notifyInternal2(class QObject *,class QEvent *)
qbittorrent.exe!QApplication::event(class QEvent *)
qbittorrent.exe!QApplicationPrivate::notify_helper(class QObject *,class QEvent *)
qbittorrent.exe!QApplication::notify(class QObject *,class QEvent *)
qbittorrent.exe!QCoreApplication::notifyInternal2(class QObject *,class QEvent *)
qbittorrent.exe!QEventDispatcherWin32Private::sendTimerEvent(int)
qbittorrent.exe!qt_internal_proc(struct HWND__ *,unsigned int,unsigned __int64,__int64)
user32.dll!00007ffd98d1ef75()
user32.dll!00007ffd98d1e69d()
qbittorrent.exe!QEventDispatcherWin32::processEvents(class QFlags<enum QEventLoop::ProcessEventsFlag>)
qbittorrent.exe!QWindowsGuiEventDispatcher::processEvents(class QFlags<enum QEventLoop::ProcessEventsFlag>)
qbittorrent.exe!QEventLoop::exec(class QFlags<enum QEventLoop::ProcessEventsFlag>)
qbittorrent.exe!QCoreApplication::exec(void)
qbittorrent.exe!Application::exec() Line 938
    at G:\QBITTORRENT\qbt-src-4.6.4\src\app\application.cpp(938)
qbittorrent.exe!main(int argc, char * * argv) Line 271
    at G:\QBITTORRENT\qbt-src-4.6.4\src\app\main.cpp(271)
[External Code]

Log(s) & preferences file(s)

There's too much personal information to properly trust myself to send these, would be happy to if a proper 'export log/preferences and automatically omit personal information' feature would be added to the program.

There's no useful information in the logs anyway

JohnRo79 commented 3 months ago

i have the same type of issues (i guess) from leaving it running overnight

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

qBittorrent version: v4.6.4 (64-bit) Libtorrent version: 1.2.19.0 Qt version: 6.4.3 Boost version: 1.84.0 OpenSSL version: 1.1.1w zlib version: 1.3.1 OS version: Windows 11 Version 23H2 10.0.22631 x86_64

Caught signal: SIGABRT

 0# boost::stacktrace::basic_stacktrace >::init at G:\QBITTORRENT\boost_1_84_0\boost\stacktrace\stacktrace.hpp:77
 1# getStacktrace at G:\QBITTORRENT\qbt-src-4.6.4\src\app\stacktrace.cpp:35
 2# `anonymous namespace'::abnormalExitHandler at G:\QBITTORRENT\qbt-src-4.6.4\src\app\signalhandler.cpp:104
 3# raise at minkernel\crts\ucrt\src\appcrt\misc\signal.cpp:547
 4# abort at minkernel\crts\ucrt\src\appcrt\startup\abort.cpp:71
 5# terminate at minkernel\crts\ucrt\src\appcrt\misc\terminate.cpp:58
 6# FindHandler at D:\a\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp:735
 7# __InternalCxxFrameHandler at D:\a\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp:399
 8# __InternalCxxFrameHandlerWrapper at D:\a\_work\1\s\src\vctools\crt\vcruntime\src\eh\frame.cpp:234
 9# __CxxFrameHandler4 at D:\a\_work\1\s\src\vctools\crt\vcruntime\src\eh\risctrnsctrl.cpp:306
10# _chkstk in ntdll
11# RtlFindCharInUnicodeString in ntdll
12# RtlRaiseException in ntdll
13# RaiseException in KERNELBASE
14# _CxxThrowException at D:\a\_work\1\s\src\vctools\crt\vcruntime\src\eh\throw.cpp:75
15# boost::throw_exception at G:\QBITTORRENT\boost_1_84_0\boost\throw_exception.hpp:157
16# boost::asio::detail::do_throw_error at G:\QBITTORRENT\boost_1_84_0\boost\asio\detail\impl\throw_error.ipp:42
17# boost::asio::detail::socket_select_interrupter::open_descriptors at G:\QBITTORRENT\boost_1_84_0\boost\asio\detail\impl\socket_select_interrupter.ipp:66
18# boost::asio::detail::select_reactor::restart_reactor::do_complete at G:\QBITTORRENT\boost_1_84_0\boost\asio\detail\impl\select_reactor.ipp:343
19# boost::asio::detail::win_iocp_io_context::do_one at G:\QBITTORRENT\boost_1_84_0\boost\asio\detail\impl\win_iocp_io_context.ipp:476
20# boost::asio::detail::win_iocp_io_context::run at G:\QBITTORRENT\boost_1_84_0\boost\asio\detail\impl\win_iocp_io_context.ipp:206
21# std::thread::_Invoke >,0> at C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.34.31933\include\thread:55
22# thread_start at minkernel\crts\ucrt\src\appcrt\startup\thread.cpp:97
23# BaseThreadInitThunk in KERNEL32
24# RtlUserThreadStart in ntdll
xavier2k6 commented 3 months ago

@JohnRo79 Your crash boost::asio::detail::socket_select_interrupter::open_descriptors is a duplicate of #17082.

th3w1zard1 commented 3 months ago

Probably related but I'm not sure. After leaving running overnight and attempting to open the UI, I get this white box. Can clearly see the app is doing things because the title showing the download/upload speed is changing, but I can't get it to render:

image