martinrotter / rssguard

Feed reader (and podcast player) which supports RSS/ATOM/JSON and many web-based feed services.
GNU General Public License v3.0
1.44k stars 120 forks source link

[BUG]: Silent crash while fetching multiple feeds #1433

Open DawEdhel opened 3 weeks ago

DawEdhel commented 3 weeks ago

Brief description of the issue

I've recently upgraded from 4.6.6 to 4.7.2, and at first everything went fine. Then some time later I noticed that the app went missing from the tray.

I started making multiple logs, and noticed they were stop being written in around after 1 hour, which is my default 'auto-fetch for all feeds' option. While reading last lines of my logs, I couldn't find anything of importance leading to crashes, except maybe these:

time=" 85.602" type="warning" -> QObject::startTimer: Timers cannot be started from another thread time=" 85.692" type="warning" -> QObject::killTimer: Timers cannot be stopped from another thread

That lead me to remember that I've added multiple feeds of newest internal browser source type to finally test them after #1354 being fixed. So I started fetching things individually:

It looks like internal browser's feeds do not like to be fetched in conjugation with older source types.

How to reproduce the bug?

  1. Select any two feeds, which are of 'URL' (or any another older source type?) and 'Built-in browser' source types, in feed list.
  2. Fetch them multiple times in a row (on my side I'm getting a silent crash after ~3-5 times).

What was the expected result?

Fetching status: success.

What actually happened?

Fetching status: a silent crash.

Debug log

Event Viewer:

Faulting application name: rssguard.exe, version: 4.7.2.0
Faulting module name: Qt6Core.dll, version: 6.6.3.0
Exception code: 0xc0000005
Fault offset: 0x000000000009b4e4
Faulting application path: .\RSS Guard 4.7.2\rssguard.exe
Faulting module path: .\RSS Guard 4.7.2\Qt6Core.dll
Faulting package full name: 
Faulting package-relative application ID: 
...
time="     0.194" type="debug" -> core: Starting to load active localization. Desired localization is 'en_US'.
time="     0.196" type="debug" -> core: Application localization 'en_US' loaded successfully, specifically sublocalization 'en_US' was loaded.
time="     0.197" type="warning" -> core: Qt localization 'en_US' WAS NOT loaded successfully.
...
time="     1.175" type="debug" -> core: Checking for plugins in './RSS Guard 4.7.2\plugins'.
time="     1.179" type="debug" -> core: Plugin ./RSS Guard 4.7.2/plugins/rssguard-feedly.dll' loaded.
time="     1.181" type="critical" -> core: The plugin './RSS Guard 4.7.2/plugins/rssguard-feedly.lib' was not loaded successfully: 'Failed to extract plugin meta data from './RSS Guard 4.7.2/plugins/rssguard-feedly.lib': './RSS Guard 4.7.2/plugins/rssguard-feedly.lib' is not a valid Windows DLL (invalid signature)'.
time="     1.185" type="debug" -> core: Plugin './RSS Guard 4.7.2/plugins/rssguard-gmail.dll' loaded.
time="     1.187" type="critical" -> core: The plugin './RSS Guard 4.7.2/plugins/rssguard-gmail.lib' was not loaded successfully: 'Failed to extract plugin meta data from './RSS Guard 4.7.2/plugins/rssguard-gmail.lib': './RSS Guard 4.7.2/plugins/rssguard-gmail.lib' is not a valid Windows DLL (invalid signature)'.
time="     1.191" type="debug" -> core: Plugin './RSS Guard 4.7.2/plugins/rssguard-greader.dll' loaded.
time="     1.192" type="critical" -> core: The plugin './RSS Guard 4.7.2/plugins/rssguard-greader.lib' was not loaded successfully: 'Failed to extract plugin meta data from './RSS Guard 4.7.2/plugins/rssguard-greader.lib': './RSS Guard 4.7.2/plugins/rssguard-greader.lib' is not a valid Windows DLL (invalid signature)'.
time="     1.196" type="debug" -> core: Plugin './RSS Guard 4.7.2/plugins/rssguard-nextcloud.dll' loaded.
time="     1.198" type="critical" -> core: The plugin './RSS Guard 4.7.2/plugins/rssguard-nextcloud.lib' was not loaded successfully: 'Failed to extract plugin meta data from './RSS Guard 4.7.2/plugins/rssguard-nextcloud.lib': './RSS Guard 4.7.2/plugins/rssguard-nextcloud.lib' is not a valid Windows DLL (invalid signature)'.
time="     1.201" type="debug" -> core: Plugin '.RSS Guard 4.7.2/plugins/rssguard-standard.dll' loaded.
time="     1.203" type="critical" -> core: The plugin './RSS Guard 4.7.2/plugins/rssguard-standard.lib' was not loaded successfully: 'Failed to extract plugin meta data from './RSS Guard 4.7.2/plugins/rssguard-standard.lib': './RSS Guard 4.7.2/plugins/rssguard-standard.lib' is not a valid Windows DLL (invalid signature)'.
time="     1.206" type="debug" -> core: Plugin './RSS Guard 4.7.2/plugins/rssguard-ttrss.dll' loaded.
time="     1.208" type="critical" -> core: The plugin './RSS Guard 4.7.2/plugins/rssguard-ttrss.lib' was not loaded successfully: 'Failed to extract plugin meta data from './RSS Guard 4.7.2/plugins/rssguard-ttrss.lib': './RSS Guard 4.7.2/plugins/rssguard-ttrss.lib' is not a valid Windows DLL (invalid signature)'.
...
time="    75.439" type="warning" -> QObject::startTimer: Timers cannot be started from another thread
time="    75.549" type="warning" -> QObject::killTimer: Timers cannot be stopped from another thread
...
time="    78.432" type="warning" -> QObject::startTimer: Timers cannot be started from another thread
time="    78.519" type="warning" -> QObject::killTimer: Timers cannot be stopped from another thread
...
time="    80.176" type="warning" -> QObject::~QObject: Timers cannot be stopped from another thread
...
time="    81.002" type="warning" -> QObject::startTimer: Timers cannot be started from another thread
time="    81.088" type="warning" -> QObject::killTimer: Timers cannot be stopped from another thread
...
time="    85.566" type="debug" -> feed-downloader: Starting feed updates from worker in thread '0x2a1c'.
time="    85.566" type="debug" -> feed-downloader: All caches synchronized.
time="    85.567" type="debug" -> database: SQLite connection 'db_connection_10780' is already active.
time="    85.567" type="debug" -> database: SQLite database connection 'db_connection_10780' to file './RSS Guard 4.7.2/data4/database/database.db' seems to be established.
time="    85.568" type="debug" -> feed-downloader: Downloading new messages for feed ID '1771' in thread  '1376'.
time="    85.568" type="debug" -> feed-downloader: Downloading new messages for feed ID '209' in thread  '4880'.
time="    85.568" type="debug" -> database: SQLite connection 'db_connection_4880' is already active.
time="    85.569" type="debug" -> database: SQLite database connection 'db_connection_1376' to file './RSS Guard 4.7.2/data4/database/database.db' seems to be established.
time="    85.569" type="debug" -> database: SQLite database connection 'db_connection_4880' to file './RSS Guard 4.7.2/data4/database/database.db' seems to be established.
time="    85.569" type="debug" -> core: Downloading URL to obtain feed data.
time="    85.569" type="debug" -> network: Settings of BaseNetworkAccessManager loaded.
time="    85.602" type="warning" -> QObject::startTimer: Timers cannot be started from another thread
time="    85.692" type="warning" -> QObject::killTimer: Timers cannot be stopped from another thread

Operating system and version

rssguard-4.7.2-5b0453b86-win10.7z

martinrotter commented 3 weeks ago

Please, provide full crash dump of the bug.

Download procdump.

https://learn.microsoft.com/en-us/sysinternals/downloads/procdump#using-procdump

Then run procump with rssguard like this

procdump -ma rssguard

Use full paths where needed.

The post resulting dump file here.

DawEdhel commented 3 weeks ago

I'm unable to upload full dump here due to its being ~1GB size uncompressed (~200Mb compressed), which exceeds 25Mb limit. I've converted it to minidump instead. rssguard.exe_240607_mini.dmp

Its analysis: ``` ************* Preparing the environment for Debugger Extensions Gallery repositories ************** ExtensionRepository : Implicit UseExperimentalFeatureForNugetShare : true AllowNugetExeUpdate : true NonInteractiveNuget : true AllowNugetMSCredentialProviderInstall : true AllowParallelInitializationOfLocalRepositories : true EnableRedirectToV8JsProvider : false -- Configuring repositories ----> Repository : LocalInstalled, Enabled: true ----> Repository : UserExtensions, Enabled: true >>>>>>>>>>>>> Preparing the environment for Debugger Extensions Gallery repositories completed, duration 0.000 seconds ************* Waiting for Debugger Extensions Gallery to Initialize ************** >>>>>>>>>>>>> Waiting for Debugger Extensions Gallery to Initialize completed, duration 0.031 seconds ----> Repository : UserExtensions, Enabled: true, Packages count: 0 ----> Repository : LocalInstalled, Enabled: true, Packages count: 41 Microsoft (R) Windows Debugger Version 10.0.27553.1004 AMD64 Copyright (c) Microsoft Corporation. All rights reserved. Loading Dump File [D:\Applications\RSS Guard 4.7.2\!Procdump\rssguard.exe_240607_mini.dmp] User Mini Dump File: Only registers, stack and portions of memory are available ************* Path validation summary ************** Response Time (ms) Location Deferred srv* Symbol search path is: srv* Executable search path is: Windows 10 Version 19045 MP (8 procs) Free x64 Product: WinNt, suite: SingleUserTS Edition build lab: 19041.1.amd64fre.vb_release.191206-1406 Debug session time: Fri Jun 7 16:39:34.000 2024 (UTC + 3:00) System Uptime: 0 days 0:03:03.030 Process Uptime: 0 days 0:01:51.000 ................................................................ ................................................................ ................................................................ .. This dump file has an exception of interest stored in it. The stored exception information can be accessed via .ecxr. (254c.2544): Access violation - code c0000005 (first/second chance not available) For analysis of this file, run !analyze -v Qt6Core!QCoreApplication::notifyInternal2+0x8e: 00007fff`255bb4ee ff4708 inc dword ptr [rdi+8] ds:00000000`00000008=???????? 0:036> !analyze -v ******************************************************************************* * * * Exception Analysis * * * ******************************************************************************* KEY_VALUES_STRING: 1 Key : AV.Dereference Value: NullClassPtr Key : AV.Fault Value: Write Key : Analysis.CPU.mSec Value: 1046 Key : Analysis.Elapsed.mSec Value: 1245 Key : Analysis.IO.Other.Mb Value: 0 Key : Analysis.IO.Read.Mb Value: 0 Key : Analysis.IO.Write.Mb Value: 0 Key : Analysis.Init.CPU.mSec Value: 1875 Key : Analysis.Init.Elapsed.mSec Value: 8303 Key : Analysis.Memory.CommitPeak.Mb Value: 130 Key : Failure.Bucket Value: NULL_CLASS_PTR_WRITE_c0000005_Qt6Core.dll!Unknown Key : Failure.Hash Value: {a72bb932-f780-10e3-de88-612a0902973a} Key : Timeline.OS.Boot.DeltaSec Value: 183 Key : Timeline.Process.Start.DeltaSec Value: 111 Key : WER.OS.Branch Value: vb_release Key : WER.OS.Version Value: 10.0.19041.1 Key : WER.Process.Version Value: 4.7.2.0 FILE_IN_CAB: rssguard.exe_240607_mini.dmp CONTEXT: (.ecxr) rax=000001ffe1a54e00 rbx=000001ffe1a54e00 rcx=0000000000000000 rdx=000000e08a3faac0 rsi=0000000000000001 rdi=0000000000000000 rip=00007fff255bb4ee rsp=000000e08a3faa90 rbp=000000e08a3fab20 r8=0000000000000052 r9=000001ffe19b5458 r10=0000000000000003 r11=0000000000000080 r12=000001ffdd3c22a0 r13=000001ffe0482430 r14=000001ffc978fde0 r15=0000000000000000 iopl=0 nv up ei pl zr na po nc cs=0033 ss=002b ds=002b es=002b fs=0053 gs=002b efl=00010244 Qt6Core!QCoreApplication::notifyInternal2+0x8e: 00007fff`255bb4ee ff4708 inc dword ptr [rdi+8] ds:00000000`00000008=???????? Resetting default scope EXCEPTION_RECORD: (.exr -1) ExceptionAddress: 00007fff255bb4ee (Qt6Core!QCoreApplication::notifyInternal2+0x000000000000008e) ExceptionCode: c0000005 (Access violation) ExceptionFlags: 00000000 NumberParameters: 2 Parameter[0]: 0000000000000001 Parameter[1]: 0000000000000008 Attempt to write to address 0000000000000008 PROCESS_NAME: rssguard.exe WRITE_ADDRESS: 0000000000000008 ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%p referenced memory at 0x%p. The memory could not be %s. EXCEPTION_CODE_STR: c0000005 EXCEPTION_PARAMETER1: 0000000000000001 EXCEPTION_PARAMETER2: 0000000000000008 STACK_TEXT: 000000e0`8a3faa90 00007fff`25742c12 : 000001ff`c978fde0 000001ff`dd3c22a0 0e38e38e`38e38e39 00007fff`255c012b : Qt6Core!QCoreApplication::notifyInternal2+0x8e 000000e0`8a3fab00 00007fff`24e71f4e : 000001ff`e168c060 000001ff`e168c060 000001ff`c978fde0 000001ff`e0482430 : Qt6Core!QEventDispatcherWin32::event+0x182 000000e0`8a3fab50 00007fff`24e71071 : 000001ff`c9770fc0 000000e0`8a3fac80 00000000`00000000 00000000`00000000 : Qt6Widgets!QApplicationPrivate::notify_helper+0x10e 000000e0`8a3fab80 00007fff`255bb57f : 000000e0`88b6fab0 000001ff`dd3c22a0 000001ff`e0482430 00000000`00000000 : Qt6Widgets!QApplication::notify+0x18c1 000000e0`8a3fb030 00007fff`255be6a6 : 00000000`00000000 00000000`00000000 000001ff`d6069780 000001ff`d5ac30c0 : Qt6Core!QCoreApplication::notifyInternal2+0x11f 000000e0`8a3fb0a0 00007fff`25743020 : 00000000`00000000 00000000`00000024 000001ff`e65f4df0 00000000`00000000 : Qt6Core!QCoreApplicationPrivate::sendPostedEvents+0x1f6 000000e0`8a3fb190 00007fff`255c2e0f : 000001ff`d8f81ec0 00000000`00000000 000001ff`e65f4df0 000001ff`c9770fc0 : Qt6Core!QEventDispatcherWin32::processEvents+0x90 000000e0`8a3fe320 00007fff`23aae4f1 : 000000e0`8a3fe430 000000e0`8a3fe710 00000000`00000000 000000e0`8a3fe4c0 : Qt6Core!QEventLoop::exec+0x19f 000000e0`8a3fe3c0 00007fff`0b212cb9 : 000000e0`8a3fe860 000000e0`8a3fe710 000001ff`d8957750 000000e0`8a3feb20 : rssguard!FeedsView::markAllItemsReadStatus+0x387c6f 000000e0`8a3fe590 00007fff`237ca783 : 000001ff`d8e2db40 00000000`00000000 000001ff`d8957750 00000000`00000020 : rssguard_standard!qt_plugin_instance+0xca324 000000e0`8a3fedc0 00007fff`237ccaba : 00000000`00000008 00000000`00000000 00000002`d89ed870 000001ff`e1997740 : rssguard!FeedsView::markAllItemsReadStatus+0xa3f01 000000e0`8a3ff8d0 00007fff`237b4447 : 00000000`00000000 000000e0`8a3ff9c0 000001ff`e678f910 000001ff`c97d7658 : rssguard!FeedsView::markAllItemsReadStatus+0xa6238 000000e0`8a3ff960 00007fff`237c6c83 : 00000000`00000000 000001ff`e678f910 00000000`00000000 00000000`00000001 : rssguard!FeedsView::markAllItemsReadStatus+0x8dbc5 000000e0`8a3ff990 00007fff`237c6d12 : 00000000`00000001 00000000`00000001 00000000`00000000 00000000`00000001 : rssguard!FeedsView::markAllItemsReadStatus+0xa0401 000000e0`8a3ff9c0 00007fff`237bc544 : 00000000`00000000 000001ff`e616a2c0 00000000`00000001 00007fff`2370cbc1 : rssguard!FeedsView::markAllItemsReadStatus+0xa0490 000000e0`8a3ff9f0 00007fff`5b752000 : 000001ff`d5ae9f30 000001ff`e616a2c0 000001ff`d87c4610 00000000`00000000 : rssguard!FeedsView::markAllItemsReadStatus+0x95cc2 000000e0`8a3ffb50 00007fff`2574eb3c : 000001ff`e616a2c0 00000000`fffffff1 000001ff`c97cd9d8 00000000`00000001 : Qt6Concurrent!QtConcurrent::ThreadEngineBase::run+0xc0 000000e0`8a3ffbc0 00007fff`2574a579 : 000001ff`e168c060 000001ff`00000001 00000000`00000001 000001ff`e168c060 : Qt6Core!QThreadPoolPrivate::reset+0x43c 000000e0`8a3ffc80 00007fff`77b97344 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : Qt6Core!QThread::start+0x459 000000e0`8a3ffcd0 00007fff`79b826b1 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : kernel32!BaseThreadInitThunk+0x14 000000e0`8a3ffd00 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x21 SYMBOL_NAME: Qt6Core+8e MODULE_NAME: Qt6Core IMAGE_NAME: Qt6Core.dll STACK_COMMAND: ~36s; .ecxr ; kb FAILURE_BUCKET_ID: NULL_CLASS_PTR_WRITE_c0000005_Qt6Core.dll!Unknown OS_VERSION: 10.0.19041.1 BUILDLAB_STR: vb_release OSPLATFORM_TYPE: x64 OSNAME: Windows 10 IMAGE_VERSION: 6.6.3.0 FAILURE_ID_HASH: {a72bb932-f780-10e3-de88-612a0902973a} Followup: MachineOwner ```