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

Crash NVDA: Unigram, video mouseover, OS Error, stack overflow #17555

Open
alekssamos opened this issue Dec 19, 2024 · 1 comment
Open

Crash NVDA: Unigram, video mouseover, OS Error, stack overflow #17555

alekssamos opened this issue Dec 19, 2024 · 1 comment

Comments

@alekssamos
Copy link

Steps to reproduce:

  1. Open NVDA mouse settings, enable voicing everything, including the object under the mouse pointer.

  2. Open a large channel in Unigram, where there is an HLS video. Turn on the video in Unigram;

  3. Move the mouse cursor over this open video;

  4. The bug is not always reproduced, but from time to time, today it is, tomorrow it is not.

Actual behavior:

Expected behavior:

NVDA crashes:

NVDA logs, crash dumps and other attachments:

INFO - UIAHandler.UIAHandler.MTAThreadFunc (15:52:31.383) - UIAHandler.UIAHandler.MTAThread (4944):
UIAutomation: IUIAutomation6
ERROR - mouseHandler.initialize (15:52:32.693) - MainThread (7136):
Error retrieving initial mouse object
Traceback (most recent call last):
  File "mouseHandler.pyc", line 264, in initialize
  File "NVDAObjects\__init__.pyc", line 335, in objectFromPoint
  File "NVDAObjects\__init__.pyc", line 263, in findBestAPIClass
  File "NVDAObjects\__init__.pyc", line 262, in findBestAPIClass
  File "NVDAObjects\UIA\__init__.pyc", line 1477, in kwargsFromSuper
OSError: exception: stack overflow

System configuration

NVDA installed

NVDA version: 2024.4.1

Windows version: 10, 22H2 (OS build 19045.5247)

Name and version of other software in use when reproducing the issue: Unigram The last version in the store on December 19th

Other information about your system: Lenovo B590 20208, SSD, 8 GB RAM, Intel® Core™ i5-3230M CPU @ 2.60GHz

Other questions

Does the issue still occur after restarting your computer?

Sometimes yes, sometimes no. Floating problem.

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

Yes, it is also reproduce: in other versions.

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

Yes, even without addons.

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

No, it didn't help. There is a problem.

@gerald-hartig
Copy link
Collaborator

Suggested idea:

  • NVDAObjects\__init__.py, around line 267 in the findBestAPIClass method: add a check to stop infinite recursion. Add a condition to break the recursion if no suitable API class can be found after a certain number of attempts. Or, before attempting a call to the next class's findBestAPIClass check if the class is the same as the one before
  • NVDAObjects\UIA\__init__.py, around line 1480 in the kwargsFromSuper method: Handle non-native elements correctly.
  • NVDAObjects\UIA\__init__.py, around line 1552 in the __init__ method: Add a check if the UIAElement is a native UIA element, and raise InvalidNVDAObject if it is not.
        if not UIAHandler.handler.isNativeUIAElement(UIAElement):
             raise InvalidNVDAObject("This UIA element is not native")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants