Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NVDA freezes for at least 45 seconds when no next text paragraph is found while using text paragraph navigation p with UIA enabled in Edge Chromium browser #16436

Closed
Adriani90 opened this issue Apr 21, 2024 · 3 comments · Fixed by #16450
Labels
api/uia Feature or bug requires an understanding of UIA app/edge/anaheim MS browser, chromium based, replaces Spartan in 2019 by Anaheim. NVDA access via IA2. bug/freeze p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.
Milestone

Comments

@Adriani90
Copy link
Collaborator

Steps to reproduce:

  1. Open NVDA
  2. Open Edge Chromium browser
  3. In NVDA advanced settings, set UIA for chromium browsers wo "yes"
  4. Open a website with text paragraphs, I used a german news website:
    www.ntv.de
  5. navigate to the end of the virtual document with ctrl+end press p, or just press p until no next paragraph is found.

Actual behavior:

NVDA freezes for at least 45 seconds for every key press.

IO - inputCore.InputManager.executeGesture (21:46:27.323) - winInputHook (15192):
Input: kb(laptop):p
DEBUG - watchdog._waitUntilNormalCoreAliveTimeout (21:46:27.831) - watchdog (15216):
Potential freeze, waiting up to 10 seconds.
IO - inputCore.InputManager.executeGesture (21:46:28.370) - winInputHook (15192):
Input: kb(laptop):p
IO - inputCore.InputManager.executeGesture (21:46:29.006) - winInputHook (15192):
Input: kb(laptop):upArrow
IO - inputCore.InputManager.executeGesture (21:46:29.397) - winInputHook (15192):
Input: kb(laptop):downArrow
IO - inputCore.InputManager.executeGesture (21:46:29.592) - winInputHook (15192):
Input: kb(laptop):downArrow
IO - inputCore.InputManager.executeGesture (21:46:29.858) - winInputHook (15192):
Input: kb(laptop):upArrow
IO - inputCore.InputManager.executeGesture (21:46:30.063) - winInputHook (15192):
Input: kb(laptop):upArrow
IO - inputCore.InputManager.executeGesture (21:46:30.260) - winInputHook (15192):
Input: kb(laptop):rightArrow
IO - inputCore.InputManager.executeGesture (21:46:35.096) - winInputHook (15192):
Input: kb(laptop):tab
IO - inputCore.InputManager.executeGesture (21:46:35.881) - winInputHook (15192):
Input: kb(laptop):shift+tab
IO - inputCore.InputManager.executeGesture (21:46:36.301) - winInputHook (15192):
Input: kb(laptop):alt+tab
INFO - watchdog.waitForFreezeRecovery (21:46:37.349) - watchdog (15216):
Starting freeze recovery after 10.01681169999938 seconds.
DEBUGWARNING - watchdog.waitForFreezeRecovery (21:46:37.349) - watchdog (15216):
Listing stacks for Python threads:
Python stack for thread 22088 (synthDrivers._espeak.BgThread):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "synthDrivers\_espeak.pyc", line 201, in run
  File "queue.pyc", line 171, in get
  File "threading.pyc", line 327, in wait

Python stack for thread 18488 (watchdog.CancellableCallThread.execute(<_FuncPtr object at 0x09F9EBE8>)):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "watchdog.pyc", line 382, in run
  File "threading.pyc", line 629, in wait
  File "threading.pyc", line 327, in wait

Python stack for thread 22060 (visionEnhancementProviders.NVDAHighlighter.NVDAHighlighter):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "visionEnhancementProviders\NVDAHighlighter.pyc", line 452, in _run
  File "winUser.pyc", line 460, in getMessage

Python stack for thread 15216 (watchdog):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "watchdog.pyc", line 159, in _watcher
  File "watchdog.pyc", line 166, in waitForFreezeRecovery
  File "logHandler.pyc", line 64, in getFormattedStacksForAllThreads

Python stack for thread 15192 (winInputHook):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "winInputHook.pyc", line 81, in hookThreadFunc

Python stack for thread 15276 (UIAHandler.UIAHandler.MTAThread):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "UIAHandler\__init__.pyc", line 544, in MTAThreadFunc
  File "queue.pyc", line 171, in get
  File "threading.pyc", line 327, in wait

Python stack for thread 16260 (ThreadPoolExecutor-0_0):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "concurrent\futures\thread.pyc", line 81, in _worker

Python stack for thread 19252 (hwIo.ioThread.IoThread):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "hwIo\ioThread.pyc", line 258, in run

