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;

Reply via email to