mirror of
https://github.com/wassname/ray.git
synced 2026-06-28 03:34:48 +08:00
[dist] Fix travis deploy for java dist (#9768)
This commit is contained in:
@@ -16,6 +16,7 @@ import io.ray.runtime.runner.RunManager;
|
||||
import io.ray.runtime.task.NativeTaskExecutor;
|
||||
import io.ray.runtime.task.NativeTaskSubmitter;
|
||||
import io.ray.runtime.task.TaskExecutor;
|
||||
import io.ray.runtime.util.BinaryFileUtil;
|
||||
import io.ray.runtime.util.JniUtils;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
@@ -49,7 +50,7 @@ public final class RayNativeRuntime extends AbstractRayRuntime {
|
||||
rayConfig.setSessionDir(sessionDir);
|
||||
}
|
||||
|
||||
JniUtils.loadLibrary("core_worker_library_java", true);
|
||||
JniUtils.loadLibrary(BinaryFileUtil.CORE_WORKER_JAVA_LIBRARY, true);
|
||||
LOGGER.debug("Native libraries loaded.");
|
||||
// Reset library path at runtime.
|
||||
resetLibraryPath(rayConfig);
|
||||
|
||||
@@ -237,7 +237,7 @@ public class RunManager {
|
||||
}
|
||||
|
||||
// See `src/ray/gcs/gcs_server/gcs_server_main.cc` for the meaning of each parameter.
|
||||
final File gcsServerFile = BinaryFileUtil.getFile(
|
||||
final File gcsServerFile = BinaryFileUtil.getNativeFile(
|
||||
rayConfig.sessionDir, BinaryFileUtil.GCS_SERVER_BINARY_NAME);
|
||||
Preconditions.checkState(gcsServerFile.setExecutable(true));
|
||||
List<String> command = ImmutableList.of(
|
||||
@@ -254,7 +254,7 @@ public class RunManager {
|
||||
}
|
||||
|
||||
private String startRedisInstance(String ip, int port, String password, Integer shard) {
|
||||
final File redisServerFile = BinaryFileUtil.getFile(
|
||||
final File redisServerFile = BinaryFileUtil.getNativeFile(
|
||||
rayConfig.sessionDir, BinaryFileUtil.REDIS_SERVER_BINARY_NAME);
|
||||
Preconditions.checkState(redisServerFile.setExecutable(true));
|
||||
List<String> command = Lists.newArrayList(
|
||||
@@ -268,7 +268,7 @@ public class RunManager {
|
||||
"warning",
|
||||
"--loadmodule",
|
||||
// The redis module file.
|
||||
BinaryFileUtil.getFile(
|
||||
BinaryFileUtil.getNativeFile(
|
||||
rayConfig.sessionDir, BinaryFileUtil.REDIS_MODULE_LIBRARY_NAME).getAbsolutePath()
|
||||
);
|
||||
|
||||
@@ -305,7 +305,7 @@ public class RunManager {
|
||||
}
|
||||
|
||||
// See `src/ray/raylet/main.cc` for the meaning of each parameter.
|
||||
final File rayletFile = BinaryFileUtil.getFile(
|
||||
final File rayletFile = BinaryFileUtil.getNativeFile(
|
||||
rayConfig.sessionDir, BinaryFileUtil.RAYLET_BINARY_NAME);
|
||||
Preconditions.checkState(rayletFile.setExecutable(true));
|
||||
List<String> command = ImmutableList.of(
|
||||
@@ -373,7 +373,7 @@ public class RunManager {
|
||||
}
|
||||
|
||||
private void startObjectStore() {
|
||||
final File objectStoreFile = BinaryFileUtil.getFile(
|
||||
final File objectStoreFile = BinaryFileUtil.getNativeFile(
|
||||
rayConfig.sessionDir, BinaryFileUtil.PLASMA_STORE_SERVER_BINARY_NAME);
|
||||
Preconditions.checkState(objectStoreFile.setExecutable(true));
|
||||
List<String> command = ImmutableList.of(
|
||||
|
||||
@@ -9,6 +9,7 @@ import java.nio.channels.FileLock;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.lang3.SystemUtils;
|
||||
|
||||
public class BinaryFileUtil {
|
||||
public static final String REDIS_SERVER_BINARY_NAME = "redis-server";
|
||||
@@ -21,11 +22,10 @@ public class BinaryFileUtil {
|
||||
|
||||
public static final String REDIS_MODULE_LIBRARY_NAME = "libray_redis_module.so";
|
||||
|
||||
public static final String CORE_WORKER_JAVA_LIBRARY =
|
||||
System.mapLibraryName("core_worker_library_java");
|
||||
public static final String CORE_WORKER_JAVA_LIBRARY = "core_worker_library_java";
|
||||
|
||||
/**
|
||||
* Extract a resource file to <code>destDir</code>.
|
||||
* Extract a platform-native resource file to <code>destDir</code>.
|
||||
* Note that this a process-safe operation. If multi processes extract the file to same
|
||||
* directory concurrently, this operation will be protected by a file lock.
|
||||
*
|
||||
@@ -33,7 +33,7 @@ public class BinaryFileUtil {
|
||||
* @param fileName resource file name
|
||||
* @return extracted resource file
|
||||
*/
|
||||
public static File getFile(String destDir, String fileName) {
|
||||
public static File getNativeFile(String destDir, String fileName) {
|
||||
final File dir = new File(destDir);
|
||||
if (!dir.exists()) {
|
||||
try {
|
||||
@@ -45,17 +45,26 @@ public class BinaryFileUtil {
|
||||
String lockFilePath = destDir + File.separator + "file_lock";
|
||||
try (FileLock ignored = new RandomAccessFile(lockFilePath, "rw")
|
||||
.getChannel().lock()) {
|
||||
String resourceDir;
|
||||
if (SystemUtils.IS_OS_MAC) {
|
||||
resourceDir = "native/darwin/";
|
||||
} else if (SystemUtils.IS_OS_LINUX) {
|
||||
resourceDir = "native/linux/";
|
||||
} else {
|
||||
throw new UnsupportedOperationException("Unsupported os " + SystemUtils.OS_NAME);
|
||||
}
|
||||
String resourcePath = resourceDir + fileName;
|
||||
File file = new File(String.format("%s/%s", destDir, fileName));
|
||||
if (file.exists()) {
|
||||
return file;
|
||||
}
|
||||
|
||||
// File does not exist.
|
||||
try (InputStream is = BinaryFileUtil.class.getResourceAsStream("/" + fileName)) {
|
||||
Preconditions.checkNotNull(is, "{} doesn't exist.", fileName);
|
||||
try (InputStream is = BinaryFileUtil.class.getResourceAsStream("/" + resourcePath)) {
|
||||
Preconditions.checkNotNull(is, "{} doesn't exist.", resourcePath);
|
||||
Files.copy(is, Paths.get(file.getCanonicalPath()));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException("Couldn't get temp file from resource " + fileName, e);
|
||||
throw new RuntimeException("Couldn't get temp file from resource " + resourcePath, e);
|
||||
}
|
||||
return file;
|
||||
} catch (IOException e) {
|
||||
|
||||
@@ -39,7 +39,7 @@ public class JniUtils {
|
||||
// Load native library.
|
||||
String fileName = System.mapLibraryName(libraryName);
|
||||
final String sessionDir = RayConfig.getInstance().sessionDir;
|
||||
final File file = BinaryFileUtil.getFile(sessionDir, fileName);
|
||||
final File file = BinaryFileUtil.getNativeFile(sessionDir, fileName);
|
||||
|
||||
if (exportSymbols) {
|
||||
// Expose library symbols using RTLD_GLOBAL which may be depended by other shared
|
||||
|
||||
Reference in New Issue
Block a user