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

Zamil Majdy updated HADOOP-17990:
---------------------------------
    Description: 
*Bug description:*

When {{fs.azure.createRemoteFileSystemDuringInitialization}} is enabled, the 
filesystem will create a container if it does not already exist inside the 
{{initialize}} method. The current flow of creating the container will fail in 
the case of concurrent {{initialize}} methods being executed simultaneously 
(only one request can create the container, the rest will fail instead of 
moving on). This is happen due to the `checkException` method that is not 
catching the Hadoop `FileAlreadyExists` exception.

Stacktrace:

{{Caused by: org.apache.hadoop.fs.FileAlreadyExistsException: Operation failed: 
"The specified filesystem already exists.", 409, PUT, 
https://<REDACTED>.dfs.core.windows.net/project?resource=filesystem, 
FilesystemAlreadyExists, "The specified filesystem already exists. 
RequestId:<REDACTED> Time:2021-10-18T13:46:05.7504906Z"}}
{{ {{at 
org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem.checkException(AzureBlobFileSystem.java:1182)}}}}
{{ {{at 
org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem.createFileSystem(AzureBlobFileSystem.java:1067)}}}}
{{ {{at 
org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem.initialize(AzureBlobFileSystem.java:126)}}}}
{{ {{at 
org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2669)}}}}

*To reproduce:*
 * Set `fs.azure.createRemoteFileSystemDuringInitialization` to `true`
 * Run two concurrent `initialize` commands with the root to the non existing 
container/filesystem.

  was:
*Bug description:*

When {{fs.azure.createRemoteFileSystemDuringInitialization}} is enabled, the 
filesystem will create a container if it does not already exist inside the 
{{initialize}} method. The current flow of creating the container will fail in 
the case of concurrent {{initialize}} methods being executed simultaneously 
(only one request can create the container, the rest will fail instead of 
moving on). This is happen due to the `checkException` method that is not 
catching the Hadoop `FileAlreadyExists` exception.

Stacktrace:

{{Caused by: org.apache.hadoop.fs.FileAlreadyExistsException: Operation failed: 
"The specified filesystem already exists.", 409, PUT, 
https://<REDACTED>.dfs.core.windows.net/project?resource=filesystem, 
FilesystemAlreadyExists, "The specified filesystem already exists. 
RequestId:<REDACTED> Time:2021-10-18T13:46:05.7504906Z" }}}}
{{at 
org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem.checkException(AzureBlobFileSystem.java:1182)}}
{{at 
org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem.createFileSystem(AzureBlobFileSystem.java:1067)}}
{{at 
org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem.initialize(AzureBlobFileSystem.java:126)}}
{{at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2669)}}

*To reproduce:*
 * Set `fs.azure.createRemoteFileSystemDuringInitialization` to `true`
 * Run two concurrent `initialize` commands with the root to the non existing 
container/filesystem.


> Failing concurrent FS.initialize commands when 
> fs.azure.createRemoteFileSystemDuringInitialization is enabled on 
> hadoop-azure ABFS
> ----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-17990
>                 URL: https://issues.apache.org/jira/browse/HADOOP-17990
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: common, fs
>    Affects Versions: 3.3.1
>            Reporter: Zamil Majdy
>            Priority: Major
>              Labels: pull-request-available
>
> *Bug description:*
> When {{fs.azure.createRemoteFileSystemDuringInitialization}} is enabled, the 
> filesystem will create a container if it does not already exist inside the 
> {{initialize}} method. The current flow of creating the container will fail 
> in the case of concurrent {{initialize}} methods being executed 
> simultaneously (only one request can create the container, the rest will fail 
> instead of moving on). This is happen due to the `checkException` method that 
> is not catching the Hadoop `FileAlreadyExists` exception.
> Stacktrace:
> {{Caused by: org.apache.hadoop.fs.FileAlreadyExistsException: Operation 
> failed: "The specified filesystem already exists.", 409, PUT, 
> https://<REDACTED>.dfs.core.windows.net/project?resource=filesystem, 
> FilesystemAlreadyExists, "The specified filesystem already exists. 
> RequestId:<REDACTED> Time:2021-10-18T13:46:05.7504906Z"}}
> {{ {{at 
> org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem.checkException(AzureBlobFileSystem.java:1182)}}}}
> {{ {{at 
> org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem.createFileSystem(AzureBlobFileSystem.java:1067)}}}}
> {{ {{at 
> org.apache.hadoop.fs.azurebfs.AzureBlobFileSystem.initialize(AzureBlobFileSystem.java:126)}}}}
> {{ {{at 
> org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2669)}}}}
> *To reproduce:*
>  * Set `fs.azure.createRemoteFileSystemDuringInitialization` to `true`
>  * Run two concurrent `initialize` commands with the root to the non existing 
> container/filesystem.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to