[
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)