Opened 3 years ago

Closed 18 months ago

#1218 closed defect (fixed)

Adobe Reader 10 crashes when a document is opened in it with NVDA

Reported by: k_kolev1985 Owned by:
Priority: minor Milestone:
Component: Core Version: 2011.3beta1
Keywords: needsExternalFix Cc:
Operating system: Blocked by:
Blocking:
Changes document entry (for developers):

Description

I've recently installed the new Adobe Reader 10 (aka Adobe Reader X). As soon as I open a PDF document in it (no matter if throughout Windows Explorer or from within Adobe Reader itself) and select the method of reading (if the document is not tagged), a couple of seconds later Adobe Reader 10 crashes. After a few tests I realized that this doesn't happen if the so called "Navigation pane" is not visible (it is toggled with F4). A good example of this scenario can be observed with the tagged PDF manual for iPhone downloadable from the following link:
http://manuals.info.apple.com/en_US/iPhone_iOS4_User_Guide.pdf
In this file there are tags and the dialog witch asks you for the reading mode is not displayed. By default however the "Navigation pane" is displayed on the left side of the Adobe Reader window. I was quick enough to press F4 moments after the document was loaded and Adobe Reader didn't crash. But if I leave it open (the "navigation pane"), seconds later Adobe Reader crashes. But if there are no tags in the document and the "Reading non-tagged document" dialog appears, seconds after I make my choices in this dialog and press ENTER to continue and the dialog for document preparation is closed, Adobe Reader crashes. I've tested this with NVDA 2010.2 and the latest snapshot as of this writing (r3941) and the result is the same as described above. I've managed to test it with another screen reader running (JAWS v11.0) and didn't experienced such crashes from Adobe Reader.
Steps to reproduce:

  1. Open a PDF document in Adobe Reader 10. Good examples are:

http://manuals.info.apple.com/en_US/iPhone_iOS4_User_Guide.pdf - this is a tagged PDF document. Or:
http://pioneer.ipapercms.dk/Manuals/DEH_2220UB_YRD5303_manual/GetPDF.ashx - this is a non-tagged PDF document. Hope the link works.

  1. If the "Reading Untagged Document" dialog appears (in the case of the 2nd file it will) - select "Infer reading order from document (recommended)" from the "Reading Order:" combo box and press ENTER. After this Adobe Reader 10 crashes.
  2. If you open the PDF from the 1st link and you do not touch anything, Adobe Reader 10 also crashes. But if you manage to press F4 immediately after opening the PDF from the 1st link and by doing that closing (hiding) the "Navigation pane", it is more likely that Adobe Reader will not crash.

NOTE: Before I upgraded to Adobe Reader 10, I was using Adobe Reader 9.4.1 also with the latest snapshots of NVDA and didn't experience such problems.

Change History (17)

comment:1 follow-up: Changed 3 years ago by mdcurran

  • Milestone set to 2011.1

I can definitely reproduce the crash with an untagged document. However, I think it happens for me whether or not the navigation pane is there or not.
I have narrowed the issue down to a call to IAccessible::get_accParent on an Acrobat text node IAccessible (the one that says alert document being processed). This text node very quicly gets focus as you close the first dialog (before the second progress dialog gains focus). However the call to accParent doesn't seem to crash the app via the call atomically... I think it makes it very unstable and then with in the next second or so it will crash (as I do sometimes get to see the start of the progress dialog, and usually 1 or two beeps).
I have definitely ruled out any problems with our specific support for any custom acrobat COM interfaces (such as IPDDom etc). If you remove the mapping of AcrobatNode and AcrobatTextNode from _staticMap in NVDAObjects.IAccessible, but then force NVDAObjects.IAccessible.IAccessible.shouldAllowIAccessibleFocusEvent to true, the crash still occures.
Only by setting AcrobatTextNode.parent to None does the crash stop.
I'm not though sure if its definitely the first call to accParent, or a subsiquent call of accParent on one of its parents.
But it does definitely occure somewhere in api.setFocusObject().
I think this bug technically needs to be fixed in Adobe Reader X itself. I can't quite think of anything good we could do on our end. ... Perhaps we could for now disallow calls to accParent on any acrobatTextNode who's name is 'alert' as this is the special alert empty documentnode.

