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

stack commented on HBASE-16164:
-------------------------------

Patch looks fine. How did you figure this issue [~anoop.hbase]?

> Missing close of new compacted segments in few occasions which might leak 
> MSLAB chunks from pool
> ------------------------------------------------------------------------------------------------
>
>                 Key: HBASE-16164
>                 URL: https://issues.apache.org/jira/browse/HBASE-16164
>             Project: HBase
>          Issue Type: Sub-task
>    Affects Versions: 2.0.0
>            Reporter: Anoop Sam John
>            Assignee: Anoop Sam John
>            Priority: Critical
>             Fix For: 2.0.0
>
>         Attachments: HBASE-16164.patch
>
>
> An in memory compaction of N segments in progress. Inn between snapshot() 
> call comes. We will stop the in progress compaction then. This just sets an 
> AtomicBoolean.  We check this boolean state in the compaction loop (while 
> loop reading the cells from the segments) and before swapping the segments. 
> But if this scenario comes, we are just ignoring the new newly compacted 
> Segment. This is a problem maker when we work with MSLAB pool. The new 
> segment would have acquired some chunks but when will they get released? As 
> we dont close the segment this will leak them.
> Also in swap we have
> {code}
> public boolean swap(VersionedSegmentsList versionedList, ImmutableSegment 
> segment) {
>     if(versionedList.getVersion() != version) {
>       return false;
>     }
>     LinkedList<ImmutableSegment> suffix;
>     synchronized (pipeline){
>       if(versionedList.getVersion() != version) {
>         return false;
>       }
> {code}
> I dont see any possibility for this code flow to happen.  Still for 
> correctness, we should close the segment here too.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to