From 2d762088935790ae7f17acf4cd711efc669edb88 Mon Sep 17 00:00:00 2001 From: Ashish Singh Date: Wed, 6 Aug 2025 19:23:33 +0530 Subject: [PATCH 1/2] Fix segment replication bug during primary relocation Signed-off-by: Ashish Singh --- .../AbstractSegmentReplicationTarget.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/server/src/main/java/org/opensearch/indices/replication/AbstractSegmentReplicationTarget.java b/server/src/main/java/org/opensearch/indices/replication/AbstractSegmentReplicationTarget.java index 2275034f1ec81..d7850409f5ee5 100644 --- a/server/src/main/java/org/opensearch/indices/replication/AbstractSegmentReplicationTarget.java +++ b/server/src/main/java/org/opensearch/indices/replication/AbstractSegmentReplicationTarget.java @@ -162,6 +162,20 @@ public void startReplication(ActionListener listener, BiConsumer { + ReplicationCheckpoint getMetadataCheckpoint = checkpointInfo.getCheckpoint(); + if (checkpoint.isAheadOf(getMetadataCheckpoint)) { + // Fixes https://github.com/opensearch-project/OpenSearch/issues/18490 + listener.onFailure( + new ReplicationFailedException( + "Rejecting stale metadata checkpoint [" + + getMetadataCheckpoint + + "] since initial checkpoint [" + + checkpoint + + "] is ahead of it" + ) + ); + return; + } updateCheckpoint(checkpointInfo.getCheckpoint(), checkpointUpdater); final List filesToFetch = getFiles(checkpointInfo); state.setStage(SegmentReplicationState.Stage.GET_FILES); From 3c475c1129a0662b35b0f0632eb3bb1251e6140b Mon Sep 17 00:00:00 2001 From: Ashish Singh Date: Thu, 7 Aug 2025 10:43:09 +0530 Subject: [PATCH 2/2] Fix applicable for segrep local indexes only Signed-off-by: Ashish Singh --- .../indices/replication/AbstractSegmentReplicationTarget.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server/src/main/java/org/opensearch/indices/replication/AbstractSegmentReplicationTarget.java b/server/src/main/java/org/opensearch/indices/replication/AbstractSegmentReplicationTarget.java index d7850409f5ee5..5a21b10d04c06 100644 --- a/server/src/main/java/org/opensearch/indices/replication/AbstractSegmentReplicationTarget.java +++ b/server/src/main/java/org/opensearch/indices/replication/AbstractSegmentReplicationTarget.java @@ -163,7 +163,7 @@ public void startReplication(ActionListener listener, BiConsumer { ReplicationCheckpoint getMetadataCheckpoint = checkpointInfo.getCheckpoint(); - if (checkpoint.isAheadOf(getMetadataCheckpoint)) { + if (indexShard.indexSettings().isSegRepLocalEnabled() && checkpoint.isAheadOf(getMetadataCheckpoint)) { // Fixes https://github.com/opensearch-project/OpenSearch/issues/18490 listener.onFailure( new ReplicationFailedException(