Liblouis or nvda bug randomly created a traceback. #4457

Closed
nvaccessAuto opened this Issue Sep 14, 2014 · 10 comments

Projects

None yet

3 participants

@nvaccessAuto

Reported by driemer.riemer@... on 2014-09-14 10:52
The other day while doing math homework I was activating my braille configuration profile, which caused nvda to gain focus on my editor after activating the profile. Nvda randomly made the error tone, causing me to look at the log. I found a snippet, and think this could be a bug in liblouis. I asked in the chat room, and mesar also had suspission it could be liblouis as well. I provided the whole log so that tthere is useful edge cases to know when it happened, but I will paste the traceback elow.

Input: kb(laptop):downArrow
IO - speech.speak (19:57:03):
Speaking [('en_US'), u'autobraille'](LangChangeCommand)
IO - inputCore.InputManager.executeGesture (19:57:03):
Input: kb(laptop):enter
DEBUG - brailleDisplayDrivers.freedomScientific.BrailleDisplayDriver._configureDisplay (19:57:03):
Activating extended keys on freedom Scientific display. Display name: Focus, firmware version: 4.89.
INFO - braille.BrailleHandler.setDisplayByName (19:57:03):
Loaded braille display driver freedomScientific, current display has 40 cells.
IO - speech.speak (19:57:03):
Speaking [('en_US'), u'EdSharp - [hw4.txt](LangChangeCommand)']
ERROR - eventHandler.executeEvent (19:57:03):
error executing event: gainFocus on <NVDAObjects.IAccessible.IAccessible object at 0x056142F0> with extra args of {}
Traceback (most recent call last):
  File "eventHandler.pyc", line 143, in executeEvent
  File "eventHandler.pyc", line 91, in __init__
  File "eventHandler.pyc", line 98, in next
  File "C:\Users\Derek Riemer\AppData\Roaming\nvda\addons\AudioThemes3D\globalPlugins\AudioThemes\__init__.py", line 88, in event_gainFocus
  File "eventHandler.pyc", line 98, in next
  File "NVDAObjects\__init__.pyc", line 863, in event_gainFocus
  File "braille.pyc", line 1406, in handleGainFocus
  File "braille.pyc", line 1410, in _doNewObject
  File "braille.pyc", line 1200, in getFocusRegions
  File "braille.pyc", line 556, in update
  File "braille.pyc", line 386, in update
  File "louis\__init__.pyc", line 136, in translate
WindowsError: exception: access violation reading 0x3585C052
IO - speech.speak (19:57:03):
Speaking [('en_US'), u'hw4.txt'](LangChangeCommand)
@nvaccessAuto

Attachment nvda.log added by driemer.riemer@... on 2014-09-14 10:52
Description:

@nvaccessAuto

Comment 1 by jteh on 2014-09-14 10:58
That's almost certainly a liblouis bug and could very probably lead to random crashes. Unfortunately, I can't see the exact text that it was trying to translate or the tables it was using, as the exception happened before that would have been logged. What table do you have configured?

@nvaccessAuto

Comment 2 by driemer.riemer@... on 2014-09-14 20:41
I was using the english u.s. computer braille table.

@nvaccessAuto

Comment 3 by jteh (in reply to comment 2) on 2014-09-15 06:54
Replying to driemer.riemer@…:

I was using the english u.s. computer braille table.

8 dot or 6 dot?

@nvaccessAuto

Comment 4 by driemer.riemer@... on 2014-09-15 06:59
8 dot.

@nvaccessAuto

Comment 5 by jteh on 2014-09-15 07:38
Are you able to reproduce this or did it only happen that once?

@jcsteh jcsteh was assigned by nvaccessAuto Nov 10, 2015
@jcsteh
Contributor
jcsteh commented Feb 16, 2016

Probable duplicates: #4914, #4960, #5039.

@jcsteh jcsteh assigned michaelDCurran and unassigned jcsteh Mar 8, 2016
@jcsteh jcsteh added this to the 2016.2 milestone Mar 8, 2016
@jcsteh
Contributor
jcsteh commented Mar 8, 2016

While there was no crash in this particular case, I suspect it's the same root cause as the probable duplicates I mentioned. It's pretty hard to reproduce, but we believe we've found a way.

@nvaccessAuto

Incubated in 877c44e.

@nvaccessAuto

Incubated in 4e67353.

@jcsteh jcsteh added a commit that closed this issue Mar 31, 2016
@michaelDCurran @jcsteh michaelDCurran + jcsteh NVDA no longer sometimes crashes when enabling braille output.
* Switch to NV Access fork of liblouis that fixes a major buffer overrun (GetModuleFilename in lou_getProgramPath). Submitted upstream as liblouis/liblouis#160.
* sconscript for liblouis: compile with level 2 warnings. This at least could have caught the GetModuleFilename bug.

Fixes #4457.
e9aa9ab
@jcsteh jcsteh closed this in e9aa9ab Mar 31, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment