RFR: 8180197: Failing assert: id must be initialized

Vladimir Kozlov vladimir.kozlov at oracle.com
Fri Jun 2 17:22:56 UTC 2017



On 6/2/17 3:14 AM, Kim Barrett wrote:
>> On Jun 2, 2017, at 5:45 AM, Rickard Bäckman <rickard.backman at oracle.com> wrote:
>> Hi,
>> there is a locking / race in ciObjectFactory. The variables
>> _shared_ident_limit and _shared_ci_metadata are supposed to be protected
>> by the volatile _initialized. However since we do double checked locking
>> on at least some platforms we can have a race where _initialized is true
>> but _shared_ident_limit has not yet been updated.
>> Since this code is only run when the compiler threads are starting,
>> replacing the double checked locking with just check under lock would
>> solve the problem. The code runs once per thread and can't be considered
>> performance critical.
>> webrev: http://cr.openjdk.java.net/~rbackman/8180197/
>> bug: https://bugs.openjdk.java.net/browse/JDK-8180197
>> /R
> Looks good.

More information about the hotspot-compiler-dev mailing list