This is an automated email from the ASF dual-hosted git repository.

liuxiaocs7 pushed a commit to branch branch-2.5
in repository https://gitbox.apache.org/repos/asf/hbase.git


The following commit(s) were added to refs/heads/branch-2.5 by this push:
     new cb796ca9230 HBASE-30273 Backport HBASE-26107 MOB compaction with 
missing files catches incorrect exception to branch-2.x (#8449) (#8452)
cb796ca9230 is described below

commit cb796ca923010513eae6ca2ac497219b4229c17b
Author: Xiao Liu <[email protected]>
AuthorDate: Sun Jul 5 23:28:39 2026 +0800

    HBASE-30273 Backport HBASE-26107 MOB compaction with missing files catches 
incorrect exception to branch-2.x (#8449) (#8452)
    
    (cherry picked from commit 3c70bc1f312bd2a833d408c3af82731e5fee66ea)
    
    Signed-off-by: Duo Zhang <[email protected]>
    Signed-off-by: Pankaj Kumar <[email protected]>
    Signed-off-by: Peter Somogyi <[email protected]>
    Co-authored-by: Peter Somogyi <[email protected]>
---
 .../apache/hadoop/hbase/mob/DefaultMobStoreCompactor.java    | 10 +++++++---
 .../org/apache/hadoop/hbase/mob/FaultyMobStoreCompactor.java | 12 ++++++++----
 2 files changed, 15 insertions(+), 7 deletions(-)

diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/mob/DefaultMobStoreCompactor.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/mob/DefaultMobStoreCompactor.java
index 4d8d946d14e..c05efa48830 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/mob/DefaultMobStoreCompactor.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/mob/DefaultMobStoreCompactor.java
@@ -35,6 +35,7 @@ import org.apache.hadoop.fs.FileStatus;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.Cell;
+import org.apache.hadoop.hbase.DoNotRetryIOException;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.KeyValueUtil;
 import org.apache.hadoop.hbase.PrivateCellUtil;
@@ -393,12 +394,15 @@ public class DefaultMobStoreCompactor extends 
DefaultCompactor {
               // Added to support migration
               try {
                 mobCell = resolveMobCell(c);
-              } catch (FileNotFoundException fnfe) {
-                if (discardMobMiss) {
+              } catch (DoNotRetryIOException e) {
+                if (
+                  discardMobMiss && e.getCause() != null
+                    && e.getCause() instanceof FileNotFoundException
+                ) {
                   LOG.error("Missing MOB cell: file={} not found cell={}", 
fName, c);
                   continue;
                 } else {
-                  throw fnfe;
+                  throw e;
                 }
               }
 
diff --git 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/mob/FaultyMobStoreCompactor.java
 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/mob/FaultyMobStoreCompactor.java
index 82c218352f2..e2d79e23c44 100644
--- 
a/hbase-server/src/test/java/org/apache/hadoop/hbase/mob/FaultyMobStoreCompactor.java
+++ 
b/hbase-server/src/test/java/org/apache/hadoop/hbase/mob/FaultyMobStoreCompactor.java
@@ -29,6 +29,7 @@ import java.util.concurrent.atomic.AtomicLong;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.Cell;
+import org.apache.hadoop.hbase.DoNotRetryIOException;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.PrivateCellUtil;
 import org.apache.hadoop.hbase.TableName;
@@ -189,12 +190,15 @@ public class FaultyMobStoreCompactor extends 
DefaultMobStoreCompactor {
               // Added to support migration
               try {
                 mobCell = resolveMobCell(c);
-              } catch (FileNotFoundException fnfe) {
-                if (discardMobMiss) {
-                  LOG.error("Missing MOB cell: file={} not found", fName);
+              } catch (DoNotRetryIOException e) {
+                if (
+                  discardMobMiss && e.getCause() != null
+                    && e.getCause() instanceof FileNotFoundException
+                ) {
+                  LOG.error("Missing MOB cell: file={} not found cell={}", 
fName, c);
                   continue;
                 } else {
-                  throw fnfe;
+                  throw e;
                 }
               }
 

Reply via email to