From 571ecd9393c1d05876ae325e7f956a07f38d5160 Mon Sep 17 00:00:00 2001 From: Michael Basnight Date: Thu, 24 May 2018 14:02:31 -0500 Subject: [PATCH] Fix bad version check writing Repository nodes The writeTo method of VerifyRepositoryResponse incorrectly used its local version to determine what it was receiving, rather than the sender's version. This fixes a bug that ocassionally happened when a 6.4 master node sent data to a 7.0 client, causing the number of bytes to be improperly read. This also unmutes the test. Closes #30807 --- .../rest-api-spec/test/snapshot.get_repository/10_basic.yml | 3 --- .../cluster/repositories/verify/VerifyRepositoryResponse.java | 2 +- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/snapshot.get_repository/10_basic.yml b/rest-api-spec/src/main/resources/rest-api-spec/test/snapshot.get_repository/10_basic.yml index 47f5ac0934ce9..b944fe43791e4 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/test/snapshot.get_repository/10_basic.yml +++ b/rest-api-spec/src/main/resources/rest-api-spec/test/snapshot.get_repository/10_basic.yml @@ -51,9 +51,6 @@ setup: --- "Verify created repository": - - skip: - version: " - 6.99.99" - reason: AwaitsFix for https://github.com/elastic/elasticsearch/issues/30807 - do: snapshot.verify_repository: repository: test_repo_get_2 diff --git a/server/src/main/java/org/elasticsearch/action/admin/cluster/repositories/verify/VerifyRepositoryResponse.java b/server/src/main/java/org/elasticsearch/action/admin/cluster/repositories/verify/VerifyRepositoryResponse.java index c3fb2d58bebf3..b399923b2025b 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/cluster/repositories/verify/VerifyRepositoryResponse.java +++ b/server/src/main/java/org/elasticsearch/action/admin/cluster/repositories/verify/VerifyRepositoryResponse.java @@ -151,7 +151,7 @@ public void readFrom(StreamInput in) throws IOException { @Override public void writeTo(StreamOutput out) throws IOException { super.writeTo(out); - if (Version.CURRENT.onOrAfter(Version.V_7_0_0_alpha1)) { + if (out.getVersion().onOrAfter(Version.V_7_0_0_alpha1)) { out.writeList(getNodes()); } else { clusterName.writeTo(out);