From bbffd871a28cf2c7b4dc9ba92f9e3ab7e246e3c5 Mon Sep 17 00:00:00 2001 From: Jason Tedor Date: Mon, 16 Jan 2017 08:04:02 -0500 Subject: [PATCH] Clarify handling of version conflict This commit adds a comment explaining why version conflicts during recovery and on replicas are considered normal and thus why we return a successful result. --- .../java/org/elasticsearch/index/engine/InternalEngine.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/src/main/java/org/elasticsearch/index/engine/InternalEngine.java b/core/src/main/java/org/elasticsearch/index/engine/InternalEngine.java index 72daca9b8f54f..d024c876f47c7 100644 --- a/core/src/main/java/org/elasticsearch/index/engine/InternalEngine.java +++ b/core/src/main/java/org/elasticsearch/index/engine/InternalEngine.java @@ -487,6 +487,10 @@ private Optional checkVersionConflict( op.versionType().explainConflictForWrites(currentVersion, expectedVersion, deleted)); result = onFailure.apply(e); } else { + /* + * Version conflicts during recovery and on replicas are normal due to asynchronous execution; as such, we should return a + * successful result. + */ result = onSuccess.get(); } return Optional.of(result);