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

Reply via email to