[
https://issues.apache.org/jira/browse/HBASE-18375?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16094533#comment-16094533
]
ramkrishna.s.vasudevan commented on HBASE-18375:
------------------------------------------------
If for sure CellChunkMap is saving from GC and only when we are putting it back
to the pool we get this issue -from code perspective am not getting where
things are going wrong (but may be Java's weakRef is something I don't get
fully).
Guarding the chunks with strong Map is definitely helping with NPEs.
In case of pooled chunks and say initial Count and max Count is same - then we
will have both reclaimedChunks and strongMapChunk with same data. I think if we
are going to see this issue then going with the patch way is fine. Let see what
others has to say.
> The pool chunks from ChunkCreator are deallocated while in pool because there
> is no reference to them
> -----------------------------------------------------------------------------------------------------
>
> Key: HBASE-18375
> URL: https://issues.apache.org/jira/browse/HBASE-18375
> Project: HBase
> Issue Type: Sub-task
> Affects Versions: 2.0.0-alpha-1
> Reporter: Anastasia Braginsky
> Priority: Critical
> Fix For: 2.0.0, 3.0.0, 2.0.0-alpha-2
>
> Attachments: HBASE-18375-V01.patch, HBASE-18375-V02.patch,
> HBASE-18375-V03.patch, HBASE-18375-V04.patch
>
>
> Because MSLAB list of chunks was changed to list of chunk IDs, the chunks
> returned back to pool can be deallocated by JVM because there is no reference
> to them. The solution is to protect pool chunks from GC by the strong map of
> ChunkCreator introduced by HBASE-18010. Will prepare the patch today.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)