hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Anoop Sam John (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HBASE-16164) Missing close of new compacted segments in few occasions which might leak MSLAB chunks from pool
Date Fri, 01 Jul 2016 08:54:10 GMT
Anoop Sam John created HBASE-16164:
--------------------------------------

             Summary: 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
             Fix For: 2.0.0


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)

Mime
View raw message