RFR (XS) 8224692 appcds tests crash in "HotSpotJVMCI::compute_offset" when running in Graal as JIT mode

Calvin Cheung calvin.cheung at oracle.com
Thu May 30 15:58:59 UTC 2019


Hi Ioi,

The fix looks good to me.

Could you add the explanations below to the bug report for future reference?

thanks,
Calvin

On 5/29/19, 9:23 PM, Ioi Lam wrote:
> https://bugs.openjdk.java.net/browse/JDK-8224692
> http://cr.openjdk.java.net/~iklam/jdk13/8224692-dynamic-cds-tests-crash-with-graal-jit.v01/ 
>
>
> Background:
>
> The dynamic archive is created inside the before_exit() function. This 
> is a convenient place to do it -- the JVM could exit in multiple ways, 
> but they all come to this function.
>
> The down side of the before_exit() function is that some small amount 
> Java code could run afterwards, including code executed by the Graal JIT.
>
> The design of Dynamic CDS *should* support this -- the archive 
> creation happens inside a safepoint, saving a copy of the loaded 
> classes into the archive file. It should not have any side effects 
> observable from the Java code. As a result, it should be possible to 
> resume the execution of Java code after the archive is created.
>
> The bug here is we incorrectly reset the shared symbol table during 
> archive creation. The fix is pretty simple -- don't do that.
>
> I also fixed two other bugs that surface only with Graal JIT:
>
> + Avoid having an empty "MC" region.
> + In the test NoClassToArchive.java, when Graal JIT is used, anonymous 
> classes might be loaded.
>
> Testing:
>
> I verified that all of the failing tests now pass with Graal JIT.


More information about the hotspot-runtime-dev mailing list