This is an automated email from the ASF dual-hosted git repository.

fcsaky pushed a commit to branch release-1.20
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/release-1.20 by this push:
     new 1691a4e4a33 [FLINK-35833][clients] Skip trying to create parents for 
"user.artifacts.base-dir" when fetching a "local://" artifact
1691a4e4a33 is described below

commit 1691a4e4a335072a9ce085c49909fcf9d4e24858
Author: Ferenc Csaky <[email protected]>
AuthorDate: Mon Oct 14 19:48:45 2024 +0200

    [FLINK-35833][clients] Skip trying to create parents for 
"user.artifacts.base-dir" when fetching a "local://" artifact
---
 .../client/program/artifact/ArtifactFetchManager.java     |  3 ---
 .../flink/client/program/artifact/FsArtifactFetcher.java  |  2 ++
 .../client/program/artifact/HttpArtifactFetcher.java      |  2 ++
 .../client/program/artifact/ArtifactFetchManagerTest.java | 15 +++++++++++++++
 4 files changed, 19 insertions(+), 3 deletions(-)

diff --git 
a/flink-clients/src/main/java/org/apache/flink/client/program/artifact/ArtifactFetchManager.java
 
b/flink-clients/src/main/java/org/apache/flink/client/program/artifact/ArtifactFetchManager.java
index 42683b9139b..f37d303e12f 100644
--- 
a/flink-clients/src/main/java/org/apache/flink/client/program/artifact/ArtifactFetchManager.java
+++ 
b/flink-clients/src/main/java/org/apache/flink/client/program/artifact/ArtifactFetchManager.java
@@ -90,7 +90,6 @@ public class ArtifactFetchManager {
     public Result fetchArtifacts(String[] uris) {
         checkArgument(uris != null && uris.length > 0, "At least one URI is 
required.");
 
-        ArtifactUtils.createMissingParents(baseDir);
         List<File> artifacts =
                 Arrays.stream(uris)
                         
.map(FunctionUtils.uncheckedFunction(this::fetchArtifact))
@@ -120,9 +119,7 @@ public class ArtifactFetchManager {
             throws Exception {
         checkArgument(jobUri != null && !jobUri.trim().isEmpty(), "The jobUri 
is required.");
 
-        ArtifactUtils.createMissingParents(baseDir);
         File jobJar = fetchArtifact(jobUri);
-
         List<File> additionalArtifacts =
                 additionalUris == null
                         ? Collections.emptyList()
diff --git 
a/flink-clients/src/main/java/org/apache/flink/client/program/artifact/FsArtifactFetcher.java
 
b/flink-clients/src/main/java/org/apache/flink/client/program/artifact/FsArtifactFetcher.java
index caa40858fe2..41b10ac9006 100644
--- 
a/flink-clients/src/main/java/org/apache/flink/client/program/artifact/FsArtifactFetcher.java
+++ 
b/flink-clients/src/main/java/org/apache/flink/client/program/artifact/FsArtifactFetcher.java
@@ -35,6 +35,8 @@ class FsArtifactFetcher extends ArtifactFetcher {
 
     @Override
     File fetch(String uri, Configuration flinkConf, File targetDir) throws 
Exception {
+        ArtifactUtils.createMissingParents(targetDir);
+
         Path source = new Path(uri);
         long start = System.currentTimeMillis();
         FileSystem fileSystem = source.getFileSystem();
diff --git 
a/flink-clients/src/main/java/org/apache/flink/client/program/artifact/HttpArtifactFetcher.java
 
b/flink-clients/src/main/java/org/apache/flink/client/program/artifact/HttpArtifactFetcher.java
index 70303f85f77..473fa0ce553 100644
--- 
a/flink-clients/src/main/java/org/apache/flink/client/program/artifact/HttpArtifactFetcher.java
+++ 
b/flink-clients/src/main/java/org/apache/flink/client/program/artifact/HttpArtifactFetcher.java
@@ -39,6 +39,8 @@ class HttpArtifactFetcher extends ArtifactFetcher {
 
     @Override
     File fetch(String uri, Configuration flinkConf, File targetDir) throws 
IOException {
+        ArtifactUtils.createMissingParents(targetDir);
+
         long start = System.currentTimeMillis();
         URL url = new URL(uri);
         HttpURLConnection conn = (HttpURLConnection) url.openConnection();
diff --git 
a/flink-clients/src/test/java/org/apache/flink/client/program/artifact/ArtifactFetchManagerTest.java
 
b/flink-clients/src/test/java/org/apache/flink/client/program/artifact/ArtifactFetchManagerTest.java
index b55d38163df..d27ab8deac5 100644
--- 
a/flink-clients/src/test/java/org/apache/flink/client/program/artifact/ArtifactFetchManagerTest.java
+++ 
b/flink-clients/src/test/java/org/apache/flink/client/program/artifact/ArtifactFetchManagerTest.java
@@ -169,6 +169,21 @@ class ArtifactFetchManagerTest {
         assertThat(dummyFetcher.fetchCount).isZero();
     }
 
+    @Test
+    void testLocalFetcherNotCreatesBaseDir() throws Exception {
+        Path nonExistingPath =
+                
tempDir.resolve("non").resolve("existing").resolve("path").toAbsolutePath();
+        configuration.set(ArtifactFetchOptions.BASE_DIR, 
nonExistingPath.toString());
+
+        File sourceFile = TestingUtils.getClassFile(getClass());
+        String uriStr = "local://" + sourceFile.toURI().getPath();
+
+        ArtifactFetchManager fetchMgr = new 
ArtifactFetchManager(configuration);
+        fetchMgr.fetchArtifacts(uriStr, null);
+
+        assertThat(nonExistingPath.getParent().getParent()).doesNotExist();
+    }
+
     @Test
     void testHttpDisabledError() {
         ArtifactFetchManager fetchMgr = new 
ArtifactFetchManager(configuration);

Reply via email to