Skip to content

When the JSON cache file in the add-on store is incorrect, starting NVDA afterwards will always restart. #16362

@hwf1324

Description

@hwf1324

Starting NVDA will always restart when there is a problem with the JSON cache file in the add-on store.

Steps to reproduce:

It is possible to manually change the JSON cache file of the add-on store, breaking its structure.

Actual behavior:

After rebooting, it will keep rebooting for a while.
You must delete %appdata%\nvda\addonStore to recover!

Expected behavior:

It won't keep rebooting.

NVDA logs, crash dumps and other attachments:

After this problem occurs during operation, the exception is ignored and NVDA continues to operate normally.

ERROR - logHandler._threadExceptHook (02:23:37.237) - initialiseAvailableAddons (15536):
Exception in thread initialiseAvailableAddons:
Traceback (most recent call last):
  File "requests\models.pyc", line 971, in json
  File "json\__init__.pyc", line 346, in loads
  File "json\decoder.pyc", line 337, in decode
  File "json\decoder.pyc", line 355, in raw_decode
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "addonStore\dataManager.pyc", line 208, in getLatestCompatibleAddons
  File "addonStore\dataManager.pyc", line 142, in _getCacheHash
  File "requests\models.pyc", line 975, in json
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

The log after rebooting all the time, omitting the configuration file contents section. It's not there later.

INFO - core.main (02:46:40.653) - MainThread (21408):
Developer Scratchpad mode enabled
INFO - core.main (02:46:41.154) - MainThread (21408):
Windows version: Windows 11 22H2 (10.0.22621) workstation AMD64
INFO - core.main (02:46:41.154) - MainThread (21408):
Using Python version 3.11.6 (tags/v3.11.6:8b6ee5b, Oct  2 2023, 14:40:55) [MSC v.1935 32 bit (Intel)]
INFO - core.main (02:46:41.154) - MainThread (21408):
Using comtypes version 1.2.0
INFO - core.main (02:46:41.154) - MainThread (21408):
Using configobj version 5.1.0 with validate version 1.0.1
DEBUG - core.main (02:46:41.154) - MainThread (21408):
Initializing add-ons system
DEBUG - addonStore.dataManager.initialize (02:46:41.164) - MainThread (21408):
initializing addonStore data manager
CRITICAL - __main__ (02:46:41.166) - MainThread (21408):
core failure
Traceback (most recent call last):
  File "nvda.pyw", line 415, in <module>
  File "core.pyc", line 666, in main
  File "addonStore\dataManager.pyc", line 64, in initialize
  File "addonStore\dataManager.pyc", line 96, in __init__
  File "addonStore\dataManager.pyc", line 195, in _getCachedAddonData
  File "addonStore\models\addon.pyc", line 367, in _createStoreCollectionFromJson
  File "json\__init__.pyc", line 346, in loads
  File "json\decoder.pyc", line 337, in decode
  File "json\decoder.pyc", line 355, in raw_decode
json.decoder.JSONDecodeError: Expecting value: line 1 column 1619 (char 1618)
DEBUGWARNING - RPC process 9876 (explorer.exe) (02:46:41.791) - Dummy-1 (33556):
Thread 7148, build\x86_64\remote\ia2Support.cpp, IA2Support_inProcess_terminate, 215:
WaitForMultipleObjects returned -1

DEBUGWARNING - RPC process 9876 (explorer.exe) (02:46:41.797) - Dummy-1 (33556):
Thread 7148, build\x86_64\remote\ia2Support.cpp, IA2Support_inProcess_terminate, 215:
WaitForMultipleObjects returned -1

DEBUGWARNING - RPC process 19168 (explorer.exe) (02:46:43.027) - Dummy-1 (33556):
Thread 20968, build\x86_64\remote\ia2Support.cpp, IA2Support_inProcess_terminate, 215:
WaitForMultipleObjects returned -1

ERROR - Exception ignored in atexit callback: <function terminate at 0x04E607A8> (02:46:43.194) - MainThread (21408):
Traceback (most recent call last):
  File "audio\soundSplit.pyc", line 96, in terminate
  File "audio\soundSplit.pyc", line 160, in setSoundSplitState
  File "audio\soundSplit.pyc", line 115, in applyToAllAudioSessions
AttributeError: 'NoneType' object has no attribute 'RegisterSessionNotification'

System configuration

NVDA installed/portable/running from source:

all

NVDA version:

2023.2 and higher (version with add-on store)

Windows version:

all

Name and version of other software in use when reproducing the issue:

Other information about your system:

Other questions

Does the issue still occur after restarting your computer?

yes

Have you tried any other versions of NVDA? If so, please report their behaviors.

no

If NVDA add-ons are disabled, is your problem still occurring?

no

Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?

no

In addition to fixing the problem directly, a new directory of temporary configuration files should be used to start NVDA after multiple reboots of NVDA to prevent a similar situation from causing constant reboots.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug squash targetgood first issuegithub features these at https://github.com/nvaccess/nvda/contributep2https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priorityquick fixtriagedHas been triaged, issue is waiting for implementation.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions