You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the bug
Segment replication relies on computing the max seqNo on primary shards so that the seqNo that is sent to replicas is accurate to what is in the infos. However, this function breaks after deletes are merged away, moving the maxSeqNo back in time.
1> java.lang.AssertionError: null
1> at org.opensearch.index.engine.Engine.getMaxSeqNoFromSearcher(Engine.java:317) ~[main/:?]
1> at org.opensearch.index.engine.Engine.getMaxSeqNoFromSegmentInfos(Engine.java:291) ~[main/:?]
1> at org.opensearch.index.shard.RemoteStoreRefreshListener.uploadSegmentInfosSnapshot(RemoteStoreRefreshListener.java:182) ~[main/:?]
This functionality was introduced to pass an accurate seqNo to replicas to
pass an accurate seqNo to setLocalCheckpointOfSafeCommit, to determine where xlog should be trimmed after a commit is received.
Update the replica's processed seqNo.
To Reproduce
Start a cluster with SR
index some documents
Delete a portion of the documents.
Trigger a force merge.
Expected behavior
Replicas should be sent accurate seqNo as computed by the primary. One way to avoid this is to send only max seqNo as set in userdata by primaries on commit. On a refresh level this means replica's processed seqNo would not update.
The text was updated successfully, but these errors were encountered:
Describe the bug
Segment replication relies on computing the max seqNo on primary shards so that the seqNo that is sent to replicas is accurate to what is in the infos. However, this function breaks after deletes are merged away, moving the maxSeqNo back in time.
This functionality was introduced to pass an accurate seqNo to replicas to
setLocalCheckpointOfSafeCommit
, to determine where xlog should be trimmed after a commit is received.To Reproduce
Expected behavior
Replicas should be sent accurate seqNo as computed by the primary. One way to avoid this is to send only max seqNo as set in userdata by primaries on commit. On a refresh level this means replica's processed seqNo would not update.
The text was updated successfully, but these errors were encountered: