RFR 6415680 handle windows EXCEPTION_IN_PAGE_ERROR just as SIGBUS is handled

Kirk Shoop (MS OPEN TECH) Kirk.Shoop at microsoft.com
Tue Jun 23 22:14:21 UTC 2015


Hi,

webrev
  http://cr.openjdk.java.net/~kshoop/6415680/

bug:
  https://bugs.openjdk.java.net/browse/JDK-6415680 

The changes for unix to handle SIGBUS need matching work for Windows EXCEPTION_IN_PAGE_ERROR
This change uses handler_for_unsafe_access for in-page errors while set_doing_safe_access is true and has Unsafe_CopyMemory call set_doing_unsafe_access(true)

The bug refers to DRM or encrypted file systems. However, this also occurs with interrupted network connections. 

To reproduce, I used http://cr.openjdk.java.net/~kshoop/6415680/FileCopyUtil.java
I would start the app with a path to a file on an SMB server and then when prompted to press enter, disconnect the server from the network and then hit enter to cause the app to attempt to page in the mapped pages.

With this change the following output is expected:
++++++++++++
OpenJDK 64-Bit Server VM (build 1.9.0-internal-_2015_04_03_10_46-b00, mixed mode)
 
72535 micro seconds to InitializeJVM
Main class is 'FileCopyUtil'
App's argc is 1
    argv[ 0] = '\kshoop-testpublicalloctrace.etl'
36985 micro seconds to load main class
----_JAVA_LAUNCHER_DEBUG----
F\kshoop-testpublicalloctrace.etl
file map created.
Press ENTER to proceed.
 
Exception in thread "main" java.lang.InternalError: a fault occurred in an unsafe memory access operation
++++++++++++

Kirk

Developer
Microsoft Open Technologies, Inc.




More information about the core-libs-dev mailing list