Amend HBASE-20322 CME in StoreScanner causes region server crash memStoreScanners is immutable so create a new list for closing.
Signed-off-by: Andrew Purtell <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/98c6f8a3 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/98c6f8a3 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/98c6f8a3 Branch: refs/heads/branch-1.4 Commit: 98c6f8a3f6a48610d825351717d82053db045b3a Parents: 7e2d7ed Author: Thiruvel Thirumoolan <[email protected]> Authored: Fri Mar 30 13:12:53 2018 -0700 Committer: Andrew Purtell <[email protected]> Committed: Tue Apr 3 13:22:39 2018 -0700 ---------------------------------------------------------------------- .../java/org/apache/hadoop/hbase/regionserver/StoreScanner.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/98c6f8a3/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java index 0280906..678308b 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java @@ -859,7 +859,8 @@ public class StoreScanner extends NonReversedNonLazyKeyValueScanner try { if (this.closing) { // Lets close scanners created by caller, since close() won't notice this. - clearAndClose(memStoreScanners); + // memStoreScanners is immutable, so lets create a new list. + clearAndClose(new ArrayList<>(memStoreScanners)); return; } flushed = true;
