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 when LibLouis component fails to process #2448

Closed
nvaccessAuto opened this issue Jun 13, 2012 · 6 comments
Closed

NVDA freezes when LibLouis component fails to process #2448

nvaccessAuto opened this issue Jun 13, 2012 · 6 comments

Comments

@nvaccessAuto
Copy link

Reported by aliminator on 2012-06-13 15:39
This happens when e.g. a braille table which is set in NVDA cannot be located or is malformed.
In that case NVDA freezes; eventually speech may be still active.
Nevertheless, NVDA becomes more unstable.
This issue might be solved by catching eventual exceptions thrown by LibLouis and then falling back to NoBraille.

@nvaccessAuto
Copy link
Author

Comment 1 by jteh on 2012-06-13 17:07
Please provide an example of how to reproduce this. We already catch exceptions from liblouis. Note that if liblouis itself freezes or crashes, we can't work around this. Also, none of the tables bundled with liblouis (and thus NVDA) should cause this problem, so this isn't a problem for most users.

@nvaccessAuto
Copy link
Author

Attachment de-de-comp8.ctb added by aliminator on 2012-07-04 08:08
Description:
Defect German 8-dot computer braille table

@nvaccessAuto
Copy link
Author

Comment 2 by aliminator on 2012-07-04 08:20
Replacing the original braille table through this one and setting NVDA to 8-dot German computer braille causes the braille display not to be initialized.
A complete freezing could not be observed anymore.
This is the stack trace extracted from the log viewer:
ERROR - eventHandler.executeEvent (10:11:52):
error executing event: becomeNavigatorObject on <NVDAObjects.window.Desktop object at 0x050A6690> with extra args of {}
Traceback (most recent call last):
File "eventHandler.pyo", line 136, in executeEvent
File "eventHandler.pyo", line 84, in init
File "eventHandler.pyo", line 91, in next
File "NVDAObjects__init__.pyo", line 791, in event_becomeNavigatorObject
File "braille.pyo", line 1396, in handleReviewMove
File "braille.pyo", line 1329, in doNewObject
File "braille.pyo", line 1130, in getFocusRegions
File "braille.pyo", line 487, in update
File "braille.pyo", line 343, in update
File "louis__init
_.pyo", line 125, in translate
RuntimeError: can't translate: tables 'braille-patterns.cti', inbuf Desktop Fenster, typeform None, cursorPos c_long(0), mode 20
ERROR - eventHandler.executeEvent (10:11:52):
error executing event: becomeNavigatorObject on <NVDAObjects.window.Desktop object at 0x050A6690> with extra args of {}
Traceback (most recent call last):
File "eventHandler.pyo", line 136, in executeEvent
File "eventHandler.pyo", line 84, in init
File "eventHandler.pyo", line 91, in next
File "NVDAObjects__init__.pyo", line 791, in event_becomeNavigatorObject
File "braille.pyo", line 1396, in handleReviewMove
File "braille.pyo", line 1329, in doNewObject
File "braille.pyo", line 1130, in getFocusRegions
File "braille.pyo", line 487, in update
File "braille.pyo", line 343, in update
File "louis__init
_.pyo", line 125, in translate
RuntimeError: can't translate: tables 'braille-patterns.cti', inbuf Desktop Fenster, typeform None, cursorPos c_long(0), mode 20
ERROR - core.main (10:11:52):
Traceback (most recent call last):
File "core.pyo", line 294, in main
File "braille.pyo", line 1291, in message
File "braille.pyo", line 343, in update
File "louis__init__.pyo", line 125, in translate
RuntimeError: can't translate: tables 'braille-patterns.cti', inbuf NVDA ist bereit., typeform None, cursorPos c_long(0), mode 20
INFO - core.main (10:11:52):
NVDA initialized

Maybe this should be displayed as e.g. "warning: error initialising braille table xy" or even the user should be warned.

@nvaccessAuto
Copy link
Author

Comment 3 by jteh on 2012-07-06 23:24
Unfortunately, all we know is that a single translation failed. We don't know whether it was an initialisation error or a problem specific to translating a single string. Thus, all we can do for now is log it as an error.

@nvaccessAuto
Copy link
Author

Comment 4 by jteh on 2012-07-06 23:25
Btw, you should probably use the lou_checktable tool before trying to use a table with NVDA.

@nvaccessAuto
Copy link
Author

Comment 5 by jteh on 2012-09-24 21:32
This doesn't need to be user visible. Most users shouldn't be replacing tables like this, and if they do, they should have some idea of what they're doing.

I do agree it'd be nice to log a more useful message, but this isn't possible as noted in comment:3. Given other work that needs to be done in liblouis and the fact that the lou_checktable tool exists, I doubt this is going to change any time soon, so closing as cantfix. If this changes, this can be reopened.
Changes:
Added labels: cantfix
State: closed

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

No branches or pull requests

2 participants