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);
+    }
 }