Python stack for thread 5368 (MainThread):
  File "nvda.pyw", line 415, in <module>
  File "core.pyc", line 911, in main
  File "wx\core.pyc", line 2262, in MainLoop
  File "wx\core.pyc", line 3427, in <lambda>
  File "core.pyc", line 841, in processRequest
  File "core.pyc", line 857, in Notify
  File "queueHandler.pyc", line 97, in pumpAll
  File "queueHandler.pyc", line 64, in flushQueue
  File "scriptHandler.pyc", line 243, in _queueScriptCallback
  File "keyboardHandler.pyc", line 571, in executeScript
  File "inputCore.pyc", line 224, in executeScript
  File "scriptHandler.pyc", line 295, in executeScript
  File "browseMode.pyc", line 558, in <lambda>
  File "browseMode.pyc", line 516, in _quickNavScript
  File "browseMode.pyc", line 2557, in _iterSimilarParagraph
  File "treeInterceptorHandler.pyc", line 234, in collapse
  File "NVDAObjects\UIA\__init__.pyc", line 928, in collapse

ERROR - watchdog.waitForFreezeRecovery (21:46:52.379) - watchdog (15216):
Core frozen in stack! (25.04716929999995 seconds)
INFO - watchdog.waitForFreezeRecovery (21:46:52.393) - watchdog (15216):
Listing stacks for Python threads:
Python stack for thread 14192 (nvwave.playWaveFile(error.wav)):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "nvwave.pyc", line 711, in play
  File "nvwave.pyc", line 912, in feed
  File "nvwave.pyc", line 888, in open
  File "nvwave.pyc", line 1009, in _setVolumeFromConfig
  File "nvwave.pyc", line 997, in setVolume

Python stack for thread 22088 (synthDrivers._espeak.BgThread):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "synthDrivers\_espeak.pyc", line 201, in run
  File "queue.pyc", line 171, in get
  File "threading.pyc", line 327, in wait

Python stack for thread 18488 (watchdog.CancellableCallThread.execute(<_FuncPtr object at 0x09F9EBE8>)):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "watchdog.pyc", line 382, in run
  File "threading.pyc", line 629, in wait
  File "threading.pyc", line 327, in wait

Python stack for thread 22060 (visionEnhancementProviders.NVDAHighlighter.NVDAHighlighter):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "visionEnhancementProviders\NVDAHighlighter.pyc", line 452, in _run
  File "winUser.pyc", line 460, in getMessage

Python stack for thread 15216 (watchdog):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "watchdog.pyc", line 159, in _watcher
  File "watchdog.pyc", line 187, in waitForFreezeRecovery
  File "logHandler.pyc", line 64, in getFormattedStacksForAllThreads

Python stack for thread 15192 (winInputHook):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "winInputHook.pyc", line 81, in hookThreadFunc

Python stack for thread 15276 (UIAHandler.UIAHandler.MTAThread):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "UIAHandler\__init__.pyc", line 544, in MTAThreadFunc
  File "queue.pyc", line 171, in get
  File "threading.pyc", line 327, in wait

Python stack for thread 16260 (ThreadPoolExecutor-0_0):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "concurrent\futures\thread.pyc", line 81, in _worker

Python stack for thread 19252 (hwIo.ioThread.IoThread):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "hwIo\ioThread.pyc", line 258, in run

Python stack for thread 5368 (MainThread):
  File "nvda.pyw", line 415, in <module>
  File "core.pyc", line 911, in main
  File "wx\core.pyc", line 2262, in MainLoop
  File "wx\core.pyc", line 3427, in <lambda>
  File "core.pyc", line 841, in processRequest
  File "core.pyc", line 857, in Notify
  File "queueHandler.pyc", line 97, in pumpAll
  File "queueHandler.pyc", line 64, in flushQueue
  File "scriptHandler.pyc", line 243, in _queueScriptCallback
  File "keyboardHandler.pyc", line 571, in executeScript
  File "inputCore.pyc", line 224, in executeScript
  File "scriptHandler.pyc", line 295, in executeScript
  File "browseMode.pyc", line 558, in <lambda>
  File "browseMode.pyc", line 516, in _quickNavScript
  File "browseMode.pyc", line 2558, in _iterSimilarParagraph
  File "treeInterceptorHandler.pyc", line 234, in collapse
  File "NVDAObjects\UIA\__init__.pyc", line 928, in collapse

ERROR - watchdog.waitForFreezeRecovery (21:47:07.390) - watchdog (15216):
Core frozen in stack! (40.05815290000464 seconds)
INFO - watchdog.waitForFreezeRecovery (21:47:07.408) - watchdog (15216):
Listing stacks for Python threads:
Python stack for thread 20236 (nvwave.playWaveFile(error.wav)):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "nvwave.pyc", line 711, in play
  File "nvwave.pyc", line 912, in feed
  File "nvwave.pyc", line 888, in open
  File "nvwave.pyc", line 1009, in _setVolumeFromConfig
  File "nvwave.pyc", line 997, in setVolume

