[ https://issues.apache.org/jira/browse/HADOOP-19494?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17940252#comment-17940252 ]
ASF GitHub Bot commented on HADOOP-19494: ----------------------------------------- anujmodi2021 commented on code in PR #7496: URL: https://github.com/apache/hadoop/pull/7496#discussion_r2024088523 ########## hadoop-tools/hadoop-azure/src/test/java/org/apache/hadoop/fs/azurebfs/ITestAzureBlobFileSystemMkDir.java: ########## @@ -167,4 +181,107 @@ public void testMkdirWithExistingFilename() throws Exception { intercept(FileAlreadyExistsException.class, () -> fs.mkdirs(new Path("/testFilePath"))); intercept(FileAlreadyExistsException.class, () -> fs.mkdirs(new Path("/testFilePath/newDir"))); } + Review Comment: Do we need to add tests for this change in mkdir test file? To me it looks like more of a metadata change. We should add tests in ITestFileStatus, ITestListStatus, ITestAttributes classes. All of them have dependency on this header to return right response. Listing output also depends on this header is that also case-insensitive? Can we add some tests for that. ########## hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/services/AbfsBlobClient.java: ########## @@ -1528,10 +1528,31 @@ public AbfsRestOperation deleteBlobPath(final Path blobPath, */ @Override public boolean checkIsDir(AbfsHttpOperation result) { - String resourceType = result.getResponseHeader(X_MS_META_HDI_ISFOLDER); + String dirHeaderName = getHeaderNameIgnoreCase(result, X_MS_META_HDI_ISFOLDER); Review Comment: Won't it be better to directly get the value from this function? Something like: `getCaseInsensitiveResponseHeader()` similar to `getResponseHeader` And this can be moved to `AbfsHttpOperation` class itself where normal version of this method already exists. ########## hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azurebfs/services/AbfsBlobClient.java: ########## @@ -1528,10 +1528,31 @@ public AbfsRestOperation deleteBlobPath(final Path blobPath, */ @Override public boolean checkIsDir(AbfsHttpOperation result) { - String resourceType = result.getResponseHeader(X_MS_META_HDI_ISFOLDER); + String dirHeaderName = getHeaderNameIgnoreCase(result, X_MS_META_HDI_ISFOLDER); Review Comment: It can be later used by other classes and other headers as well not only BlobClient. > ABFS: Fix Case Sensitivity Issue for hdi_isfolder metadata > ---------------------------------------------------------- > > Key: HADOOP-19494 > URL: https://issues.apache.org/jira/browse/HADOOP-19494 > Project: Hadoop Common > Issue Type: Sub-task > Components: fs/azure > Affects Versions: 3.5.0 > Reporter: Manish Bhatt > Assignee: Manish Bhatt > Priority: Major > Labels: pull-request-available > > In the blob endpoint, we determine whether the path is a file, or a directory > based on the metadata attribute hdi_isfolder. When creating a directory, we > set hdi_isfolder to true. Currently, our method for checking if the path is a > directory involves a case-sensitive equality check. Consequently, if someone > configures a directory with Hdi_isfolder, the driver will not recognize that > path as a directory. We need to address this issue because, in the backend, > hdi_isfolder and Hdi_isfolder are considered the same metadata attribute. > Therefore, the solution involves modifying our equality check to be > case-insensitive, ensuring that the driver correctly identifies directories > regardless of case variations in the metadata attribute. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org