[10] RFR: 8185164: GetOwnedMonitorInfo() returns incorrect owned monitor

Daniel D. Daugherty daniel.daugherty at oracle.com
Wed Jul 26 13:52:06 UTC 2017


On 7/26/17 12:11 AM, David Holmes wrote:
> On 26/07/2017 10:27 AM, Yasumasa Suenaga wrote:
>> Hi Dan,
>>
>>> I've added some analysis to the bug report
>>
>> Thanks!
>> I tried to fix this issue in JvmtiEnvBase::get_owned_monitors() at 
>> first.
>> But it is difficult because we cannot know pending monitor if thread 
>> state is MONITOR_CONTENDED_ENTER when get_owned_monitor() is called.
>
> I need to look closer at this when I get back from vacation next week.

Seems like you're back already. :-)


> A pending monitor should not be reported as owned (unless the spec 
> says otherwise) and it seems odd to me to fix the current problem by 
> marking the monitor as pending earlier.

It's the updating of the _current_pending_monitor field that
allows JvmtiEnvBase::get_locked_objects_in_frame() to recognize
that the monitor observed in the frame is only pending and
is not owned.

I put a fairly detailed note in the bug yesterday, but you
should look at that when you're officially back!

Dan


>
> Thanks,
> David
>
>>> Did you run the jdk repo's com/sun/jdi tests with your fix?
>>
>> I have not done yet.
>> I have a trip until 28 July JST. So I will run it after that.
>>
>>
>> Yasumasa
>>
>>
>> On 2017/07/26 7:05, Daniel D. Daugherty wrote:
>>> On 7/24/17 8:40 PM, Yasumasa Suenaga wrote:
>>>> Hi all,
>>>>
>>>> I tried to get owned monitors in MonitorContendedEnter JVMTI event 
>>>> handler.
>>>> However GetOwnedMonitorInfo JVMTI function returns a monitor which is
>>>> not yet owned.
>>>>
>>>> I attached reproducer to JBS. Please read README.md.
>>>>
>>>> I think GetOwnedMonitorInfo() should not return a pending monitor.
>>>>
>>>>
>>>> I uploaded webrev. Could you review?
>>>> http://cr.openjdk.java.net/~ysuenaga/JDK-8185164/webrev.00/
>>>>
>>>> I hope this fix is applied to 8u or later release.
>>>> I cannot access JPRT. So I need a sponsor.
>>>
>>> Thanks for the bug report. It's nice to have a test case and a proposed
>>> fix all in the bug report! I've added some analysis to the bug report
>>> and we'll need to run this fix through Oracle's JPDA test stack which
>>> is not (yet) open.
>>>
>>> Did you run the jdk repo's com/sun/jdi tests with your fix?
>>>
>>> Dan
>>>
>>>
>>>>
>>>>
>>>> Thanks,
>>>>
>>>> Yasumasa
>>>



More information about the serviceability-dev mailing list