Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
2.0.0-alpha-4
-
None
-
None
-
Reviewed
Description
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)
this.timeRangeTracker = snapshot.getTimeRangeTracker(); this.scanners = snapshot.getScanners(Long.MAX_VALUE, Long.MAX_VALUE); this.tagsPresent = snapshot.isTagsPresent();
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.
int count = openScannerCount.get(); LOG.info("the count is "+count); if(count == 0) { recycleChunks();
This is a critical bug.