RFR: 8227738: jvmti/DataDumpRequest/datadumpreq001 failed due to "exit code is 134"

Chris Plummer chris.plummer at oracle.com
Tue Jul 16 23:54:25 UTC 2019


On 7/16/19 4:46 PM, Chris Plummer wrote:
> On 7/16/19 4:41 PM, Yasumasa Suenaga wrote:
>> 2019年7月17日(水) 8:35 <serguei.spitsyn at oracle.com 
>> <mailto:serguei.spitsyn at oracle.com>>:
>>
>>     Hi Yasumasa,
>>
>>     Thank you for taking care about this issue!
>>
>>     You changed the code form this:
>>
>>       371           } else if (cur_state == AL_NOT_INITIALIZED) {
>>       372             // Start to initialize.
>>     373 if (!AttachListener::is_init_trigger()) {
>>       374               // Attach Listener could not be started.
>>       375               // So we need to transit the state to 
>> AL_NOT_INITIALIZED.
>>       376 AttachListener::set_state(AL_NOT_INITIALIZED);
>>       377             }
>>     378 continue;
>>       379           } else if (AttachListener::check_socket_file()) {
>>
>>     to this:
>>
>>       371           } else if (cur_state == AL_NOT_INITIALIZED) {
>>       372             // Start to initialize.
>>     373 if (AttachListener::is_init_trigger()) {
>>     374 // Attach Listener has been initialized.
>>     375 // Accept subsequent request.
>>     376 continue;
>>     377 } else {
>>       378               // Attach Listener could not be started.
>>       379               // So we need to transit the state to 
>> AL_NOT_INITIALIZED.
>>       380 AttachListener::set_state(AL_NOT_INITIALIZED);
>>       381             }
>>       382           } else if (AttachListener::check_socket_file()) {
>>
>>
>>     The only difference I see is that now the continue statement is 
>> missed
>>     after the AttachListener::set_state(AL_NOT_INITIALIZED).
>>     Just want to make sure that it was your intention.
>>
>>
>> Yes, we should go through when is_init_trigger() returns false.
>>
> I had the same question. So now my question is why is it returning 
> false? I thought this was an error condition indicating we failed to 
> initialize the attach mechanism, so I would expect this to later cause 
> the attach to fail. On the other hand, I have verified that the fix 
> seems to work.
>
Nevermind. I see now that AttachListener::is_init_trigger() returns true 
if the signal was being sent in order to attach, indicated by presence 
of the .attach_pid<pid> flag. So when it returns false, that means we 
want the stack trace dump instead of setting up an attach.

Chris

> thanks,
>
> Chris
>
>>
>> Thanks,
>>
>> Yasumasa
>>
>>
>>     Thanks,
>>     Serguei
>>
>>
>>
>>     On 7/16/19 4:15 PM, Yasumasa Suenaga wrote:
>>>     Hi all,
>>>
>>>     Please review this change:
>>>
>>>       JBS: https://bugs.openjdk.java.net/browse/JDK-8227738
>>>       webrev:
>>> http://cr.openjdk.java.net/~ysuenaga/JDK-8227738/webrev.00/
>>>
>>>     After JDK-8225690, HotSpot could not handle JVMTI dump request
>>>     (includes thread dump request).
>>>     It is caused by incorrect handling of
>>>     AttachListener::is_init_trigger().
>>>
>>>     I fixed it in this webrev, and it works fine on
>>>     serviceability/attach and
>>>     vmTestbase/nsk/jvmti/DataDumpRequest/datadumpreq001.
>>>     Also I pushed this to submit repo (I have not yet received the
>>>     result).
>>>
>>>     http://hg.openjdk.java.net/jdk/submit/rev/3fb4b04ff5f2
>>>
>>>
>>>     Thanks,
>>>
>>>     Yasumasa
>>
>
>



More information about the serviceability-dev mailing list