Review Request: 8011161 NMT: Memory leak when encountering out of memory error while initializing memory snapshot
Calvin Cheung
calvin.cheung at oracle.com
Fri Apr 5 09:30:11 PDT 2013
It looks good to me.
Calvin
On 4/5/2013 7:05 AM, Zhengyu Gu wrote:
> Updated: http://cr.openjdk.java.net/~zgu/8011161/webrev.03/
> <http://cr.openjdk.java.net/%7Ezgu/8011161/webrev.03/>
>
> Thanks,
>
> -Zhengyu
>
> On 4/4/2013 4:35 PM, Zhengyu Gu wrote:
>> Dan,
>>
>> Thanks for the suggestion. I will post updated webrev once java.net
>> is back.
>>
>> -Zhengyu
>>
>> On 4/4/2013 3:14 PM, Daniel D. Daugherty wrote:
>>> On 4/4/13 11:42 AM, Zhengyu Gu wrote:
>>>> Updated webrev: http://cr.openjdk.java.net/~zgu/8011161/webrev.01/
>>>> <http://cr.openjdk.java.net/%7Ezgu/8011161/webrev.01/>
>>>
>>> src/share/vm/services/memTracker.cpp
>>> Please consider this version:
>>>
>>> _snapshot = new (std::nothrow)MemSnapshot();
>>> if (_snapshot != NULL) {
>>> if (!_snapshot->out_of_memory() && start_worker()) {
>>> _state = NMT_started;
>>> NMT_track_callsite = (_tracking_level == NMT_detail &&
>>> can_walk_stack());
>>> return;
>>> }
>>>
>>> delete _snapshot;
>>> _snapshot = NULL;
>>> }
>>>
>>> // fail to start native memory tracking, shut it down
>>> shutdown(NMT_initialization);
>>>
>>>
>>> Dan
>>>
>>>
>>>>
>>>> Thanks,
>>>>
>>>> -Zhengyu
>>>>
>>>>
>>>>
>>>> On 4/3/2013 4:35 PM, Calvin Cheung wrote:
>>>>> Not directly related to this fix, I'm seeing
>>>>> shutdown(NMT_initialization) can be called twice if start_worker()
>>>>> has an error before returning false.
>>>>> 552 shutdown(NMT_initialization);
>>>>>
>>>>> again in MemTracker::start():
>>>>> 144 shutdown(NMT_initialization);
>>>>>
>>>>> Perhaps the one at line 552 isn't necessary?
>>>>>
>>>>> Calvin
>>>>>
>>>>> On 4/3/2013 11:01 AM, Zhengyu Gu wrote:
>>>>>> Resend. Could anyone review it?
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> -Zhengyu
>>>>>>
>>>>>> On 4/2/2013 10:09 AM, Zhengyu Gu wrote:
>>>>>>> Fix a memory leak when initializing memory snapshot due to out
>>>>>>> of memory.
>>>>>>> In normal case, memory snapshot is released by worker thread.
>>>>>>> But this case, the worker thread is never started.
>>>>>>>
>>>>>>>
>>>>>>> bug: http://bugs.sun.com/view_bug.do?bug_id=8011161
>>>>>>> <http://bugs.sun.com/view_bug.do?bug_id=8011161>
>>>>>>> webrev: http://cr.openjdk.java.net/~zgu/8011161/webrev.00/
>>>>>>> <http://cr.openjdk.java.net/%7Ezgu/8011161/webrev.00/>
>>>>>>>
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> -Zhengyu
>>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/attachments/20130405/29b6c45c/attachment.html
More information about the hotspot-runtime-dev
mailing list