RFR (S): 8004018: Remove old initialization flags
David Holmes
david.holmes at oracle.com
Fri Jan 11 03:26:03 PST 2013
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