RFR(XS) 8055236: Deadlock during NMT2 shutdown on Windows

Daniel D. Daugherty daniel.daugherty at oracle.com
Wed Aug 20 20:28:22 UTC 2014


Sounds reasonable to me.

Please add a short blurb to the bug report itself.

Thumbs up.

Dan


On 8/20/14 2:25 PM, Zhengyu Gu wrote:
> Hi Dan,
>
> Before NMT2, MemTracker::shutdown() only sets flag that signals a 
> pending shutdown request, there is no lock taken. Upon seeing the 
> shutdown pending flag, NMT worker thread actually does the real 
> cleanup work.
>
> Thanks,
>
> -Zhengyu
>
>
>
> On 8/20/2014 4:04 PM, Daniel D. Daugherty wrote:
>> On 8/20/14 7:21 AM, Zhengyu Gu wrote:
>>> The problem is caused by acquiring locks inside 
>>> MemTracker::shutdown(), which could be held by threads that have 
>>> been already killed.
>>>
>>> Given the MemTracker::shutdown() call is on JVM exiting path, the 
>>> call is not necessary, should be removed.
>>>
>>>
>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8055236
>>> Webrev: http://cr.openjdk.java.net/~zgu/8055236/webrev.00/ 
>>> <http://cr.openjdk.java.net/%7Ezgu/8055236/webrev.00/>
>>
>> src/os/windows/vm/os_windows.cpp
>>     No comments.
>>
>> I have no issues with removing the work around code, but there is
>> no analysis here or in the bug report that explains why this work
>> around is no longer necessary. There's also no explanation about
>> why this deadlock is seen now and why it wasn't seen before NMT2.
>>
>> I'll hold off on a thumbs up until I see some reasonable analysis.
>>
>> Dan
>>
>>
>>>
>>>
>>> Test:
>>>    Tested on Windows x64 with following tests:
>>>      nsk/jvmti/scenarios/allocation
>>>      runtime/ParallelClassLoading
>>>
>>>
>>> Thanks,
>>>
>>> -Zhengyu
>>>
>>
>



More information about the hotspot-runtime-dev mailing list