RFR (S): 8004018: Remove old initialization flags
Erik Helin
erik.helin at oracle.com
Fri Jan 11 03:57:41 PST 2013
Thanks!
Erik
On 01/11/2013 12:26 PM, David Holmes wrote:
> On 11/01/2013 7:46 PM, Erik Helin wrote:
>> David,
>>
>> thanks for the review!
>>
>> I would just like to confirm, do you think the change looks good and can
>> be pushed?
>
> Yes - sorry :)
>
> David
>
>> Thanks,
>> Erik
>>
>> On 01/11/2013 09:37 AM, David Holmes wrote:
>>> Hi Erik,
>>>
>>> On 11/01/2013 4:46 PM, Erik Helin wrote:
>>>> Hi all,
>>>>
>>>> this change removes the three developer flags:
>>>> - InitializeJavaLangSystem
>>>> - InitializeJavaLangString
>>>> - InitializeJavaLangExceptionsErrors
>>>
>>> While these were probably useful a long time I don't see the value in
>>> keeping them now - especially as they have been left to bit-rot. ASnyone
>>> debugging initialization order issues will undoubtedly need more than
>>> just these flags.
>>>
>>>> The flags InitializeJavaLangSystem and InitalizeJavaLangString crashes
>>>> the VM when they are set to false (see Testing).
>>>
>>> Right. The initialization order is very fragile, if you change it by
>>> turning off these flags then something will break. The typical failure
>>> mode these days is trying to throw an exception too soon, which fails
>>> because java.lang.Class has not be "linked" yet.
>>>
>>>> The flag (InitializeJavaLangExceptionsErrors) does not crash the VM
>>>> when
>>>> just running "-version". The RFE suggests that it should be removed, so
>>>> I went ahead and removed it. Should we keep it?
>>>
>>> No. I think you will find this only fails to crash the VM due to a
>>> recent change to the initialization order.
>>>
>>> David
>>> -----
>>>
>>>>
>>>> Webrev:
>>>> http://cr.openjdk.java.net/~ehelin/8004018/webrev.00/
>>>>
>>>> RFE:
>>>> http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8004018
>>>>
>>>> Testing:
>>>> Running a fastdebug build results in the following:
>>>>
>>>> java -XX:-InitializeJavaLangSystem -version
>>>> # A fatal error has been detected by the Java Runtime Environment
>>>> # Internal Error (linkResolver.cpp:902)
>>>> # assert(resolved_method->method_holder()->is_linked()) failed: must be
>>>> linked
>>>>
>>>> java -XX:-InitializeJavaLangString -version
>>>> # A fatal error has been detected by the Java Runtime Environment
>>>> # Internal Error (linkResolver.cpp:902)
>>>> # assert(resolved_method->method_holder()->is_linked()) failed: must be
>>>> linked
>>>>
>>>> JPRT
>>>>
>>>> Thanks,
>>>> Erik
>>
More information about the hotspot-runtime-dev
mailing list