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 2010.2/snaps causes Malwarebytes to give errors #1289
Comments
Comment 1 by briang1 on 2010-12-26 15:44 mbam.exe Path locked: C:\nvda release candidates\lib\NVDAHelperRemote.dll, PID: 3904, Handle: DLL, Process Path: C:\Program Files\Malwarebytes' Anti-Malware\mbam.exe mbam.exe Path locked: C:\nvda release candidates\lib\IAccessible2Proxy.dll, PID: 3904, Handle: DLL, Process Path: C:\Program Files\Malwarebytes' Anti-Malware\mbam.exe Hope this helps. above courtesy of Unlocker assistant. |
Comment 2 by briang1 on 2010-12-26 16:26 explorer.exe Path locked: C:\nvda release candidates\lib\NVDAHelperRemote.dll, PID: 1124, Handle: DLL, Process Path: C:\WINDOWS\explorer.exe explorer.exe Path locked: C:\nvda release candidates\lib\IAccessible2Proxy.dll, PID: 1124, Handle: DLL, Process Path: C:\WINDOWS\explorer.exe mbam.exe Path locked: C:\nvda release candidates\lib\NVDAHelperRemote.dll, PID: 3856, Handle: DLL, Process Path: C:\Program Files\Malwarebytes' Anti-Malware\mbam.exe mbam.exe Path locked: C:\nvda release candidates\lib\minHook.dll, PID: 3856, Handle: DLL, Process Path: C:\Program Files\Malwarebytes' Anti-Malware\mbam.exe mbam.exe Path locked: C:\nvda release candidates\lib\IAccessible2Proxy.dll, PID: 3856, Handle: DLL, Process Path: C:\Program Files\Malwarebytes' Anti-Malware\mbam.exe Snap 93 |
Comment 3 by jteh on 2010-12-27 01:35 |
Comment 4 by jteh on 2011-02-22 02:40 It looks like the crash is in nvdaHelperRemote. Unfortunately, using a debug build of nvdaHelper results in a stack full of loops due to trying to display a CRT message box, which is very unhelpful. |
Comment 5 by jteh on 2011-02-23 02:24
I think the part relevant to us is line 182 of nvdaHelper/remote/injection.cpp, which reads:
It looks like the process is exiting, so our manager thread has already been killed off, so we try to log an error. (There were no other threads.) The question is why logging an error causes a crash. I'm wondering whether the CRT has already been terminated or something like that. Mick, does that make any sense? I'm about to try this again with logging completely disabled. In theory, it shouldn't crash. |
Comment 6 by jteh on 2011-02-23 02:36
This time, it looks like the part that matters is line 139 of remote/inProcess.cpp, where we copy a map:
Looks like more CRT problems. Ug. In any case, it also looks like we're creating a new manager thread even though the previous one died because the process is exiting. We really need to be able to determine that the process is exiting and do nothing in this case. I haven't got any bright ideas just yet... |
Comment 7 by jteh on 2011-02-23 05:26
|
Comment 8 by jteh on 2011-02-24 07:14 Btw, an easier way to reproduce this on my system was to start the program, hit the Register button, alt+f4, then hit the Exit button. I'm not sure when next snapshot will go up, so I've provided a build of the dll for you to test here. Copy it into the lib directory of a recent 2011.1 snapshot (obviously while that copy is not running). |
Comment 9 by briang1 on 2011-02-25 09:36 |
Comment 10 by jteh (in reply to comment 9) on 2011-02-27 23:15
This is not true. I replaced nvdaHelperRemote.dll many times in a test portable copy without restarting while I was debugging and fixing this problem. Each time, it picked up the new copy.
In most cases, it does. However, there are some cases where the previous copy may not unload correctly from all applications if Windows refuses to release it. However, it will not load an old copy into a new application. So, for example, when testing this with MBAM, it is best to restart MBAM each time you start a copy of NVDA with a different nvdaHelperRemote.dll. |
Reported by briang1 on 2010-12-25 22:44
Since the new version of Malwarebytes has come out. version 1.50 and the latest version has made it worse. Running it with nvda has caused it to crash, and sometimes for nvda to lock up.
Simple way to produce the error.
Install latest version of Malwarebytes free version
tab to the exit button and hit space. an error sound is heard but no sound from nvda. If you hit space blind you will get control of nvda back.
If instead, you reboot nvda, it will read the error, which the log says is..
IO - speech.speakText (22:17:48):
Speaking u"Malwarebytes' Anti-Malware: mbam.exe - Application Error icon 1 of 4"
IO - speech.speakText (22:17:49):
Speaking u'Malwarebytes' Anti-Malware: mbam.exe - Application Error dialog The instruction at "0x04798162" referenced memory at "0x00000020". The memory could not be "written".\r\n\nClick on OK to terminate the program'
IO - speech.speakText (22:17:49):
Speaking u'OK button'
IO - inputCore.InputManager.executeGesture (22:18:04):
Input: kb(desktop):space
IO - speech.speakText (22:18:04):
Speaking u'pressed'
IO - speech.speakText (22:18:04):
If you look at the last log before you rebooted then you see it has nothing of the error, just a window not responding and some watchdog core frozen in stack warning messages. The nvda reboot does not sound the falling tones and the log is incomplete.
The addresses in these errors seem to vary, and whether its a read or write message does too, which makes me think the error is spurious.
These errors occur randomly, sometimes in install, sometimes when moving about the tabs etc, but the exit one is repeatable, hence highlighting it here.
I have reported it to Malwarebytes, but no actual reply about it as yet.
Note that 2010.1 does not cause the problems.
The end of a log looks like this.
Speaking u'Scan button'
IO - inputCore.InputManager.executeGesture (22:41:56):
Input: kb(desktop):tab
IO - speech.speakText (22:41:56):
Speaking u'Exit button'
IO - inputCore.InputManager.executeGesture (22:41:57):
Input: kb(desktop):space
IO - speech._speakSpellingGen (22:41:57):
Speaking character u'space'
IO - speech.speakText (22:41:57):
Speaking u'pressed'
DEBUGWARNING - watchdog._watcher (22:41:58):
Trying to recover from freeze, core stack:
File "nvda.pyw", line 139, in
File "core.pyc", line 263, in main
File "wx_core.pyc", line 8007, in MainLoop
File "wx_core.pyc", line 7303, in MainLoop
File "core.pyc", line 249, in Notify
File "queueHandler.pyc", line 77, in pumpAll
File "queueHandler.pyc", line 47, in flushQueue
File "eventHandler.pyc", line 54, in queueEventCallback
File "eventHandler.pyc", line 130, in executeEvent
File "eventHandler.pyc", line 143, in doPreGainFocus
File "api.pyc", line 104, in setFocusObject
File "baseObject.pyc", line 34, in get
File "baseObject.pyc", line 110, in getPropertyViaCache
File "NVDAObjects\IAccessible__init.pyc", line 845, in _get_parent
File "IAccessibleHandler.pyc", line 443, in accParent
WARNING - watchdog._watcher (22:42:13):
Core frozen in stack:
File "nvda.pyw", line 139, in
File "core.pyc", line 263, in main
File "wx_core.pyc", line 8007, in MainLoop
File "wx_core.pyc", line 7303, in MainLoop
File "core.pyc", line 249, in Notify
File "queueHandler.pyc", line 77, in pumpAll
File "queueHandler.pyc", line 47, in flushQueue
File "eventHandler.pyc", line 54, in queueEventCallback
File "eventHandler.pyc", line 130, in executeEvent
File "eventHandler.pyc", line 143, in doPreGainFocus
File "api.pyc", line 104, in setFocusObject
File "baseObject.pyc", line 34, in get
File "baseObject.pyc", line 110, in getPropertyViaCache
File "NVDAObjects\IAccessible__init.pyc", line 845, in _get_parent
File "IAccessibleHandler.pyc", line 443, in accParent
WARNING - watchdog.watcher (22:42:28):
Core frozen in stack:
File "nvda.pyw", line 139, in
File "core.pyc", line 263, in main
File "wx_core.pyc", line 8007, in MainLoop
File "wx_core.pyc", line 7303, in MainLoop
File "core.pyc", line 249, in Notify
File "queueHandler.pyc", line 77, in pumpAll
File "queueHandler.pyc", line 47, in flushQueue
File "eventHandler.pyc", line 54, in queueEventCallback
File "eventHandler.pyc", line 135, in executeEvent
File "eventHandler.pyc", line 84, in init
File "eventHandler.pyc", line 90, in next
File "NVDAObjects__init.pyc", line 769, in event_gainFocus
File "NVDAObjects__init__.pyc", line 713, in reportFocus
File "speech.pyc", line 272, in speakObject
File "speech.pyc", line 205, in speakObjectProperties
File "baseObject.pyc", line 34, in get
File "baseObject.pyc", line 110, in getPropertyViaCache
File "NVDAObjects\IAccessible__init_.pyc", line 799, in get_keyboardShortcut
File "comtypes__init_.pyc", line 795, in call
The text was updated successfully, but these errors were encountered: