Repository: hbase
Updated Branches:
  refs/heads/branch-1 875a12de0 -> 9ced0c936
  refs/heads/branch-1.3 9eaafe1ee -> 0db4bd3aa
  refs/heads/branch-1.4 7e2d7edbc -> 98c6f8a3f


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/0db4bd3a
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/0db4bd3a
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/0db4bd3a

Branch: refs/heads/branch-1.3
Commit: 0db4bd3aa71ecd7770430c428cf01d238ec06fa7
Parents: 9eaafe1
Author: Thiruvel Thirumoolan <[email protected]>
Authored: Fri Mar 30 13:12:53 2018 -0700
Committer: Andrew Purtell <[email protected]>
Committed: Tue Apr 3 13:20:47 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/0db4bd3a/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 1b2361d..da2f5ae 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
@@ -823,7 +823,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