Python stack for thread 22088 (synthDrivers._espeak.BgThread):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "synthDrivers\_espeak.pyc", line 201, in run
  File "queue.pyc", line 171, in get
  File "threading.pyc", line 327, in wait

Python stack for thread 18488 (watchdog.CancellableCallThread.execute(<_FuncPtr object at 0x09F9EBE8>)):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "watchdog.pyc", line 382, in run
  File "threading.pyc", line 629, in wait
  File "threading.pyc", line 327, in wait

Python stack for thread 22060 (visionEnhancementProviders.NVDAHighlighter.NVDAHighlighter):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "visionEnhancementProviders\NVDAHighlighter.pyc", line 452, in _run
  File "winUser.pyc", line 460, in getMessage

Python stack for thread 15216 (watchdog):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "watchdog.pyc", line 159, in _watcher
  File "watchdog.pyc", line 187, in waitForFreezeRecovery
  File "logHandler.pyc", line 64, in getFormattedStacksForAllThreads

Python stack for thread 15192 (winInputHook):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "winInputHook.pyc", line 81, in hookThreadFunc

Python stack for thread 15276 (UIAHandler.UIAHandler.MTAThread):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "UIAHandler\__init__.pyc", line 544, in MTAThreadFunc
  File "queue.pyc", line 171, in get
  File "threading.pyc", line 327, in wait

Python stack for thread 16260 (ThreadPoolExecutor-0_0):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "threading.pyc", line 982, in run
  File "concurrent\futures\thread.pyc", line 81, in _worker

Python stack for thread 19252 (hwIo.ioThread.IoThread):
  File "threading.pyc", line 1002, in _bootstrap
  File "threading.pyc", line 1045, in _bootstrap_inner
  File "hwIo\ioThread.pyc", line 258, in run

Python stack for thread 5368 (MainThread):
  File "nvda.pyw", line 415, in <module>
  File "core.pyc", line 911, in main
  File "wx\core.pyc", line 2262, in MainLoop
  File "wx\core.pyc", line 3427, in <lambda>
  File "core.pyc", line 841, in processRequest
  File "core.pyc", line 857, in Notify
  File "queueHandler.pyc", line 97, in pumpAll
  File "queueHandler.pyc", line 64, in flushQueue
  File "scriptHandler.pyc", line 243, in _queueScriptCallback
  File "keyboardHandler.pyc", line 571, in executeScript
  File "inputCore.pyc", line 224, in executeScript
  File "scriptHandler.pyc", line 295, in executeScript
  File "browseMode.pyc", line 558, in <lambda>
  File "browseMode.pyc", line 516, in _quickNavScript
  File "browseMode.pyc", line 2560, in _iterSimilarParagraph
  File "browseMode.pyc", line 481, in paragraphFunc
  File "baseObject.pyc", line 41, in __get__
  File "treeInterceptorHandler.pyc", line 249, in _get_text
  File "baseObject.pyc", line 41, in __get__
  File "NVDAObjects\UIA\__init__.pyc", line 881, in _get_text
  File "NVDAObjects\UIA\__init__.pyc", line 582, in _getTextFromUIARange

IO - speech.speech.speak (21:47:21.380) - MainThread (5368):
Speaking ['no next text paragraph']
INFO - watchdog.waitForFreezeRecovery (21:47:21.396) - watchdog (15216):
Recovered from freeze after 54.06463259999873 seconds.

Expected behavior:

No freez and everything works similar to when UIA is set to "no".

NVDA logs, crash dumps and other attachments:

n/a

System configuration

NVDA installed/portable/running from source:

Installed

NVDA version:

alpha-31645,bf96860d (2024.2.0.31645)

Windows version:

Windows 11 23 H2

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

Edge Chromium 124

Other information about your system:

Asus Rog Strix with 32 GB DDR6, NVIDIA Grafics GTX 3070TI with 8 gb GDDR, Intel I12900HK processor.

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-on in use

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

yes

@Adriani90
Copy link
Collaborator Author

cc: @mltony

@Adriani90
Copy link
Collaborator Author

This will also affect the HP browser.

@seanbudd seanbudd added bug/freeze p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation. app/edge/anaheim MS browser, chromium based, replaces Spartan in 2019 by Anaheim. NVDA access via IA2. api/uia Feature or bug requires an understanding of UIA labels Apr 22, 2024
@Adriani90
Copy link
Collaborator Author

@mltony can you look into this as well? UIA in browsers is not fully mature yet but if someone uses it and presses p accidentally when next paragraph can be found, the user ends up with its keyboard frozen for several minutes. Quite severe issue in my view because p is assigned by default.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api/uia Feature or bug requires an understanding of UIA app/edge/anaheim MS browser, chromium based, replaces Spartan in 2019 by Anaheim. NVDA access via IA2. bug/freeze p3 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants