[
https://issues.apache.org/jira/browse/HBASE-19732?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16317789#comment-16317789
]
ramkrishna.s.vasudevan commented on HBASE-19732:
------------------------------------------------
The reason is that in latest code - we create a segment scanner once a memstore
snapshot is created and we have an iterator ready to scan over the segment.
This internally means we have started a scan so the openScannercount has to be
incremented. Now in replica though we just create a snapshot we actually don't
iterate at all and we simply ignore the snapshot. But since the
openScannercount has already incremented we need to close it.
> Replica regions does not return back the MSLAB chunks to pool
> -------------------------------------------------------------
>
> 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
>
> Attachments: HBASE-19732.patch
>
>
> 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)