12 RFR(M) 8214583: AccessController.getContext may return wrong value after JDK-8212605

Mandy Chung mandy.chung at oracle.com
Mon Dec 17 22:55:30 UTC 2018


This looks okay to me.

Mandy

On 12/14/18 4:59 PM, dean.long at oracle.com wrote:
> https://bugs.openjdk.java.net/browse/JDK-8214583
> http://cr.openjdk.java.net/~dlong/8214583/webrev
>
> This change includes two new regression test that demonstrate the 
> problem, and a fix that allows the tests
> to pass.
>
> The problem happens when the JIT compiler's escape analysis eliminates 
> the allocation of the AccessControlContext object passed to 
> doPrivileged.  The compiler thinks this is safe because it does not 
> see that the object "escapes".  However, getContext needs to be able 
> to find the object using a stack walk, so we need a way to tell the 
> compiler that it does indeed escape.  To do this we pass the value to 
> a native method that does nothing.
>
> Microbenchmark results:
>
> jdk12-b18:
>
> Benchmark                Mode  Cnt    Score   Error  Units
> DoPrivileged.test        avgt   25  255.626 ± 6.446  ns/op
> DoPrivileged.testInline  avgt   25  250.968 ± 4.975  ns/op
>
>
> jdk12-b19:
>
> Benchmark                Mode  Cnt  Score    Error  Units
> DoPrivileged.test        avgt   25  5.689 ±  0.001  ns/op
> DoPrivileged.testInline  avgt   25  2.765 ±  0.001  ns/op
>
> this fix:
>
> Benchmark                Mode  Cnt  Score    Error  Units
> DoPrivileged.test        avgt   25  5.020 ±  0.001  ns/op
> DoPrivileged.testInline  avgt   25  2.774 ±  0.025  ns/op
>
>
> dl

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/security-dev/attachments/20181217/11f1d1ee/attachment.htm>


More information about the security-dev mailing list