You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by da...@apache.org on 2023/01/11 20:57:59 UTC
[flink] branch master updated: [FLINK-30375][Table SQL / Client] sql-client leaks flink-table-planner jar in /tmp (#21512)
This is an automated email from the ASF dual-hosted git repository.
dannycranmer pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git
The following commit(s) were added to refs/heads/master by this push:
new 086f13a9cd6 [FLINK-30375][Table SQL / Client] sql-client leaks flink-table-planner jar in /tmp (#21512)
086f13a9cd6 is described below
commit 086f13a9cd625f856309d1d57d80a0b6a66c687b
Author: Samrat <de...@gmail.com>
AuthorDate: Thu Jan 12 02:27:50 2023 +0530
[FLINK-30375][Table SQL / Client] sql-client leaks flink-table-planner jar in /tmp (#21512)
---
.../flink/table/planner/loader/PlannerModule.java | 1 +
.../apache/flink/table/planner/loader/LoaderITCase.java | 17 +++++++++++++++++
2 files changed, 18 insertions(+)
diff --git a/flink-table/flink-table-planner-loader/src/main/java/org/apache/flink/table/planner/loader/PlannerModule.java b/flink-table/flink-table-planner-loader/src/main/java/org/apache/flink/table/planner/loader/PlannerModule.java
index bba6c76c740..0e10df9fc94 100644
--- a/flink-table/flink-table-planner-loader/src/main/java/org/apache/flink/table/planner/loader/PlannerModule.java
+++ b/flink-table/flink-table-planner-loader/src/main/java/org/apache/flink/table/planner/loader/PlannerModule.java
@@ -112,6 +112,7 @@ class PlannerModule {
}
IOUtils.copyBytes(resourceStream, Files.newOutputStream(tempFile));
+ tempFile.toFile().deleteOnExit();
this.submoduleClassLoader =
new ComponentClassLoader(
diff --git a/flink-table/flink-table-planner-loader/src/test/java/org/apache/flink/table/planner/loader/LoaderITCase.java b/flink-table/flink-table-planner-loader/src/test/java/org/apache/flink/table/planner/loader/LoaderITCase.java
index 88c39d75e98..f245fcf4cf2 100644
--- a/flink-table/flink-table-planner-loader/src/test/java/org/apache/flink/table/planner/loader/LoaderITCase.java
+++ b/flink-table/flink-table-planner-loader/src/test/java/org/apache/flink/table/planner/loader/LoaderITCase.java
@@ -18,13 +18,21 @@
package org.apache.flink.table.planner.loader;
+import org.apache.flink.configuration.Configuration;
+import org.apache.flink.configuration.ConfigurationUtils;
import org.apache.flink.table.delegation.ExecutorFactory;
import org.apache.flink.table.delegation.PlannerFactory;
import org.apache.flink.table.factories.FactoryUtil;
+import org.apache.flink.util.FileUtils;
import org.apache.flink.util.TestLogger;
import org.junit.jupiter.api.Test;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
import static org.apache.flink.table.planner.loader.PlannerModule.FLINK_TABLE_PLANNER_FAT_JAR;
import static org.assertj.core.api.Assertions.assertThat;
@@ -75,4 +83,13 @@ public class LoaderITCase extends TestLogger {
assertThat(plannerFactory).isNotNull().isInstanceOf(DelegatePlannerFactory.class);
assertThat(plannerFactory.factoryIdentifier()).isEqualTo(PlannerFactory.DEFAULT_IDENTIFIER);
}
+
+ @Test
+ public void testPlannerJarLeak() throws IOException {
+ PlannerModule plannerModule = PlannerModule.getInstance();
+ final Path tmpDirectory =
+ Paths.get(ConfigurationUtils.parseTempDirectories(new Configuration())[0]);
+ Files.createDirectories(FileUtils.getTargetPathIfContainsSymbolicPath(tmpDirectory));
+ assertThat(tmpDirectory.startsWith("flink-table-planner_")).isEqualTo(false);
+ }
}