RFR: JDK-8145788: JVM crashes with -XX:+EnableTracing

Erik Gahlin erik.gahlin at oracle.com
Fri Jan 8 14:08:24 UTC 2016


Sorry for the delay, we are looking into it.

Erik

On 2016-01-06 07:36, David Holmes wrote:
> Pinging the serviceability tracing experts please!
>
> David
>
> On 24/12/2015 12:25 AM, Yasumasa Suenaga wrote:
>> Hi David,
>>
>>>>      1. Initialize JavaThread before calling apply_ergo() in create_vm().
>>> That is not likely to be an option - it would likely be far too
>>> disruptive to the initialization sequence.
>> Agree. Thus I choose 2.
>>
>>> We will have to wait for the tracing experts to have a good look at
>>> this.
>> I'm waiting that the tracing experts join this discussion.
>>
>>
>> Thanks,
>>
>> Yasumasa
>>
>>
>> On 2015/12/23 13:20, David Holmes wrote:
>>> Hi Yasumasa,
>>>
>>> On 23/12/2015 11:49 AM, Yasumasa Suenaga wrote:
>>>> Hi David,
>>>>
>>>> I've added callstack when JVM crashed:
>>>>      https://bugs.openjdk.java.net/browse/JDK-8145788?focusedCommentId=13880225&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13880225
>>> Thanks for that.
>>>
>>>> This crash occurrs in Arguments::apply_ergo() in Threads::create_vm().
>>>> apply_ergo() calls before JavaThread initialization.
>>>>
>>>> I think that TraceEvent can avoid crash with two approach:
>>>>
>>>>      1. Initialize JavaThread before calling apply_ergo() in create_vm().
>>> That is not likely to be an option - it would likely be far too
>>> disruptive to the initialization sequence.
>>>
>>>>      2. Avoid crash at TraceEvent when it is called before JavaThread initialization.
>>> Or don't call it at all.
>>>
>>> We will have to wait for the tracing experts to have a good look at
>>> this. We end up in code that is not expecting to be run before more of
>>> the VM is initialized, so we have to look at what else may be being
>>> assumed and then decide whether to handle the situation or avoid it.
>>>
>>> Thanks,
>>> David
>>>
>>>> Thanks,
>>>>
>>>> Yasumasa
>>>>
>>>>
>>>> On 2015/12/22 21:19, David Holmes wrote:
>>>>> On 19/12/2015 1:50 AM, Yasumasa Suenaga wrote:
>>>>>> Hi all,
>>>>>>
>>>>>> I encountered JVM crash when I passed -XX:+EnableTracing.
>>>>>>
>>>>>>       I checked core image, it crashed in EventBooleanFlagChanged::writeEvent()
>>>>>>       which is called by Arguments::apply_ergo() because thread had not been
>>>>>>       initialized. (JVM seems to log changing GC algorithm to G1.)
>>>>> This seems like a logic error to me - something is trying to happen too
>>>>> early during VM initialization. We need to look at exactly what we are
>>>>> trying to do here, not just work around the crash.
>>>>>
>>>>> David
>>>>> -----
>>>>>
>>>>>>       writeEvent() uses ResourceMark. Default constructor of ResourceMark uses
>>>>>>       ResourceArea in current thread. So ResourceMark in writeEvent() should
>>>>>>       pass valid ResourceArea.
>>>>>>
>>>>>> I think this issue is in traceEventClasses.xsl .
>>>>>> However, my environment (GCC 5.3.1 on Fedora23) cannot build it because
>>>>>> -Werror=maybe-uninitialized was occurred.
>>>>>> So I also fixed them together.
>>>>>>
>>>>>> I've uploaded webrev. Could you review it?
>>>>>>        http://cr.openjdk.java.net/~ysuenaga/JDK-8145788/webrev.00/
>>>>>>
>>>>>> I'm jdk9 committer, however I cannot access JPRT.
>>>>>> So I need a sponsor.
>>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Yasumasa
>>>>>>



More information about the serviceability-dev mailing list