[9] RFR (S): 8098573: Compiler accesses to shared archive fail if archive is remapped

Zoltán Majó zoltan.majo at oracle.com
Mon Jul 11 15:26:58 UTC 2016


Hi,


please review the fix for JDK-8098573.

https://bugs.openjdk.java.net/browse/JDK-8098573

Problem: The VM crashes with a SIGSEGV due to the compiler accessing 
symbol information in a (AppCDS) shared archive. I was not able to 
reproduce the crash, but there is evidence to suggest that the crash is 
caused by the *compiler accessing the shared archive when not in VM 
state*: While the compiler is reading form the shared archive, an 
ongoing VM_RedefineClasses operation remaps the shared archive (with 
different permissions but at the same address), which is the only likely 
cause of the SEGV_MAPERR in the compiler. For more details please see [1].

Solution: Change the destructor ciEnv::~ciEnv() to access symbols in VM 
state (similar to other places in the compiler accessing symbol 
information).

Webrev:
http://cr.openjdk.java.net/~zmajo/8098573/webrev.00/

Testing:
- JPRT;
- RBT testing w/ all hotspot tests is in progress.

Thank you!

Best regards,


Zoltan

[1] 
https://bugs.openjdk.java.net/browse/JDK-8098573?focusedCommentId=13971831&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13971831


More information about the hotspot-compiler-dev mailing list