[jira] [Updated] (FLINK-15244) FileUtils#deleteDirectoryQuietly will delete files in the symbolic link which point to a directory

2019-12-18 Thread Gary Yao (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-15244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gary Yao updated FLINK-15244:
-
Fix Version/s: (was: 1.11.0)

> FileUtils#deleteDirectoryQuietly will delete files in the symbolic link which 
> point to a directory
> --
>
> Key: FLINK-15244
> URL: https://issues.apache.org/jira/browse/FLINK-15244
> Project: Flink
>  Issue Type: Bug
>  Components: FileSystems
>Affects Versions: 1.10.0
>Reporter: Wei Zhong
>Assignee: Wei Zhong
>Priority: Blocker
>  Labels: pull-request-available
> Fix For: 1.10.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> _FileUtils.deleteDirectoryQuietly_ will delete files in symbolic link which 
> point to a directory. Currently the PyFlink uses this method to delete 
> temporary folders generated during the job submission and python UDF 
> execution, which contains the symbolic links which may point to users' 
> libraries and directories in distributed cache. 
> To resolve this problem we need to check if the directory is symbolic link in 
> _FileUtils.deleteDirectoryInternal:_
> {code:java}
> private static void deleteDirectoryInternal(File directory) throws 
> IOException {
> // **We should check if the directory is symbolic link.**
> if (directory.isDirectory()) {
>   // directory exists and is a directory
>   // empty the directory first
>   try {
>  cleanDirectoryInternal(directory);
>   }
>   catch (FileNotFoundException ignored) {
>  // someone concurrently deleted the directory, nothing to do for us
>  return;
>   }
>   // delete the directory. this fails if the directory is not empty, 
> meaning
>   // if new files got concurrently created. we want to fail then.
>   // if someone else deleted the empty directory concurrently, we don't 
> mind
>   // the result is the same for us, after all
>   Files.deleteIfExists(directory.toPath());
>}
>else if (directory.exists()) {
>   // exists but is file, not directory
>   // either an error from the caller, or concurrently a file got created
>   throw new IOException(directory + " is not a directory");
>}
>// else: does not exist, which is okay (as if deleted)
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (FLINK-15244) FileUtils#deleteDirectoryQuietly will delete files in the symbolic link which point to a directory

2019-12-13 Thread Hequn Cheng (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-15244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Hequn Cheng updated FLINK-15244:

Fix Version/s: 1.11.0

> FileUtils#deleteDirectoryQuietly will delete files in the symbolic link which 
> point to a directory
> --
>
> Key: FLINK-15244
> URL: https://issues.apache.org/jira/browse/FLINK-15244
> Project: Flink
>  Issue Type: Bug
>  Components: FileSystems
>Affects Versions: 1.10.0
>Reporter: Wei Zhong
>Priority: Blocker
>  Labels: pull-request-available
> Fix For: 1.10.0, 1.11.0
>
>  Time Spent: 10m
>  Remaining Estimate: 0h
>
> _FileUtils.deleteDirectoryQuietly_ will delete files in symbolic link which 
> point to a directory. Currently the PyFlink uses this method to delete 
> temporary folders generated during the job submission and python UDF 
> execution, which contains the symbolic links which may point to users' 
> libraries and directories in distributed cache. 
> To resolve this problem we need to check if the directory is symbolic link in 
> _FileUtils.deleteDirectoryInternal:_
> {code:java}
> private static void deleteDirectoryInternal(File directory) throws 
> IOException {
> // **We should check if the directory is symbolic link.**
> if (directory.isDirectory()) {
>   // directory exists and is a directory
>   // empty the directory first
>   try {
>  cleanDirectoryInternal(directory);
>   }
>   catch (FileNotFoundException ignored) {
>  // someone concurrently deleted the directory, nothing to do for us
>  return;
>   }
>   // delete the directory. this fails if the directory is not empty, 
> meaning
>   // if new files got concurrently created. we want to fail then.
>   // if someone else deleted the empty directory concurrently, we don't 
> mind
>   // the result is the same for us, after all
>   Files.deleteIfExists(directory.toPath());
>}
>else if (directory.exists()) {
>   // exists but is file, not directory
>   // either an error from the caller, or concurrently a file got created
>   throw new IOException(directory + " is not a directory");
>}
>// else: does not exist, which is okay (as if deleted)
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (FLINK-15244) FileUtils#deleteDirectoryQuietly will delete files in the symbolic link which point to a directory

2019-12-13 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-15244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated FLINK-15244:
---
Labels: pull-request-available  (was: )

> FileUtils#deleteDirectoryQuietly will delete files in the symbolic link which 
> point to a directory
> --
>
> Key: FLINK-15244
> URL: https://issues.apache.org/jira/browse/FLINK-15244
> Project: Flink
>  Issue Type: Bug
>  Components: FileSystems
>Affects Versions: 1.10.0
>Reporter: Wei Zhong
>Priority: Blocker
>  Labels: pull-request-available
> Fix For: 1.10.0
>
>
> _FileUtils.deleteDirectoryQuietly_ will delete files in symbolic link which 
> point to a directory. Currently the PyFlink uses this method to delete 
> temporary folders generated during the job submission and python UDF 
> execution, which contains the symbolic links which may point to users' 
> libraries and directories in distributed cache. 
> To resolve this problem we need to check if the directory is symbolic link in 
> _FileUtils.deleteDirectoryInternal:_
> {code:java}
> private static void deleteDirectoryInternal(File directory) throws 
> IOException {
> // **We should check if the directory is symbolic link.**
> if (directory.isDirectory()) {
>   // directory exists and is a directory
>   // empty the directory first
>   try {
>  cleanDirectoryInternal(directory);
>   }
>   catch (FileNotFoundException ignored) {
>  // someone concurrently deleted the directory, nothing to do for us
>  return;
>   }
>   // delete the directory. this fails if the directory is not empty, 
> meaning
>   // if new files got concurrently created. we want to fail then.
>   // if someone else deleted the empty directory concurrently, we don't 
> mind
>   // the result is the same for us, after all
>   Files.deleteIfExists(directory.toPath());
>}
>else if (directory.exists()) {
>   // exists but is file, not directory
>   // either an error from the caller, or concurrently a file got created
>   throw new IOException(directory + " is not a directory");
>}
>// else: does not exist, which is okay (as if deleted)
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (FLINK-15244) FileUtils#deleteDirectoryQuietly will delete files in the symbolic link which point to a directory

2019-12-13 Thread Wei Zhong (Jira)


 [ 
https://issues.apache.org/jira/browse/FLINK-15244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wei Zhong updated FLINK-15244:
--
Component/s: FileSystems

> FileUtils#deleteDirectoryQuietly will delete files in the symbolic link which 
> point to a directory
> --
>
> Key: FLINK-15244
> URL: https://issues.apache.org/jira/browse/FLINK-15244
> Project: Flink
>  Issue Type: Bug
>  Components: FileSystems
>Affects Versions: 1.10.0
>Reporter: Wei Zhong
>Priority: Blocker
> Fix For: 1.10.0
>
>
> _FileUtils.deleteDirectoryQuietly_ will delete files in symbolic link which 
> point to a directory. Currently the PyFlink uses this method to delete 
> temporary folders generated during the job submission and python UDF 
> execution, which contains the symbolic links which may point to users' 
> libraries and directories in distributed cache. 
> To resolve this problem we need to check if the directory is symbolic link in 
> _FileUtils.deleteDirectoryInternal:_
> {code:java}
> private static void deleteDirectoryInternal(File directory) throws 
> IOException {
> // **We should check if the directory is symbolic link.**
> if (directory.isDirectory()) {
>   // directory exists and is a directory
>   // empty the directory first
>   try {
>  cleanDirectoryInternal(directory);
>   }
>   catch (FileNotFoundException ignored) {
>  // someone concurrently deleted the directory, nothing to do for us
>  return;
>   }
>   // delete the directory. this fails if the directory is not empty, 
> meaning
>   // if new files got concurrently created. we want to fail then.
>   // if someone else deleted the empty directory concurrently, we don't 
> mind
>   // the result is the same for us, after all
>   Files.deleteIfExists(directory.toPath());
>}
>else if (directory.exists()) {
>   // exists but is file, not directory
>   // either an error from the caller, or concurrently a file got created
>   throw new IOException(directory + " is not a directory");
>}
>// else: does not exist, which is okay (as if deleted)
> }
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)