Skip to content

Cancelable speech. NVDA freezes with this character #11752

@Adriani90

Description

@Adriani90

Steps to reproduce:

  1. With NVDA running, enable cancelable speech in the advanced settings
  2. Open this website and navigate to the input edit field under html fonts
    https://www.htmlsymbols.xyz/unicode/U+000B
  3. Alternatively, insert the character with the unicode value U+000B in any of the editors (i.e. MS Word)
  4. Navigate with arrow keys on the character, no matter in focus or browse mode

Actual behavior:

NVDA freezes and needs to be restarted. Following error is shown in the nvda_old.log:

IO - inputCore.InputManager.executeGesture (18:07:44.957) - winInputHook (11300):
Input: kb(laptop):control+rightArrow
DEBUG - editableText.EditableText._hasCaretMoved (18:07:45.003) - MainThread (3272):
Caret move detected using event. Elapsed: 0 ms
IO - inputCore.logTimeSinceInput (18:07:45.046) - MainThread (3272):
0.089 sec since input
IO - speech.speak (18:07:45.046) - MainThread (3272):
Speaking ['Tab', EndUtteranceCommand()]
IO - inputCore.InputManager.executeGesture (18:07:45.536) - winInputHook (11300):
Input: kb(laptop):rightArrow
DEBUG - editableText.EditableText._hasCaretMoved (18:07:45.575) - MainThread (3272):
Caret move detected using event. Elapsed: 0 ms
IO - inputCore.logTimeSinceInput (18:07:45.615) - MainThread (3272):
0.078 sec since input
IO - speech.speak (18:07:45.615) - MainThread (3272):
Speaking [CharacterModeCommand(True), '\x0b', EndUtteranceCommand()]
ERROR - speech.manager.SpeechManager._getUtteranceIndex (18:07:45.615) - MainThread (3272):
Expected last item to be an indexCommand.
ERROR - speech.manager.SpeechManager._checkForCancellations (18:07:45.639) - MainThread (3272):
no utterance index, cant save cancellable commands

DEBUGWARNING - watchdog._watcher (18:07:50.150) - watchdog (8832):
Trying to recover from freeze. Listing stacks for Python threads:
Python stack for thread 8832 (watchdog):
  File "threading.pyc", line 890, in _bootstrap
  File "threading.pyc", line 926, in _bootstrap_inner
  File "threading.pyc", line 870, in run
  File "watchdog.pyc", line 127, in _watcher
  File "watchdog.pyc", line 63, in getFormattedStacksForAllThreads

Python stack for thread 2304 (Bluetooth Audio background beeper thread):
  File "threading.pyc", line 890, in _bootstrap
  File "threading.pyc", line 926, in _bootstrap_inner
  File "C:\Users\adria\AppData\Roaming\nvda\addons\bluetoothaudio\globalPlugins\bluetoothAudio.py", line 52, in run
    playerLocal.feed(buf.raw)
  File "nvwave.pyc", line 326, in feed
  File "nvwave.pyc", line 341, in _feedUnbuffered_handleErrors
  File "nvwave.pyc", line 369, in _feedUnbuffered
  File "nvwave.pyc", line 386, in sync
  File "winKernel.pyc", line 228, in waitForSingleObject

Python stack for thread 13296 (touchHandler.TouchHandler):
  File "threading.pyc", line 890, in _bootstrap
  File "threading.pyc", line 926, in _bootstrap_inner
  File "touchHandler.pyc", line 241, in run

Python stack for thread 11300 (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 12140 (_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 310, in MTAThreadFunc
  File "queue.pyc", line 170, in get
  File "threading.pyc", line 296, in wait

Python stack for thread 6672 (Thread-3):
  File "threading.pyc", line 890, in _bootstrap
  File "threading.pyc", line 926, in _bootstrap_inner
  File "C:\Users\adria\AppData\Roaming\nvda\addons\IBMTTS\synthDrivers\_ibmeci.py", line 291, in run
    func, args, kwargs = callbackQueue.get()
  File "queue.pyc", line 170, in get
  File "threading.pyc", line 296, in wait

Python stack for thread 6560 (Thread-2):
  File "threading.pyc", line 890, in _bootstrap
  File "threading.pyc", line 926, in _bootstrap_inner
  File "C:\Users\adria\AppData\Roaming\nvda\addons\IBMTTS\synthDrivers\_ibmeci.py", line 127, in run
    user32.GetMessageA(byref(msg), 0, 0, 0)

Python stack for thread 3272 (MainThread):
File "nvwave.pyc", line 516, in _getOutputDevices

Expected behavior:

No error and NVDA is not freezing. When disabling speech cancelation, everything works as expected.

System configuration

NVDA installed/portable/running from source:

Installed

NVDA version:

Version: alpha-21145,ac31a795

Windows version:

Windows 10 2004 update

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

MS Word 365, Chrome 85, Firefox 81.

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 addons are disabled, is your problem still occuring?

yes

Did you try to run the COM registry fixing tool in NVDA menu / tools?

yes, no effect.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    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