Skip to content

NVDA crashes if exiting while welcome dialog open #12907

@Qchristensen

Description

@Qchristensen

Steps to reproduce:

  1. Have NVDA running
  2. Press NVDA+n then h to open the help menu, down arrow to "Welcome dialog" and enter to open that.
  3. Press NVDA+Q then ENTER to quit NVDA

Actual behavior:

NVDA crashes and restarts. Log fragment from crash:

IO - inputCore.InputManager.executeGesture (08:32:33.488) - winInputHook (29244):
Input: kb(desktop):NVDA+q
DEBUGWARNING - NVDAObjects.IAccessible.IAccessible._get_IAccessibleRole (08:32:33.600) - MainThread (31608):
accRole failed: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None))
IO - speech.speech.speak (08:32:33.638) - MainThread (31608):
Speaking [LangChangeCommand ('en_US'), 'Exit NVDA', 'dialog', CancellableSpeech (still valid)]
IO - speech.speech.speak (08:32:33.640) - MainThread (31608):
Speaking [LangChangeCommand ('en_US'), 'What would you like to do?', 'combo box', 'Exit', 'collapsed', 'Alt+d', CancellableSpeech (still valid)]
IO - inputCore.InputManager.executeGesture (08:32:34.000) - winInputHook (29244):
Input: kb(desktop):numpadEnter
DEBUG - core.triggerNVDAExit (08:32:34.001) - MainThread (31608):
_doShutdown has been queued
DEBUG - core._terminate (08:32:34.018) - MainThread (31608):
Terminating updateCheck
DEBUG - core._terminate (08:32:34.019) - MainThread (31608):
Terminating watchdog
DEBUG - core._terminate (08:32:34.019) - MainThread (31608):
Terminating globalPluginHandler
DEBUG - core._closeAllWindows (08:32:34.019) - MainThread (31608):
destroying system tray icon and menu
ERROR - unhandled exception (08:32:34.030) - MainThread (31608):
wx._core.wxAssertionError: C++ assertion "GetEventHandler() == this" failed at ..\..\src\common\wincmn.cpp(470) in wxWindowBase::~wxWindowBase(): any pushed event handlers must have been removed

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "_ctypes/callbacks.c", line 232, in 'calling callback function'
  File "watchdog.pyc", line 183, in _crashHandler
SystemError: <_FuncPtr object at 0x02EF15D0> returned a result with an error set
CRITICAL - watchdog._crashHandler (08:32:34.166) - MainThread (31608):
NVDA crashed! Minidump written to C:\Users\quent\AppData\Local\Temp\nvda.log\..\nvda_crash.dmp
INFO - watchdog._crashHandler (08:32:36.446) - MainThread (31608):
Listing stacks for Python threads:
Python stack for thread 33660 (touchHandler.TouchHandler):
  File "threading.pyc", line 890, in _bootstrap
  File "threading.pyc", line 926, in _bootstrap_inner
  File "touchHandler.pyc", line 238, in run

Python stack for thread 29244 (winInputHook):
  File "threading.pyc", line 890, in _bootstrap
  File "threading.pyc", line 926, in _bootstrap_inner
  File "threading.pyc", line 870, in run
  File "winInputHook.pyc", line 79, in hookThreadFunc

Python stack for thread 25368 (_UIAHandler.UIAHandler.MTAThread):
  File "threading.pyc", line 890, in _bootstrap
  File "threading.pyc", line 926, in _bootstrap_inner
  File "threading.pyc", line 870, in run
  File "_UIAHandler.pyc", line 340, in MTAThreadFunc
  File "queue.pyc", line 170, in get
  File "threading.pyc", line 296, in wait

Python stack for thread 15036 (braille._BgThread):
  File "threading.pyc", line 890, in _bootstrap
  File "threading.pyc", line 926, in _bootstrap_inner
  File "threading.pyc", line 870, in run
  File "braille.pyc", line 2201, in func

Python stack for thread 31608 (MainThread):
  File "nvda.pyw", line 362, in <module>
  File "core.pyc", line 746, in main
  File "wx\core.pyc", line 2237, in MainLoop
  File "wx\core.pyc", line 3407, in <lambda>
  File "gui\__init__.pyc", line 117, in showGui
  File "gui\__init__.pyc", line 546, in onActivate
  File "gui\__init__.pyc", line 495, in <lambda>
  File "gui\startupDialogs.pyc", line 119, in run
  File "gui\__init__.pyc", line 830, in Notify
  File "core.pyc", line 708, in run
  File "queueHandler.pyc", line 88, in pumpAll
  File "queueHandler.pyc", line 55, in flushQueue
  File "core.pyc", line 293, in _doShutdown
  File "core.pyc", line 353, in _closeAllWindows
  File "watchdog.pyc", line 212, in _crashHandler
  File "watchdog.pyc", line 62, in getFormattedStacksForAllThreads

INFO - watchdog._crashHandler (08:32:36.446) - MainThread (31608):
Restarting due to crash
INFO - core.restartUnsafely (08:32:36.446) - MainThread (31608):
Restarting unsafely
DEBUG - core._startNewInstance (08:32:36.446) - MainThread (31608):
Starting new NVDA instance: NewNVDAInstance(filePath='C:\\Program Files (x86)\\NVDA\\nvda.exe', parameters='-r', directory='C:\\Program Files (x86)\\NVDA')

Expected behavior:

NVDA should exit. There was a previous issue for this for which a fix was merged earlier in the year - #1740 - not sure if this is related or a completely separate issue. Closing NVDA while the settings dialog is open does work.

System configuration

NVDA installed/portable/running from source:

NVDA version:

NVDA 2021.2 installed

Windows version:

Windows 10 (64-bit) Version: 2009, Build: 19043

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 add-ons installed

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

Metadata

Metadata

Assignees

Labels

p2https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority

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