RFR 8163969: Cyclic interface initialization causes JVM crash
Lois Foltan
lois.foltan at oracle.com
Tue Sep 20 21:03:29 UTC 2016
On 9/20/2016 4:25 PM, Coleen Phillimore wrote:
>
>
> On 9/20/16 3:00 PM, Lois Foltan wrote:
>> Hi Coleen,
>>
>> Code looks good. Can you just improve upon this comment below,
>> InstanceKlass::link_class_impl, to describe who relies on this
>> erroneous check currently and why it can't be removed as part of your
>> fix.
>
> Lois, Thanks for your help on this bug.
>
> I actually didn't track down the CDS code more to know why they set
> classes with initialization error or what they do with them
> afterwards. I guess I could be vague:
>
>
> // check for error state.
> // This is checking for the wrong state. If the state is
> initialization_error,
> // then this class *was* linked. The CDS code does a try_link_class
> and uses
> // initialization_error to mark classes to not include in the
> archive during
> // DumpSharedSpaces.
>
This is good, just the mention of CDS & try_link_class is helpful, at
least someone reading the code has an inkling where to investigate
further if necessary.
Lois
> Thanks,
> Coleen
>>
>> Thanks,
>> Lois
>>
>> On 9/19/2016 2:46 AM, David Holmes wrote:
>>> Hi Coleen,
>>>
>>> As per our extensive emails discussions this looks good to me.
>>>
>>> One query:
>>>
>>> bool InstanceKlass::link_class_impl(
>>> instanceKlassHandle this_k, bool throw_verifyerror, TRAPS) {
>>> ! // check for error state. This is checking for the wrong state.
>>> ! // If initialization_error, then this class *was* linked.
>>>
>>> I'm assuming you are just flagging this for now and it will be fixed
>>> later.
>>>
>>> One comment - in a fix I am working on
>>> has_default_methods/declares_default_methods will be renamed to
>>> has_nonstatic_concrete_methods/declares_nonstatic_concrete_methods
>>> as the use of the word "default" is inappropriate in those contexts
>>> as it applies to both default method and private interface methods.
>>>
>>> Thanks,
>>> David
>>>
>>> On 17/09/2016 1:22 AM, Coleen Phillimore wrote:
>>>> Summary: Fix interface initialization to follow spec: interface
>>>> initializations do not set initialization state of interfaces that
>>>> extend them.
>>>>
>>>> Tested with: all hotspot jtreg tests, co-located nsk tests,
>>>> non-colocated nsk tests, and jck tests.
>>>>
>>>> open webrev at http://cr.openjdk.java.net/~coleenp/8163969.01/webrev
>>>> bug link https://bugs.openjdk.java.net/browse/JDK-8163969
>>>>
>>>> Thanks,
>>>> Coleen
>>
>
More information about the hotspot-runtime-dev
mailing list