diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java index 0ece343fa32..362b116dbd8 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/AssignProcedure.java @@ -285,8 +285,9 @@ public class AssignProcedure extends RegionTransitionProcedure { if (openSeqNum < regionNode.getOpenSeqNum()) { LOG.warn("Skipping update of open seqnum with " + openSeqNum + " because current seqnum=" + regionNode.getOpenSeqNum()); + } else { + regionNode.setOpenSeqNum(openSeqNum); } - regionNode.setOpenSeqNum(openSeqNum); // Leave the state here as OPENING for now. We set it to OPEN in // REGION_TRANSITION_FINISH section where we do a bunch of checks. // regionNode.setState(RegionState.State.OPEN, RegionState.State.OPENING); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateStore.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateStore.java index aa14b58b72d..7ad6647d55d 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateStore.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/assignment/RegionStateStore.java @@ -166,6 +166,7 @@ public class RegionStateStore { if (regionInfo.getReplicaId() == RegionInfo.DEFAULT_REPLICA_ID && hasGlobalReplicationScope(regionInfo.getTable())) { MetaTableAccessor.addReplicationBarrier(put, openSeqNum); + info.append(", repBarrier=").append(openSeqNum); } info.append(", openSeqNum=").append(openSeqNum); info.append(", regionLocation=").append(regionLocation); diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.java index 0b9efcefa78..ea2e314d3b0 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/master/replication/ModifyPeerProcedure.java @@ -230,10 +230,12 @@ public abstract class ModifyPeerProcedure extends AbstractPeerProcedure name2Barrier : MetaTableAccessor .getTableEncodedRegionNameAndLastBarrier(conn, tableName)) { + LOG.trace("Update last pushed sequence id for {}, {}", tableName, name2Barrier); addToMap(lastSeqIds, name2Barrier.getFirst(), name2Barrier.getSecond().longValue() - 1, queueStorage); } diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/SerialReplicationTestBase.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/SerialReplicationTestBase.java index 4b7fa8735fe..259914e91c4 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/SerialReplicationTestBase.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/SerialReplicationTestBase.java @@ -119,6 +119,7 @@ public class SerialReplicationTestBase { public static void setUpBeforeClass() throws Exception { UTIL.getConfiguration().setInt("replication.source.nb.capacity", 10); UTIL.getConfiguration().setLong("replication.sleep.before.failover", 1000); + UTIL.getConfiguration().setLong("hbase.serial.replication.waiting.ms", 100); UTIL.startMiniCluster(3); // disable balancer UTIL.getAdmin().balancerSwitch(false, true); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationBase.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationBase.java index 397d6e20a91..a0200d0edb5 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationBase.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/replication/TestReplicationBase.java @@ -94,7 +94,7 @@ public class TestReplicationBase { protected static final int NB_ROWS_IN_BIG_BATCH = NB_ROWS_IN_BATCH * 10; protected static final long SLEEP_TIME = 500; - protected static final int NB_RETRIES = 10; + protected static final int NB_RETRIES = 50; protected static final TableName tableName = TableName.valueOf("test"); protected static final byte[] famName = Bytes.toBytes("f"); @@ -195,6 +195,7 @@ public class TestReplicationBase { conf1.setInt("replication.source.maxretriesmultiplier", 10); conf1.setFloat("replication.source.ratio", 1.0f); conf1.setBoolean("replication.source.eof.autorecovery", true); + conf1.setLong("hbase.serial.replication.waiting.ms", 100); // Parameter config conf1.setBoolean(AbstractFSWALProvider.SEPARATE_OLDLOGDIR, seperateOldWALs);