Ticket #1437 (closed defect: fixed)

Opened 14 months ago

Last modified 12 months ago

NVDA crashes when running *any* WPF application

Reported by: aaronius Owned by:
Priority: major Milestone: 2011.2
Component: Core Version: 2011.1
Keywords: crash Cc: aaronlev@gmail.com
Operating system: Windows XP Blocked by:
Blocking:

Description

The following application crashes NVDA:
 https://www.blackberry.com/Downloads/quickdownload.do
NVDA just stops running. There is no crash dialog.

This application is using WPF and NVDA is likely accessing it via UI Automation.

Running on Windows XP.

Change History

comment:1 Changed 14 months ago by aaronius

  • Cc aaronlev@gmail.com added
  • Summary changed from NVDA crashes silently when running with BlackBerry Desktop Manager (WPF app) to NVDA crashes when running *any* WPF application

I've tested about 4 WPF apps now, and they all crash NVDA. Usually a silent crash with no dialog, but at least once a dialog did come up.

In fact one such app is the Blio e-Reader here:  http://www.blio.com/
This app was actually designed and developed in partnership with the NFB:
"Celebrated futurist Ray Kurzweil and the National Federation for the Blind (NFB) has partnered with thirteen23 to design and develop a next-generation eReader, blio. Blio is the first truly-accessible cross-platform eReader featuring millions of free, downloadable books. The team continues to work closely with KNFB and its partners, to bring blio to consumer and enterprise channels across desktop, web, and mobile devices."

comment:2 Changed 14 months ago by jteh

  • Keywords appCrash added

Does NVDA crash immediately when the app starts or do you have to use the app for a while to make it happen? Also, do you have the Windows XP Platform Update installed (which includes UI Automation)?

This is probably a duplicate of #1205.

comment:3 Changed 14 months ago by aaronius

It usually happens within a second but sometimes takes longer. Often the application won't respond before it happens.

I don't know if I have the Windows XP Platform Update. I just searched on the web but did not find anything.

comment:4 Changed 14 months ago by jteh

Within a second of starting with no user interaction or with some user interaction?

Start NVDA, open NVDA menu -> Tools -> Log Viewer and look for a line which says "UIA not available". If you don't see it, you have UIA support (and thus the platform update).

comment:5 Changed 14 months ago by aaronius

Even without user interaction. As soon as the main screen comes up it crashes. This is with BlackBerry? Desktop Manager.

The log viewer doesn't say "UIA not available".

comment:6 in reply to: ↑ description Changed 14 months ago by mdcurran

Replying to aaronius:

The following application crashes NVDA:
 https://www.blackberry.com/Downloads/quickdownload.do

When I go to that URL I get a page saying:
"Sorry, you have encountered an unexpected error. Please contact the webmaster."

comment:8 Changed 14 months ago by mdcurran

I successfully downloaded and installed the software.
However, on Win7 things seem to run ok. When I start the app, I am able to tab around and NVDA does not freeze for me. However, the accessibility of the actual controls in this app are a completely different story, but I'm sure you're aware of that.
Before I can provide more info, we are going to have to find a way to test this software on XP (which oddly enough is something that we do not have access to right now).

comment:9 Changed 14 months ago by aaronius

Do you have other data points that suggest that this is an XP problem? Also,
what about Vista? Thanks for looking at it.

comment:10 Changed 14 months ago by briang1

For those with XP who might want to test this...
Update for Windows XP (KB971513)
Download size: 744 KB , less than 1 minute
The Windows Automation API library contains the latest version of the Microsoft User Interface Automation (UI Automation) and Microsoft Active Accessibility libraries that are provided in Windows 7. After you install this item, you may have to restart your computer. Details...
Taken from Windows update. The reason I do not install it is that it seems to cause lock ups in visual basic macros in Access XP database applications, amongst other funnies, so be careful!

comment:11 Changed 14 months ago by jteh

@aaronius: Please try with this portable build and report findings:
http://www.nvda-project.org/test/nvda_snapshot_main-4146+uiaDisabled_portable.exe

comment:12 Changed 14 months ago by aaronius

That fixed it. No crash.

comment:13 Changed 14 months ago by briang1

Yes, as you probably saw in the dev group, this build stops the slow down and crashing of msaccess with macros as well.
Its interesting also to note that it also reduces the processor loading when nothing at all is running as well, from about 15 to 35 percent, down to a more normal 03 to 10 percent.

comment:14 Changed 14 months ago by jteh

  • Keywords crash added; appCrash removed
  • Milestone set to 2011.2

Current thinking is to disable UIA in XP by default, perhaps with a configuration option to turn it on for those that need it/want to try it. Clearly, UIA is even more unstable and broken in XP than it is in Windows 7. Unfortunately, not using UIA may mean that some .net controls (particularly some editable text fields) are inaccessible or less accessible, but there's nothing more we can do.

comment:15 follow-up: ↓ 16 Changed 14 months ago by aaronius

Can NVDA use the OSM for text fields in UIA apps? If not, is it worth warning the user when they load a UIA app that textfields will not be accessible unless they upgrade to a newer version of Windows?

Is Microsoft aware of the issue?

comment:16 in reply to: ↑ 15 Changed 14 months ago by jteh

Replying to aaronius:

Can NVDA use the OSM for text fields in UIA apps?

Depends on the particular control and how it is drawn.

If not, is it worth warning the user when they load a UIA app that textfields will not be accessible unless they upgrade to a newer version of Windows?

We probably won't be aware that it is a UIA app if UIA is disabled.

Is Microsoft aware of the issue?

I'm not sure. Aside from the symptoms, we don't understand the issue, nor do we know how to reproduce it without using NVDA itself, so we haven't reported it at this stage, not least because we don't have a useful channel to report such bugs so that they actually get attention.

comment:17 Changed 14 months ago by briang1

Well, when the XP uia update first appeared in 2009, there were quite a few problems experienced as could be read on the Microsoft forums, tough our particular one is quite specialised. Nothing appears to have been done or updated as the update is exactly the same as it was then, so I'd go with the turn it off by default as mentioned earlier with a config option. Not having7 here I do not know if this is any better. I suspect it might also cause at the very least processor loading issues from what I've read, but on faster hardware this might not really matter much.

Luckily for xP users, its still an optional update.

comment:18 Changed 12 months ago by jteh

Mick, after your further investigation, what are your thoughts on what we should do here? Should we just disable UIA for XP as previously suggested?

comment:19 Changed 12 months ago by mdcurran

I think disabling UIA in XP is the only option at this stage. Perhaps further in to the future we can investigate if executing these particular UIA calls directly from an MTA thread will solve the freeze/crash, but that's surely not for 2011.2.

comment:20 Changed 12 months ago by jteh

  • Status changed from new to closed
  • Priority changed from minor to major
  • Resolution set to fixed

This should be fixed by changeset:main,4372, where UIA was disabled altogether for XP/Vista.

comment:21 Changed 12 months ago by briang1

Well, It seems to be as I loaded kb971513 into my test machine and my access database still works.

I have tried a couple of other affected programs where processor usage hits showed up in nvda in task manager and see no issues. I cannot test it on Vista though.

Note: See TracTickets for help on using tickets.