[ 
https://issues.apache.org/jira/browse/HBASE-19779?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16325668#comment-16325668
 ] 

Anastasia Braginsky commented on HBASE-19779:
---------------------------------------------

Let me explain how do I understand the problem.

What you are saying is that in case of OOM, the exception is thrown by chunk, 
after its ID was already added to chunkIdMap. Therefore, MSLABImpl is not going 
to add it to chunks set of MSLAB, and thus when recycleChunks() is called the 
chunk is not going to be given back to ChunkCreator.

My question is what is the process to deal with OOM exception? Why do you 
assume recycleChunks() will be properly called? If the region server process is 
going to be killed, its entire memory should be freed, without specific GC 
process. As ChunkCreator is a singleton per Region Server it is part of Region 
Server's static data, the entire memory address space of a process is released 
when a process is killed.

So just to set my mind (I am most likely missing some details of the Region 
Server process), can you please explain me why the chunk's memory is not going 
to be released?

> The chunk encountering the OOM will store in ChunkCreator forever
> -----------------------------------------------------------------
>
>                 Key: HBASE-19779
>                 URL: https://issues.apache.org/jira/browse/HBASE-19779
>             Project: HBase
>          Issue Type: Sub-task
>          Components: test
>            Reporter: Chia-Ping Tsai
>            Assignee: Chia-Ping Tsai
>            Priority: Minor
>             Fix For: 2.0.0-beta-2
>
>         Attachments: HBASE-19779.v0.patch, HBASE-19779.v1.patch
>
>
> If Chunk#init fail on OOM, the MSLABimpl won't store the id of chunk. We have 
> no chance to remove the chunk from {{ChunkCreator}} since MSLABimpl have 
> missed the id.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to