comment:2 Changed 3 years ago by jteh

Hmm. I'm sure I've seen this in Adobe Reader before. If I recall correctly, this was the same behaviour I discovered with Reader 9 if I set a post-mortem debugger using aeDebug. However, with aeDebug disabled, there was no crash.

Mick, if you have aeDebug enabled, please try with it disabled.

comment:3 Changed 3 years ago by mdcurran

Nope, I don't have AE debug enabled on this machine. Note I see the "Adobe reader has stopped working, Windows is checking for a solution" dialog.

comment:4 Changed 3 years ago by briang1

  • Operating system Windows 7 deleted

Have you tried saying use left to right top to bottom? This seems not to crash, of course in some untagged documents it produces gibberish, but I'm only interested in the crash. This seems to be the case in XP at any rate.

I'd also mention that if you leave protected mode at start up enabled in the genereral settings processing will not crash. Of course then you cannot read the document, which seems pointless!

As an addendum to this. I only spotted this adjustment when I forced reading of the little alert that popped up about detecting you using access technology, which nvda seems unable to read by default.
It says..
Adobe Reader has detected that you may be using Assistive Technology on your computer. While using Adobe Reader with Protected Mode enabled on Windows XP operating systems, some Assistive Technologies may not be able to read some document content. If you do encounter problems, turning off Protected Mode may help. This can be done by choosing Edit > Preferences > General and unchecking Enable Protected Mode at startup.

Its worth noting that the text on the untagged screen is also not being read either, and never has been.
The crash does not occur in Hal, but still occurs in 2010.1 I notice.
Also of course, if you remove nvda, hit the prepare button, then reboot nvda, you can read the document OK.

In the meantime I'm going to go back to 9, which is a shame as I feel X is faster.

comment:5 Changed 3 years ago by k_kolev1985

Well, I tried all reading modes, including "Left-to-right, Top-to-bottom" and "Use reading order in raw print stream", and those 2 work for some documents, and do not work for others. Maybe it depends on the number of pages in the document - I don't know.
Now I've done some more testing, and here's what I've found. If I set Adobe Reader to prepare the document one page at a time, the crash doesn't happen, no matter witch reading mode is selected. But again, only if the dialog witch appears when a document is being prepared for reading does not show. This occurs if the preparation is short. And the preparation is short in time when only 1 page of the document is being prepared at a time, and specially when a reading mode other than "Infer reading order from document" is selected. The "Infer reading mode from document" reading mode takes more time and the dialog may appear even for a short time, witch is enough for the crash to occur.
I don't plan to return to v9, because I almost every time open my PDFs in Balabolka and read them that way. Of course, this "trick" doesn't work well with all documents, and in such situations I have to switch to JAWS to read such a document in Adobe Reader. And I also think that Adobe Reader X is faster than V9.

comment:6 Changed 3 years ago by briang1

I agree with all you say, I did find a long document, and as you suggest, processing it all at once in any of the three modes crashes Adobe reader if NVDA is running.
As nobody has done so yet here is a log of the nvda happenings from file selection to the crash recovery.

Question, why does it appear that the Acro file which is the running program closes after the file is loaded, and what is the point of watchdog seeing problems in html routines, then there is the persistent weird errors as things progress..

IO - speech.speakText (16:42:45):
Speaking u'destination_kingston.pdf 10 of 42'
IO - speech.speakText (16:42:45):
Speaking u'Type: Adobe Acrobat Document\nDate Modified: 28/01/2009 19:01\nSize: 3.92 MB tool tip'
IO - inputCore.InputManager.executeGesture (16:42:49):
Input: kb(desktop):enter
DEBUG - appModuleHandler.update (16:42:49):
application acrord32 closed
DEBUGWARNING - IAccessibleHandler.accessibleObjectFromEvent (16:42:49):
oleacc.AccessibleObjectFromEvent with window 2294754, objectID -4 and childID 0: [Error -2147467259] Unspecified error
DEBUGWARNING - watchdog._watcher (16:42:49):
Trying to recover from freeze, core stack:

