diff --git a/CHANGELOG.md b/CHANGELOG.md index 5393f8e42201e..a6b7dd05ebad4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), - Fix bug of warm index: FullFileCachedIndexInput was closed error ([#20055](https://github.com/opensearch-project/OpenSearch/pull/20055)) - Fix flaky test ClusterMaxMergesAtOnceIT.testClusterLevelDefaultUpdatesMergePolicy ([#18056](https://github.com/opensearch-project/OpenSearch/issues/18056)) - Fix bug in Assertion framework(Yaml Rest test): numeric comparison fails when comparing Integer vs Long (or Float vs Double) ([#19376](https://github.com/opensearch-project/OpenSearch/pull/19376)) +- Fix working directory for OpenSearchNode to avoid executing in immutable Gradle cache directory ([#20229](https://github.com/opensearch-project/OpenSearch/pull/20229)) - Fix Netty deprecation warnings in transport-netty4 module ([#20233](https://github.com/opensearch-project/OpenSearch/pull/20233)) ### Dependencies diff --git a/buildSrc/src/main/java/org/opensearch/gradle/testclusters/OpenSearchNode.java b/buildSrc/src/main/java/org/opensearch/gradle/testclusters/OpenSearchNode.java index 47781f4ed5de7..451fefd7aba98 100644 --- a/buildSrc/src/main/java/org/opensearch/gradle/testclusters/OpenSearchNode.java +++ b/buildSrc/src/main/java/org/opensearch/gradle/testclusters/OpenSearchNode.java @@ -725,12 +725,17 @@ private void runOpenSearchBinScriptWithInput(String input, String tool, CharSequ try (InputStream byteArrayInputStream = new ByteArrayInputStream(input.getBytes(StandardCharsets.UTF_8))) { LoggedExec.exec(project, spec -> { spec.setEnvironment(getOpenSearchEnvironment()); - spec.workingDir(getDistroDir()); - spec.executable(OS.conditionalString().onUnix(() -> "./bin/" + tool).onWindows(() -> "cmd").supply()); + spec.workingDir(workingDir.toFile()); + spec.executable( + OS.conditionalString() + .onUnix(() -> getDistroDir().resolve("bin").resolve(tool).toString()) + .onWindows(() -> "cmd") + .supply() + ); spec.args(OS.>conditional().onWindows(() -> { ArrayList result = new ArrayList<>(); result.add("/c"); - result.add("bin\\" + tool + ".bat"); + result.add(getDistroDir().resolve("bin").resolve(tool + ".bat").toString()); result.addAll(Arrays.asList(args)); return result; }).onUnix(() -> Arrays.asList(args)).supply());