RFR 8174954: Parameter target type is allowed access after a module read edge or a package export has occurred after failed resolution
David Holmes
david.holmes at oracle.com
Wed Oct 18 02:22:10 UTC 2017
Hi Harold,
On 17/10/2017 12:20 AM, harold seigel wrote:
> Hi,
>
> Please review this new JDK-10 fix for bug JDK-8174954. If the initial
> resolution attempt fails with a LinkageError exception then the fix
> saves the exception in the resolution_errors table and sets a flag in
> the constant pool Cache, indicating the failure. Subsequent attempts to
> do the same resolution will see that the flag is set, retrieve the
> exception from the resolution_errors table, and throw it, instead of
> re-trying the resolution.
I'm a little confused. The fix seems all about indy, which seems to be
the topic of:
JDK-8174942 Bootstrap Method Called Multiple Times Despite Initial
Resolution Failure
whereas this bug seems to be about a more general problem. Is this fix
addressing both issues??
BTW there's no reason for JDK-8174954 to remain confidential.
Thanks,
David
> The fix also prevents a race condition if two or more threads try to do
> the same resolution concurrently. When a thread tries to record the
> result of its resolution attempt, it will check to see if another thread
> recorded its result first. If so, then it will use the result recorded
> by the other thread. Otherwise, it will record and use its result.
> Access to the resolution result is protected by the
> 'resolved_references' lock.
>
> Open webrev: http://cr.openjdk.java.net/~hseigel/bug_8174954.1/webrev/
>
> JBS Bug: https://bugs.openjdk.java.net/browse/JDK-8174954
>
> The fix was tested with the JCK Lang and VM tests, the JTreg hotspot,
> java/io, java/lang, java/util, and other tests, the co-located NSK
> tests, JPRT, with Mach5 tier2 - tier5 tests, and by hand to check race
> condition handling.
>
> Thanks, Harold
>
More information about the hotspot-runtime-dev
mailing list