File "nvda.pyw", line 139, in <module>
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 248, in Notify
File "IAccessibleHandler.pyc", line 831, in pumpAll
File "IAccessibleHandler.pyc", line 747, in processForegroundWinEvent
File "IAccessibleHandler.pyc", line 533, in winEventToNVDAEvent
File "NVDAObjects\IAccessible\init.pyc", line 43, in getNVDAObjectFromEvent
File "NVDAObjects\init.pyc", line 55, in call
File "NVDAObjects\init.pyc", line 175, in findBestAPIClass
File "NVDAObjects\IAccessible\MSHTML.pyc", line 307, in kwargsFromSuper
File "NVDAObjects\IAccessible\MSHTML.pyc", line 74, in HTMLNodeFromIAccessible
File "comtypes\init.pyc", line 795, in call

IO - speech.speakText (16:42:50):
Speaking u'destination_kingston.pdf - Adobe Reader'
IO - speech.speakText (16:42:50):
Speaking u'pane'
IO - speech.speakText (16:42:50):
Speaking u'Reading Untagged Document dialog \n'
IO - speech.speakText (16:42:50):
Speaking u'Reading Order: combo box Infer reading order from document (recommended) Alt+r'
IO - inputCore.InputManager.executeGesture (16:42:55):
Input: kb(desktop):tab
IO - speech.speakText (16:42:55):
Speaking u'Read the entire document radio button checked Alt+d'
IO - inputCore.InputManager.executeGesture (16:42:57):
Input: kb(desktop):tab
IO - speech.speakText (16:42:58):
Speaking u'Always use the settings from the Reading Preferences (Do not show this dialog again) check box not checked Alt+a'
IO - inputCore.InputManager.executeGesture (16:43:00):
Input: kb(desktop):tab
IO - speech.speakText (16:43:00):
Speaking u'Start button Alt+s'
IO - inputCore.InputManager.executeGesture (16:43:01):
Input: kb(desktop):enter
IO - speech.speakText (16:43:01):
Speaking u'destination_kingston.pdf - Adobe Reader'
IO - speech.speakText (16:43:01):
Speaking u'pane'
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.AcrobatNode.initOverlayClass (16:43:01):
Error getting IPDDomNode
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.AcrobatNode.initOverlayClass (16:43:01):
Failed to get ID from IAccID
Traceback (most recent call last):

File "NVDAObjects\IAccessible\adobeAcrobat.pyc", line 63, in initOverlayClass
File "comtypes\init.pyc", line 1111, in QueryService

COMError: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None))
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.AcrobatNode.initOverlayClass (16:43:01):
Error getting IPDDomNode
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.Dynamic_AcrobatNodeWindowRootIAccessible.initOverlayClass (16:43:01):
Error getting IPDDomNode
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.AcrobatNode.initOverlayClass (16:43:01):
Error getting IPDDomNode
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.AcrobatNode.initOverlayClass (16:43:01):
Failed to get ID from IAccID
Traceback (most recent call last):

File "NVDAObjects\IAccessible\adobeAcrobat.pyc", line 63, in initOverlayClass
File "comtypes\init.pyc", line 1111, in QueryService

COMError: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None))
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.AcrobatNode.initOverlayClass (16:43:01):
Error getting IPDDomNode
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.Dynamic_AcrobatNodeWindowRootIAccessible.initOverlayClass (16:43:01):
Error getting IPDDomNode
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.AcrobatNode.initOverlayClass (16:43:01):
Error getting IPDDomNode
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.AcrobatNode.initOverlayClass (16:43:01):
Failed to get ID from IAccID
Traceback (most recent call last):

File "NVDAObjects\IAccessible\adobeAcrobat.pyc", line 63, in initOverlayClass
File "comtypes\init.pyc", line 1111, in QueryService

