Opened 2 years ago

Closed 2 years ago

Last modified 2 years ago

#2089 closed defect (fixed)

Errors and lags in VirtualBox Create new VM dialog

Reported by: Ahiiron Owned by:
Priority: minor Milestone: 2012.1
Component: Core Version: 2012.1beta1
Keywords: regression Cc:
Operating system: Windows 7 Blocked by:
Blocking:
Changes document entry (for developers):

Description

NVDA main-4970, VirtualBox 4.0.16, Win7x64

STR:

  1. CTRL-N for new VM dialog;
  2. Space/enter on Next;
  3. When VM Name appears, NVDA plays error sound and lags before speaking the field name.
  4. Tab and shift-tab, more errors. Below is log output: Seems to just go on forever with this. File "baseObject.pyc", line 110, in _getPropertyViaCache File "NVDAObjects\IAccessible\init.pyc", line 1255, in _get_presentationType File "baseObject.pyc", line 34, in get File "baseObject.pyc", line 110, in _getPropertyViaCache File "NVDAObjects\init.pyc", line 532, in _get_presentationType File "baseObject.pyc", line 34, in get File "baseObject.pyc", line 110, in _getPropertyViaCache File "NVDAObjects\IAccessible\init.pyc", line 1373, in _get_description File "baseObject.pyc", line 34, in get File "baseObject.pyc", line 110, in _getPropertyViaCache File "NVDAObjects\init.pyc", line 590, in _get_simpleNext File "NVDAObjects\init.pyc", line 582, in _findSimpleNext File "baseObject.pyc", line 34, in get File "baseObject.pyc", line 110, in _getPropertyViaCache File "NVDAObjects\IAccessible\init.pyc", line 888, in _get_parent File "baseObject.pyc", line 34, in get File "baseObject.pyc", line 110, in _getPropertyViaCache File "NVDAObjects\IAccessible\init.pyc", line 1318, in _get_parent File "baseObject.pyc", line 34, in get File "baseObject.pyc", line 110, in _getPropertyViaCache File "NVDAObjects\window\init.pyc", line 260, in _get_parent File "NVDAObjects\init.pyc", line 72, in call File "NVDAObjects\IAccessible\init.pyc", line 374, in findOverlayClasses File "baseObject.pyc", line 34, in get File "baseObject.pyc", line 110, in _getPropertyViaCache File "NVDAObjects\IAccessible\init.pyc", line 741, in _get_IAccessibleRole File "comtypes\init.pyc", line 795, in call

ArgumentError: argument 1: <type 'exceptions.RuntimeError'>: maximum recursion depth exceeded

Change History (6)

comment:1 Changed 2 years ago by Ahiiron

Other info:

Also tested with NVDA 2011.3 and 2012.1b1. The issue doesn't occur with 2011.3, but does occur with 2012.1B1. To ensure things are truly not working, all GlobalPlugins and userConfigs were removed and tested with clean installs.

comment:2 Changed 2 years ago by jteh

  • Keywords regression added
  • Version changed from development to 2012.1beta1

comment:3 Changed 2 years ago by jteh

Please attach a full log file with log level set to input/output. There is info I'm missing here.

comment:4 Changed 2 years ago by jteh

  • Milestone set to 2012.1

Regression caused by changeset:797c414b40da302aceb51fdecafea56becb9dc67.

This occurs because there is a grouping above the controls which uses NVDAObjects.IAccessible.Groupbox. Groupbox.description now uses simpleNext, but simpleNext loops on those groupings. The loop is caused by code in IAccessible.parent which forces the window root to be the parent when it is deliberately skipped (changeset:37888f305eeb8a94db7d005f329324610b63ea24).

There are several possible solutions:

  1. Restrict the Groupbox NVDAObject so it only works on certain group boxes.
  2. Don't use simpleNext in Groupbox.description, instead traversing window root objects directly.
  3. Restrict changeset:37888f305eeb8a94db7d005f329324610b63ea24 so it only gets used where absolutely necessary.

2 is least likely to cause regressions, though I wonder if 1 or 3 is the more correct solution to avoid future issues like this.

comment:5 Changed 2 years ago by jteh

  • Resolution set to fixed
  • Status changed from new to closed

Fixed in changeset:280aaca0b6d05af0719d2a3069bbebc1270e16a6. I implemented solution 2, as simpleNext is likely to cause more problems here. I still think we should consider the other solutions in future, but that is a different issue.

comment:6 Changed 2 years ago by Ahiiron

Excellent! Confirmed fixed in main-4992

Note: See TracTickets for help on using tickets.