aboutsummaryrefslogtreecommitdiffstats
path: root/config-proxy
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2021-09-09 17:00:16 +0200
committerGitHub <noreply@github.com>2021-09-09 17:00:16 +0200
commit979cb96cdeb6739d7ea769c60a04bac174619be1 (patch)
tree398df7405a72f47f14f90d421cda829d385f010b /config-proxy
parent9cf8fa3a53f581dfa794a8c1610844c6a9d460e0 (diff)
Revert "Revert "Use both xxhash64 and md5 for config payload in requests and responses [run-systemtest]""
Diffstat (limited to 'config-proxy')
-rw-r--r--config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ConfigProxyRpcServer.java4
-rw-r--r--config-proxy/src/test/java/com/yahoo/vespa/config/proxy/ConfigTester.java16
-rw-r--r--config-proxy/src/test/java/com/yahoo/vespa/config/proxy/MemoryCacheTest.java25
-rw-r--r--config-proxy/src/test/java/com/yahoo/vespa/config/proxy/ProxyServerTest.java6
4 files changed, 29 insertions, 22 deletions
diff --git a/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ConfigProxyRpcServer.java b/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ConfigProxyRpcServer.java
index 3700dee92e3..2d9f4bd7fd0 100644
--- a/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ConfigProxyRpcServer.java
+++ b/config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ConfigProxyRpcServer.java
@@ -12,7 +12,6 @@ import com.yahoo.jrt.StringValue;
import com.yahoo.jrt.Supervisor;
import com.yahoo.jrt.Target;
import com.yahoo.jrt.TargetWatcher;
-import java.util.logging.Level;
import com.yahoo.vespa.config.JRTMethods;
import com.yahoo.vespa.config.RawConfig;
import com.yahoo.vespa.config.protocol.JRTServerConfigRequest;
@@ -23,6 +22,7 @@ import java.util.Iterator;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
+import java.util.logging.Level;
import java.util.logging.Logger;
/**
@@ -353,7 +353,7 @@ public class ConfigProxyRpcServer implements Runnable, TargetWatcher, RpcServer
request.addOkResponse(config.getPayload(),
config.getGeneration(),
config.applyOnRestart(),
- config.getConfigMd5());
+ config.getPayloadChecksums());
log.log(Level.FINE, () -> "Return response: " + request.getShortDescription() + ",configMd5=" + config.getConfigMd5() +
",generation=" + config.getGeneration());
log.log(Level.FINEST, () -> "Config payload in response for " + request.getShortDescription() + ":" + config.getPayload());
diff --git a/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/ConfigTester.java b/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/ConfigTester.java
index 1b009b80fc1..45f52479cbd 100644
--- a/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/ConfigTester.java
+++ b/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/ConfigTester.java
@@ -5,6 +5,8 @@ import com.yahoo.jrt.Request;
import com.yahoo.slime.Slime;
import com.yahoo.vespa.config.ConfigKey;
import com.yahoo.vespa.config.ConfigPayload;
+import com.yahoo.vespa.config.PayloadChecksum;
+import com.yahoo.vespa.config.PayloadChecksums;
import com.yahoo.vespa.config.RawConfig;
import com.yahoo.vespa.config.protocol.CompressionType;
import com.yahoo.vespa.config.protocol.DefContent;
@@ -19,6 +21,9 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
+import static com.yahoo.vespa.config.PayloadChecksum.Type.MD5;
+import static com.yahoo.vespa.config.PayloadChecksum.Type.XXHASH64;
+
/**
* @author bratseth
*/
@@ -42,7 +47,8 @@ public class ConfigTester {
long generation = 1;
String defMd5 = ConfigUtils.getDefMd5(defContent);
- String configMd5 = ConfigUtils.getMd5(fooConfigPayload);
+ PayloadChecksums configMd5 = PayloadChecksums.from(new PayloadChecksum(ConfigUtils.getMd5(fooConfigPayload), MD5),
+ PayloadChecksum.empty(XXHASH64));
fooConfig = new RawConfig(configKey, defMd5, fooPayload, configMd5,
generation, false, defContent, Optional.empty());
@@ -57,24 +63,24 @@ public class ConfigTester {
JRTServerConfigRequest createRequest(RawConfig config, long timeout) {
return createRequest(config.getName(), config.getConfigId(), config.getNamespace(),
- config.getConfigMd5(), config.getGeneration(), timeout);
+ config.getPayloadChecksums(), config.getGeneration(), timeout);
}
JRTServerConfigRequest createRequest(String configName, String configId, String namespace, long timeout) {
- return createRequest(configName, configId, namespace, null, 0, timeout);
+ return createRequest(configName, configId, namespace, PayloadChecksums.empty(), 0, timeout);
}
private JRTServerConfigRequest createRequest(String configName,
String configId,
String namespace,
- String md5,
+ PayloadChecksums payloadChecksums,
long generation,
long timeout) {
Request request = JRTClientConfigRequestV3.
createWithParams(new ConfigKey<>(configName, configId, namespace, null),
DefContent.fromList(defContent),
"fromHost",
- md5,
+ payloadChecksums,
generation,
timeout,
Trace.createDummy(),
diff --git a/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/MemoryCacheTest.java b/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/MemoryCacheTest.java
index 485a091d9ae..b47c0bcc5ce 100644
--- a/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/MemoryCacheTest.java
+++ b/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/MemoryCacheTest.java
@@ -1,10 +1,11 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.config.proxy;
import com.yahoo.slime.Slime;
import com.yahoo.vespa.config.ConfigCacheKey;
import com.yahoo.vespa.config.ConfigKey;
import com.yahoo.vespa.config.ConfigPayload;
+import com.yahoo.vespa.config.PayloadChecksums;
import com.yahoo.vespa.config.RawConfig;
import com.yahoo.vespa.config.protocol.Payload;
import org.junit.Before;
@@ -18,24 +19,24 @@ import static org.junit.Assert.*;
/**
* @author hmusum
- * @since 5.1.9
*/
public class MemoryCacheTest {
- private String defName = "foo";
- private String configId = "id";
- private String namespace = "bar";
+
+ private final String defName = "foo";
+ private final String configId = "id";
+ private final String namespace = "bar";
private static final String defMd5 = "a";
- private long generation = 1L;
- private String defName2 = "baz-quux";
- private String namespace2 = "search.config";
+ private final long generation = 1L;
+ private final String defName2 = "baz-quux";
+ private final String namespace2 = "search.config";
// Test with a config id with / in it
- private String configId2 = "clients/gateways/gateway/component/com.yahoo.feedhandler.VespaFeedHandlerRemoveLocation";
+ private final String configId2 = "clients/gateways/gateway/component/com.yahoo.feedhandler.VespaFeedHandlerRemoveLocation";
private static final String defMd52 = "a2";
private static final String differentDefMd5 = "09ef";
- private static final String configMd5 = "b";
- private ConfigKey<?> configKey = new ConfigKey<>(defName, configId, namespace);
- private ConfigKey<?> configKey2 = new ConfigKey<>(defName2, configId2, namespace2);
+ private static final PayloadChecksums configMd5 = PayloadChecksums.from("b", "");
+ private final ConfigKey<?> configKey = new ConfigKey<>(defName, configId, namespace);
+ private final ConfigKey<?> configKey2 = new ConfigKey<>(defName2, configId2, namespace2);
private ConfigCacheKey cacheKey;
private ConfigCacheKey cacheKeyDifferentMd5;
private ConfigCacheKey cacheKey2;
diff --git a/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/ProxyServerTest.java b/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/ProxyServerTest.java
index 87c1fa151f8..32e68c662e8 100644
--- a/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/ProxyServerTest.java
+++ b/config-proxy/src/test/java/com/yahoo/vespa/config/proxy/ProxyServerTest.java
@@ -35,7 +35,7 @@ public class ProxyServerTest {
// errorConfig based on fooConfig
private static final ConfigKey<?> errorConfigKey = new ConfigKey<>("error", fooConfig.getConfigId(), fooConfig.getNamespace());
static final RawConfig errorConfig = new RawConfig(errorConfigKey, fooConfig.getDefMd5(), fooConfig.getPayload(),
- fooConfig.getConfigMd5(), fooConfig.getGeneration(), false,
+ fooConfig.getPayloadChecksums(), fooConfig.getGeneration(), false,
ErrorCode.UNKNOWN_DEFINITION, fooConfig.getDefContent(), Optional.empty());
@Rule
@@ -179,7 +179,7 @@ public class ProxyServerTest {
// Simulate an empty response
RawConfig emptyConfig = new RawConfig(fooConfig.getKey(), fooConfig.getDefMd5(), Payload.from("{}"),
- fooConfig.getConfigMd5(), 0, false,
+ fooConfig.getPayloadChecksums(), 0, false,
0, fooConfig.getDefContent(), Optional.empty());
source.put(fooConfig.getKey(), emptyConfig);
@@ -238,7 +238,7 @@ public class ProxyServerTest {
static RawConfig createConfigWithNextConfigGeneration(RawConfig config, int errorCode, Payload payload, long configGeneration) {
return new RawConfig(config.getKey(), config.getDefMd5(),
- payload, config.getConfigMd5(),
+ payload, config.getPayloadChecksums(),
configGeneration, false,
errorCode, config.getDefContent(), Optional.empty());
}