RFR: 8218173: exception during StringConcatFactory clinit breaks string concat with no fallback
Claes Redestad
claes.redestad at oracle.com
Tue May 19 14:08:11 UTC 2020
Thanks for reviewing, Jim!
/Claes
On 2020-05-19 16:05, Jim Laskey wrote:
> +1
>
>
>> On May 19, 2020, at 10:59 AM, Claes Redestad <claes.redestad at oracle.com> wrote:
>>
>> Hi,
>>
>> while hard to reproduce, it's possible to break the StringConcatFactory
>> if trying to bootstrap a concatenation when the VM is in such a state
>> that any allocation will throw an OOME
>>
>> By eagerly initializing the default strategy classes during bootstrap,
>> while lazily initializing any method handles it uses in a way that
>> allows retries later if that fail, we should minimize the risk of this,
>> while ensuring we can recuperate.
>>
>> This loads and initializes a few more classes eagerly on bootstrap, but
>> the initial startup cost of that sits well below 0.1ms (amortized on
>> first concat bootstrap), which seems a reasonable cost for increased
>> stability in constrained environments.
>>
>> I've not attempted a fix for the non-default strategies. Our intent is
>> to remove these alternative strategies.
>>
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8218173
>> Webrev: http://cr.openjdk.java.net/~redestad/8218173/open.00/
>>
>> Testing: tier1-3
>>
>> This might also resolve https://bugs.openjdk.java.net/browse/JDK-8218176
>> - so I included the removal of TestStressG1Humongous from ProblemList-
>> graal.txt. I've run it a few times locally and in our CI without issue,
>> but we probably need to enable it for while to determine if the
>> intermittent issue is gone for good (or if we just move the issue
>> somewhere else).
>>
>> Thanks!
>>
>> /Claes
>
More information about the core-libs-dev
mailing list