From ccc1133a7aa87ee3b0c533112612ec0c370dfda5 Mon Sep 17 00:00:00 2001 From: chaokunyang Date: Wed, 15 Jul 2020 10:47:16 +0800 Subject: [PATCH] [Java] fix redis-server binary path (#9398) --- java/BUILD.bazel | 11 ++++++++++- .../java/io/ray/runtime/runner/RunManager.java | 2 +- .../java/io/ray/runtime/util/BinaryFileUtil.java | 15 ++++++--------- java/test.sh | 2 ++ 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/java/BUILD.bazel b/java/BUILD.bazel index 648a12c52..5dd517f3e 100644 --- a/java/BUILD.bazel +++ b/java/BUILD.bazel @@ -155,15 +155,24 @@ genrule( """, ) +# `//:redis-server`'s full path is `external/com_github_antirez_redis/redis-server`, +# This rule removes the prefix, and only keeps `redis-server`. +genrule( + name = "redis-server-without-prefix", + srcs = ["//:redis-server"], + outs = ["redis-server"], + cmd = "cp $< $@", +) + filegroup( name = "java_native_deps", srcs = [ ":cp_plasma_store_server", + ":redis-server-without-prefix", "//:core_worker_library_java", "//:gcs_server", "//:libray_redis_module.so", "//:raylet", - "//:redis-server", ], ) diff --git a/java/runtime/src/main/java/io/ray/runtime/runner/RunManager.java b/java/runtime/src/main/java/io/ray/runtime/runner/RunManager.java index 55a55ef49..6e2ed7345 100644 --- a/java/runtime/src/main/java/io/ray/runtime/runner/RunManager.java +++ b/java/runtime/src/main/java/io/ray/runtime/runner/RunManager.java @@ -253,7 +253,7 @@ public class RunManager { private String startRedisInstance(String ip, int port, String password, Integer shard) { final File redisServerFile = BinaryFileUtil.getFile( - rayConfig.sessionDir, BinaryFileUtil.REDIS_SERVER_BINARY_PATH); + rayConfig.sessionDir, BinaryFileUtil.REDIS_SERVER_BINARY_NAME); Preconditions.checkState(redisServerFile.setExecutable(true)); List command = Lists.newArrayList( // The redis-server executable file. diff --git a/java/runtime/src/main/java/io/ray/runtime/util/BinaryFileUtil.java b/java/runtime/src/main/java/io/ray/runtime/util/BinaryFileUtil.java index 6c996d4d6..576694ac3 100644 --- a/java/runtime/src/main/java/io/ray/runtime/util/BinaryFileUtil.java +++ b/java/runtime/src/main/java/io/ray/runtime/util/BinaryFileUtil.java @@ -11,9 +11,7 @@ import java.nio.file.Paths; import org.apache.commons.io.FileUtils; public class BinaryFileUtil { - // We use a path here because the top-level Bazel target is an alias - public static final String REDIS_SERVER_BINARY_PATH = - "external/com_github_antirez_redis/redis-server"; + public static final String REDIS_SERVER_BINARY_NAME = "redis-server"; public static final String GCS_SERVER_BINARY_NAME = "gcs_server"; @@ -32,11 +30,10 @@ public class BinaryFileUtil { * directory concurrently, this operation will be protected by a file lock. * * @param destDir a directory to extract resource file to - * @param filePath resource file path + * @param fileName resource file name * @return extracted resource file */ - public static File getFile(String destDir, String filePath) { - String fileName = new File(filePath).getName(); + public static File getFile(String destDir, String fileName) { final File dir = new File(destDir); if (!dir.exists()) { try { @@ -54,11 +51,11 @@ public class BinaryFileUtil { } // File does not exist. - try (InputStream is = BinaryFileUtil.class.getResourceAsStream("/" + filePath)) { - Preconditions.checkNotNull(is, "{} doesn't exist.", filePath); + try (InputStream is = BinaryFileUtil.class.getResourceAsStream("/" + fileName)) { + Preconditions.checkNotNull(is, "{} doesn't exist.", fileName); Files.copy(is, Paths.get(file.getCanonicalPath())); } catch (IOException e) { - throw new RuntimeException("Couldn't get temp file from resource " + filePath, e); + throw new RuntimeException("Couldn't get temp file from resource " + fileName, e); } return file; } catch (IOException e) { diff --git a/java/test.sh b/java/test.sh index 56a5f650a..30c305993 100755 --- a/java/test.sh +++ b/java/test.sh @@ -47,4 +47,6 @@ popd pushd $ROOT_DIR echo "Testing maven install." mvn -Dorg.slf4j.simpleLogger.defaultLogLevel=WARN clean install -DskipTests +# Ensure mvn test works +mvn test -pl test -Dtest="io.ray.test.HelloWorldTest" popd