COMError: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None))
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.AcrobatNode.initOverlayClass (16:43:01):
Error getting IPDDomNode
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.Dynamic_AcrobatNodeWindowRootIAccessible.initOverlayClass (16:43:01):
Error getting IPDDomNode
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.AcrobatNode.initOverlayClass (16:43:01):
Error getting IPDDomNode
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.AcrobatNode.initOverlayClass (16:43:01):
Failed to get ID from IAccID
Traceback (most recent call last):

File "NVDAObjects\IAccessible\adobeAcrobat.pyc", line 63, in initOverlayClass
File "comtypes\init.pyc", line 1111, in QueryService

COMError: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None))
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.AcrobatNode.initOverlayClass (16:43:01):
Error getting IPDDomNode
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.Dynamic_AcrobatNodeWindowRootIAccessible.initOverlayClass (16:43:01):
Error getting IPDDomNode
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.AcrobatNode.initOverlayClass (16:43:01):
Error getting IPDDomNode
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.AcrobatNode.initOverlayClass (16:43:01):
Failed to get ID from IAccID
Traceback (most recent call last):

File "NVDAObjects\IAccessible\adobeAcrobat.pyc", line 63, in initOverlayClass
File "comtypes\init.pyc", line 1111, in QueryService

COMError: (-2147024809, 'The parameter is incorrect.', (None, None, None, 0, None))
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.AcrobatNode.initOverlayClass (16:43:01):
Error getting IPDDomNode
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.Dynamic_AcrobatNodeWindowRootIAccessible.initOverlayClass (16:43:01):
Error getting IPDDomNode
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.AcrobatNode.initOverlayClass (16:43:01):
Error getting IPDDomNode
DEBUGWARNING - NVDAObjects.IAccessible.adobeAcrobat.Dynamic_AcrobatNodeWindowRootIAccessible.initOverlayClass (16:43:01):
Error getting IPDDomNode
IO - speech.speakText (16:43:01):
Speaking u'pane'
IO - speech.speakText (16:43:01):
Speaking u'edit unavailable'
IO - speech.speakText (16:43:01):
Speaking u'blank'
IO - speech.speakText (16:43:01):
Speaking u'Content Preparation Progress dialog \n'
IO - speech.speakText (16:43:01):
Speaking u'Cancel button'
IO - tones.beep (16:43:01):
Beep at pitch 116.271984462, for 40 ms, left volume 50, right volume 50
IO - speech.speakText (16:43:01):
Speaking u'2 percent'
DEBUGWARNING - RPC: dwwin.exe, nvdaHelper\build\x86\remote\ia2Support.cpp, installIA2Support, line 77 (16:43:02):
Error registering class object, code -2147221008
DEBUGWARNING - RPC: dwwin.exe, nvdaHelper\build\x86\remote\ia2Support.cpp, installIA2Support, line 77 (16:43:02):
Error registering class object, code -2147221008
DEBUGWARNING - RPC: dwwin.exe, nvdaHelper\build\x86\remote\ia2Support.cpp, installIA2Support, line 77 (16:43:02):
Error registering class object, code -2147221008
IO - speech.speakText (16:43:02):
Speaking u'Adobe Reader dialog If you were in the middle of something, the information you were working on might be lost. We have created an error report that you can send to us. We will treat this report as confidential and anonymous. To see what data this error report contains,'
IO - speech.speakText (16:43:02):
Speaking u"Don't Send button Alt+d"
IO - inputCore.InputManager.executeGesture (16:43:09):
Input: kb(desktop):space
IO - speech._speakSpellingGen (16:43:09):
Speaking character u'space'
IO - speech.speakText (16:43:09):
Speaking u'pressed'
DEBUGWARNING - RPC: dwwin.exe, nvdaHelper\build\x86\remote\ia2Support.cpp, installIA2Support, line 77 (16:43:09):
Error registering class object, code -2147221008
DEBUGWARNING - RPC: dwwin.exe, nvdaHelper\build\x86\remote\ia2Support.cpp, installIA2Support, line 77 (16:43:09):
Error registering class object, code -2147221008
DEBUGWARNING - IAccessibleHandler.accessibleObjectFromEvent (16:43:10):
oleacc.AccessibleObjectFromEvent with window 2229150, objectID -4 and childID 0: [Error -2147024809] The parameter is incorrect
IO - speech.speakText (16:43:10):
Speaking u'unknown'
DEBUG - appModuleHandler.update (16:43:10):
application acrord32 closed
DEBUG - appModuleHandler.update (16:43:10):
application dwwin closed
IO - speech.speakText (16:43:10):
Speaking u'Taskbar'
Note I also have the file that the error produced for sending to Microsoft, but its really long and impenetrable so I'm just filing it!

