This is an automated email from the ASF dual-hosted git repository.
zhangduo pushed a commit to branch branch-3
in repository https://gitbox.apache.org/repos/asf/hbase.git
The following commit(s) were added to refs/heads/branch-3 by this push:
new a492f7b24b6 HBASE-29501 IOException in
SerialReplicationChecker.canPush causes entries to be pushed out of order
a492f7b24b6 is described below
commit a492f7b24b6ec98422e1e6f9adf9166b35ef0c07
Author: Tomas Baltrunas <[email protected]>
AuthorDate: Fri Aug 1 20:42:04 2025 +0100
HBASE-29501 IOException in SerialReplicationChecker.canPush causes entries
to be pushed out of order
Close #7547
Close #7194
Signed-off-by: Duo Zhang <[email protected]>
(cherry picked from commit dcb72cfee3e844649051ceef7e0255c61263dee9)
---
.../replication/regionserver/SerialReplicationSourceWALReader.java | 5 +++++
1 file changed, 5 insertions(+)
diff --git
a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.java
b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.java
index d1a2e8b5734..26d7934c41b 100644
---
a/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.java
+++
b/hbase-server/src/main/java/org/apache/hadoop/hbase/replication/regionserver/SerialReplicationSourceWALReader.java
@@ -96,6 +96,11 @@ public class SerialReplicationSourceWALReader extends
ReplicationSourceWALReader
break;
}
sleepMultiplier = sleep(sleepMultiplier);
+ // Always make sure to continue/break from the loop after handling
the exception.
+ // Otherwise we will drop down below into logic to push the entry,
+ // but since we don't know if the entry can be pushed we may push
+ // the entry out of order, breaking serial replication guarantees.
+ continue;
}
// actually remove the entry.
removeEntryFromStream(entry, entryStream, batch);