diff --git a/libs/native/src/main/java/org/elasticsearch/nativeaccess/NativeAccess.java b/libs/native/src/main/java/org/elasticsearch/nativeaccess/NativeAccess.java index 142171c5bbfcc..d9ad91d47f312 100644 --- a/libs/native/src/main/java/org/elasticsearch/nativeaccess/NativeAccess.java +++ b/libs/native/src/main/java/org/elasticsearch/nativeaccess/NativeAccess.java @@ -9,6 +9,10 @@ package org.elasticsearch.nativeaccess; +import org.elasticsearch.logging.LogManager; + +import java.lang.foreign.Arena; +import java.lang.foreign.SymbolLookup; import java.nio.file.Path; import java.util.Optional; import java.util.OptionalLong; @@ -18,6 +22,11 @@ */ public interface NativeAccess { + static void loadCuvs() { + var libCuvs = SymbolLookup.libraryLookup(System.mapLibraryName("cuvs_c"), Arena.ofAuto()); + LogManager.getLogger(NativeAccess.class).info("Loaded libcuvs_c.so: " + libCuvs); + } + /** * Get the one and only instance of {@link NativeAccess} which is specific to the running platform and JVM. */ diff --git a/server/src/main/java/org/elasticsearch/bootstrap/Elasticsearch.java b/server/src/main/java/org/elasticsearch/bootstrap/Elasticsearch.java index 8b59a59dcf313..9ec7f1133d2a5 100644 --- a/server/src/main/java/org/elasticsearch/bootstrap/Elasticsearch.java +++ b/server/src/main/java/org/elasticsearch/bootstrap/Elasticsearch.java @@ -183,6 +183,7 @@ private static void initPhase2(Bootstrap bootstrap) throws IOException { bootstrap.spawner().spawnNativeControllers(nodeEnv); nodeEnv.validateNativesConfig(); // temporary directories are important for JNA + NativeAccess.loadCuvs(); initializeNatives( nodeEnv.tmpDir(), BootstrapSettings.MEMORY_LOCK_SETTING.get(args.nodeSettings()), diff --git a/x-pack/plugin/gpu/src/yamlRestTest/java/org/elasticsearch/xpack/gpu/GPUClientYamlTestSuiteIT.java b/x-pack/plugin/gpu/src/yamlRestTest/java/org/elasticsearch/xpack/gpu/GPUClientYamlTestSuiteIT.java index 0f4a7a059b6d4..4bfaab9243d90 100644 --- a/x-pack/plugin/gpu/src/yamlRestTest/java/org/elasticsearch/xpack/gpu/GPUClientYamlTestSuiteIT.java +++ b/x-pack/plugin/gpu/src/yamlRestTest/java/org/elasticsearch/xpack/gpu/GPUClientYamlTestSuiteIT.java @@ -21,6 +21,7 @@ public class GPUClientYamlTestSuiteIT extends ESClientYamlSuiteTestCase { .module("gpu") .setting("xpack.license.self_generated.type", "trial") .setting("xpack.security.enabled", "false") + .environment("LD_LIBRARY_PATH", System.getenv("LD_LIBRARY_PATH")) .build(); public GPUClientYamlTestSuiteIT(final ClientYamlTestCandidate testCandidate) {