You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hbase.apache.org by "ramkrishna.s.vasudevan (JIRA)" <ji...@apache.org> on 2018/01/08 08:03:03 UTC

[jira] [Created] (HBASE-19732) Replica regions does not return back the MSLAB pools

ramkrishna.s.vasudevan created HBASE-19732:
----------------------------------------------

             Summary: Replica regions does not return back the MSLAB pools
                 Key: HBASE-19732
                 URL: https://issues.apache.org/jira/browse/HBASE-19732
             Project: HBase
          Issue Type: Bug
    Affects Versions: 2.0.0-alpha-4
            Reporter: ramkrishna.s.vasudevan
            Assignee: ramkrishna.s.vasudevan
            Priority: Critical
             Fix For: 2.0.0-beta-2


When we have region replica enabled, we try to replicate the flush markers. In the replica region on receiving the FLUSH_START_MARKER we create a snapshot. On receiving COMMIT_FLUSH_MARKER we just update the store files and clear the snapshot. But in the recent trunk code while creating snapshot (need to verify in other  branches too)
{code}
    this.timeRangeTracker = snapshot.getTimeRangeTracker();
    this.scanners = snapshot.getScanners(Long.MAX_VALUE, Long.MAX_VALUE);
    this.tagsPresent = snapshot.isTagsPresent();
{code}
The scanners that we create internally increment the openScannerCount per MSLAB. But since in this case we don't call scanner.close() we don't decrement the scanner count and so the MSLAB chunks are not returned back to the pool when the snapshot is closed in the replica region.
{code}
int count  = openScannerCount.get();
    LOG.info("the count is "+count);
    if(count == 0) {
      recycleChunks();
{code}
This is a critical bug. 



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)