comment:7 Changed 3 years ago by mdcurran

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

Fixed with a hack in changeset:21afe4b9db84d0100fba62fffe0093cf39f13fd1. Once this bug is much more appropriately fixed in Adobe Reader X, then this hack can be removed, as it does cause other annoying side affects.

comment:8 Changed 3 years ago by mdcurran

  • Resolution fixed deleted
  • Status changed from closed to reopened

This bug still occures. Not sure why I thought it was fixed.

comment:9 Changed 3 years ago by mdcurran

  • Milestone changed from 2011.1 to 2011.2

comment:10 follow-up: Changed 3 years ago by mdcurran

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

Actually, could k_kolev1985 or Briang1 please comment on this ticket as to whether the bug is fixed for them?
I'm silly and have been running NVDA 2011.1beta1 as my official NVDA (when not developing) and I did not realize my fix was actually after that :p Testing now with 2011.1.1 I do not get the crash.
I will close again as fixed, but please either of you reopen if it still occures.

comment:11 Changed 3 years ago by mdcurran

  • Milestone changed from 2011.2 to 2011.1

comment:12 Changed 3 years ago by k_kolev1985

I've tested it with NVDA 2011.1.1 and main r4153 and no crash occurred, even when Adobe Reader is set to process more than 1 page at a time (the test PDF had over 40 pages). My version of Adobe Reader is 10.0.1. Actually, recently I had some crashes of Adobe Reader during PDF processing, but it was very rare and hard to reproduce.
But I guess that I might know why was the crash occurring - the processing begins, but the dialog is not visually shown on the screen and that caused some kind of exception. But again - that is only a guess. Anyway, lets hope that it won't brake again :).

comment:13 Changed 3 years ago by briang1

OK, as I said when I saw the ticket reopened early today in the list, it is OK now. I've not experienced the exception mentioned though, but then I just want to read documants and don't try anything to clever by openeing several at once.

With the obvious proviso you mentioned near the start that the actual problem is Adobes, its fixed.

comment:14 in reply to: ↑ 1 Changed 3 years ago by kevinchao89

I use Adobe Reader X with NVDA all of the time, including latest Reader X and NVDA snapshot. I've not seen it crash with any of my PDF's or the ones you referenced. I've even enabled navigation pane.

comment:15 in reply to: ↑ 10 Changed 3 years ago by ghoath

  • Resolution fixed deleted
  • Status changed from closed to reopened
  • Version set to 2011.3beta1

Actually, this bug is still occurring for me in 2011.3 Beta 1 and was also doing so in 2011.2.

It occurs for me if I press enter too quickly on the reading options dialog. This includes straight pressing enter, or tabbing to the Start button and pressing Enter.

The only way I have found to get around it is to wait for the whole dialog to be read, tab to the Start button and press Space.

When this has been done successfully, there is no problem for the rest of my windows session. I am then am able to quickly press enter at the dialog in subsequent opening of PDFs.

comment:16 Changed 3 years ago by jteh

  • Milestone changed from 2011.1 to near-term

As noted earlier, this is due to a bug in Adobe Reader. We've done our best to work around it, so if it's still occurring, there must be another way to trigger it. Unfortunately, it's incredibly difficult to pin this down and I can't come up with any more work arounds at this point.

comment:17 Changed 18 months ago by jteh

  • Keywords needsExternalFix added
  • Milestone near-term deleted
  • Resolution set to fixed
  • Status changed from reopened to closed

This is fixed in Adobe Reader XI.

Note: See TracTickets for help on using tickets.