Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.7.3
    • Fix Version/s: 2.8.0, 3.0.0-alpha2
    • Component/s: fs/s3
    • Labels:
      None
    • Target Version/s:
    • Release Note:
      S3A now provides a working implementation of the FileSystem#createNonRecursive method.

      Description

      HBase and other clients rely on the createNonRecursive API, which was recently un-deprecated. S3A currently does not support it.

      1. HADOOP-12667-branch-2-004.patch
        5 kB
        Steve Loughran
      2. HADOOP-12667-branch-2-003.patch
        5 kB
        Steve Loughran
      3. HADOOP-12667-branch-2-002.patch
        5 kB
        Steve Loughran
      4. HADOOP-12667.001.patch
        5 kB
        Sean Mackrory

        Issue Links

          Activity

          Hide
          mackrorysd Sean Mackrory added a comment -

          Attaching a patch with tests I've run against multiple endpoints. s3a's create() is already not recursive because it just converts the path into a key, and I suspect this API is only used directly when you WANT it to fail if the parent directory doesn't exist (as opposed to using it because you don't think recursion is necessary) so I explicitly fail if the parent of the supplied path does not exist.

          Show
          mackrorysd Sean Mackrory added a comment - Attaching a patch with tests I've run against multiple endpoints. s3a's create() is already not recursive because it just converts the path into a key, and I suspect this API is only used directly when you WANT it to fail if the parent directory doesn't exist (as opposed to using it because you don't think recursion is necessary) so I explicitly fail if the parent of the supplied path does not exist.
          Hide
          cnauroth Chris Nauroth added a comment -

          If the goal is to support HBase's WAL management, then another aspect is that HBase expects atomicity from this call. Atomicity would guarantee that for 2 concurrent threads/processes calling createNonRecursive, one of the callers succeeds and the other fails. HBASE-11045 has some great discussion of the expected semantics, especially this comment:

          https://issues.apache.org/jira/browse/HBASE-11045?focusedCommentId=13977198&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13977198

          This means that an implementation that just checks for existence before allowing the create to proceed is insufficient. There would be a race condition allowing 2 concurrent callers to think the path exists and proceed with their creates.

          In hadoop-azure, this problem is solved by making concurrent callers acquire a mutually exclusive lease on the blob before doing the create. Blob leases are a feature of Azure Storage. I'm not aware of any lease functionality like this available in S3.

          Show
          cnauroth Chris Nauroth added a comment - If the goal is to support HBase's WAL management, then another aspect is that HBase expects atomicity from this call. Atomicity would guarantee that for 2 concurrent threads/processes calling createNonRecursive , one of the callers succeeds and the other fails. HBASE-11045 has some great discussion of the expected semantics, especially this comment: https://issues.apache.org/jira/browse/HBASE-11045?focusedCommentId=13977198&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13977198 This means that an implementation that just checks for existence before allowing the create to proceed is insufficient. There would be a race condition allowing 2 concurrent callers to think the path exists and proceed with their creates. In hadoop-azure, this problem is solved by making concurrent callers acquire a mutually exclusive lease on the blob before doing the create. Blob leases are a feature of Azure Storage. I'm not aware of any lease functionality like this available in S3.
          Hide
          stevel@apache.org Steve Loughran added a comment -

          hadoop already has some atomicity problems with create-no-overwrite, given the write doesn't even happen until the close() call. But...createNonRecursive is potentially useful, as it will fail-fast if the parent doesn't exist.

          Looking at the patch, I can see we need the filesystem spec updated with coverage of the reinstated method, ideally with a recommended IOE subclass FileNotFoundException if the parent isn't there...then we can add this test here to the contract tests and roll it out across all the filesystems.

          Sean: fancy taking that on?

          Show
          stevel@apache.org Steve Loughran added a comment - hadoop already has some atomicity problems with create-no-overwrite, given the write doesn't even happen until the close() call. But...createNonRecursive is potentially useful, as it will fail-fast if the parent doesn't exist. Looking at the patch, I can see we need the filesystem spec updated with coverage of the reinstated method, ideally with a recommended IOE subclass FileNotFoundException if the parent isn't there...then we can add this test here to the contract tests and roll it out across all the filesystems. Sean: fancy taking that on?
          Hide
          cnauroth Chris Nauroth added a comment -

          Steve Loughran, just to make sure I understand, are you suggesting that we go ahead with the non-atomic createNonRecursive implementation shown in the patch here, and it won't be useful to HBase, but perhaps other applications would find it useful?

          Sean Mackrory, are you specifically trying to enable HBase running on S3? (I'm asking because you mentioned HBase in the issue description.)

          Show
          cnauroth Chris Nauroth added a comment - Steve Loughran , just to make sure I understand, are you suggesting that we go ahead with the non-atomic createNonRecursive implementation shown in the patch here, and it won't be useful to HBase, but perhaps other applications would find it useful? Sean Mackrory , are you specifically trying to enable HBase running on S3? (I'm asking because you mentioned HBase in the issue description.)
          Hide
          mackrorysd Sean Mackrory added a comment -

          HBase's use of this API is indeed what brought the lack of support to my attention. I wouldn't say I'm specifically trying to support HBase-on-S3, though - just trying to improve support in general where we can. If there's no reasonable solution, there's no reasonable solution. I certainly don't want to be increasing the potential for inconsistency if that's what it would take.

          On top of what Steve said, though, I think it's well-understood that when using Hadoop-on-S3 in general there's been the potential for consistency issues. That's improved dramatically on S3's end over time, of course. In this case all nodes will currently always fail because of an unsupported API. Due to the potential for inconsistency, if this API was supported, it would be possible for some nodes to fail because of a FileAlreadyExistsException, and the operation could be retried. That's certainly an improvement, and well within the expectations set by the S3 filesystems, IMO. I would still vote to move in this direction.

          Sean: fancy taking that on?

          Yeah I think that'd be good to do. I'll wait until we reach some consensus on the consistency issue, though.

          Show
          mackrorysd Sean Mackrory added a comment - HBase's use of this API is indeed what brought the lack of support to my attention. I wouldn't say I'm specifically trying to support HBase-on-S3, though - just trying to improve support in general where we can. If there's no reasonable solution, there's no reasonable solution. I certainly don't want to be increasing the potential for inconsistency if that's what it would take. On top of what Steve said, though, I think it's well-understood that when using Hadoop-on-S3 in general there's been the potential for consistency issues. That's improved dramatically on S3's end over time, of course. In this case all nodes will currently always fail because of an unsupported API. Due to the potential for inconsistency, if this API was supported, it would be possible for some nodes to fail because of a FileAlreadyExistsException, and the operation could be retried. That's certainly an improvement, and well within the expectations set by the S3 filesystems, IMO. I would still vote to move in this direction. Sean: fancy taking that on? Yeah I think that'd be good to do. I'll wait until we reach some consensus on the consistency issue, though.
          Hide
          stevel@apache.org Steve Loughran added a comment -

          yes, though we'll need to update that bit on object stores in the FS spec to add it to the list of things not to trust

          Show
          stevel@apache.org Steve Loughran added a comment - yes, though we'll need to update that bit on object stores in the FS spec to add it to the list of things not to trust
          Hide
          stevel@apache.org Steve Loughran added a comment -

          it's not s3 consistency semantics, its S3 API vs HDFS's subset of posix, whether things like rename() and rm() are atomic and O(1).

          see the object store bit under: http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/filesystem/introduction.html

          Show
          stevel@apache.org Steve Loughran added a comment - it's not s3 consistency semantics, its S3 API vs HDFS's subset of posix, whether things like rename() and rm() are atomic and O(1). see the object store bit under: http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/filesystem/introduction.html
          Hide
          cnauroth Chris Nauroth added a comment -

          I'm OK with proceeding. I just wanted to make sure you were aware that a non-atomic implementation will not be sufficient to protect against data loss in HBase.

          Show
          cnauroth Chris Nauroth added a comment - I'm OK with proceeding. I just wanted to make sure you were aware that a non-atomic implementation will not be sufficient to protect against data loss in HBase.
          Hide
          stevel@apache.org Steve Loughran added a comment -

          I should write a proper article on filesystems vs object stores. The main justification for this API would be consistent API, semantics of s3 are not what hbase could sustain at all. Oh, and then there's append...

          Show
          stevel@apache.org Steve Loughran added a comment - I should write a proper article on filesystems vs object stores. The main justification for this API would be consistent API, semantics of s3 are not what hbase could sustain at all. Oh, and then there's append...
          Hide
          stevel@apache.org Steve Loughran added a comment -

          tagging as a HADOOP-11694 feature

          Show
          stevel@apache.org Steve Loughran added a comment - tagging as a HADOOP-11694 feature
          Hide
          stevel@apache.org Steve Loughran added a comment -

          Once HADOOP-13131 is in we'll have a better test base for this; marking as a dependency purely for the test framework alone

          Show
          stevel@apache.org Steve Loughran added a comment - Once HADOOP-13131 is in we'll have a better test base for this; marking as a dependency purely for the test framework alone
          Hide
          stevel@apache.org Steve Loughran added a comment -

          Looking at patch

          1. All the check that is needed is a getFileStatus() + check there is a parent dir. But as create() does that anyway, it could be optimised by having the internal create do/not do this
          2. looking at S3A, I'm not sure that parent dirs are created right now. I guess it relies on the fact that by creating a long blob path, the parent dir comes in implicitly. But what if there is a parent and it is a file? Maybe we need a test case in AbstractContractCreateTest to make sure that it's an error to attempt to do that.
          3. this implementation of createNonRecursive() will need that.
          4. I don't see any tests for createNonRecursive() in the filesystem contract tests, or indeed, anything in hadoop-common-project/hadoop-common/src/site/markdown/filesystem/filesystem.md to define the semantics of the operation. I'm afraid that'll be needed. The test you've written will be a foundation for that, though it'll need more tests (parent is file, parent is root dir, overwrite = true, overwrite = false)
          Show
          stevel@apache.org Steve Loughran added a comment - Looking at patch All the check that is needed is a getFileStatus() + check there is a parent dir. But as create() does that anyway, it could be optimised by having the internal create do/not do this looking at S3A, I'm not sure that parent dirs are created right now. I guess it relies on the fact that by creating a long blob path, the parent dir comes in implicitly. But what if there is a parent and it is a file? Maybe we need a test case in AbstractContractCreateTest to make sure that it's an error to attempt to do that. this implementation of createNonRecursive() will need that. I don't see any tests for createNonRecursive() in the filesystem contract tests, or indeed, anything in hadoop-common-project/hadoop-common/src/site/markdown/filesystem/filesystem.md to define the semantics of the operation. I'm afraid that'll be needed. The test you've written will be a foundation for that, though it'll need more tests (parent is file, parent is root dir, overwrite = true, overwrite = false)
          Hide
          stevel@apache.org Steve Loughran added a comment -

          Patch 002

          1. made changes suggested earlier
          2. test file is TestS3AMiscOperations; subclass of AbstractS3ATestBase
          3. split tests cases up
          4. added test: parent dir is file
          5. tests use junit expected=class

          This method is slower than create() as there's an extra check. But if HADOOP-13221 fixes create(), then this could bypass the checks and be faster

          Show
          stevel@apache.org Steve Loughran added a comment - Patch 002 made changes suggested earlier test file is TestS3AMiscOperations ; subclass of AbstractS3ATestBase split tests cases up added test: parent dir is file tests use junit expected=class This method is slower than create() as there's an extra check. But if HADOOP-13221 fixes create(), then this could bypass the checks and be faster
          Hide
          hadoopqa Hadoop QA added a comment -
          +1 overall



          Vote Subsystem Runtime Comment
          0 reexec 0m 19s Docker mode activated.
          +1 @author 0m 0s The patch does not contain any @author tags.
          +1 test4tests 0m 0s The patch appears to include 1 new or modified test files.
          +1 mvninstall 6m 58s branch-2 passed
          +1 compile 0m 15s branch-2 passed with JDK v1.8.0_91
          +1 compile 0m 15s branch-2 passed with JDK v1.7.0_101
          +1 checkstyle 0m 14s branch-2 passed
          +1 mvnsite 0m 21s branch-2 passed
          +1 mvneclipse 0m 14s branch-2 passed
          +1 findbugs 0m 32s branch-2 passed
          +1 javadoc 0m 13s branch-2 passed with JDK v1.8.0_91
          +1 javadoc 0m 15s branch-2 passed with JDK v1.7.0_101
          +1 mvninstall 0m 14s the patch passed
          +1 compile 0m 11s the patch passed with JDK v1.8.0_91
          +1 javac 0m 11s the patch passed
          +1 compile 0m 13s the patch passed with JDK v1.7.0_101
          +1 javac 0m 13s the patch passed
          +1 checkstyle 0m 12s the patch passed
          +1 mvnsite 0m 18s the patch passed
          +1 mvneclipse 0m 12s the patch passed
          +1 whitespace 0m 0s The patch has no whitespace issues.
          +1 findbugs 0m 43s the patch passed
          +1 javadoc 0m 10s the patch passed with JDK v1.8.0_91
          +1 javadoc 0m 13s the patch passed with JDK v1.7.0_101
          +1 unit 0m 13s hadoop-aws in the patch passed with JDK v1.7.0_101.
          +1 asflicense 0m 16s The patch does not generate ASF License warnings.
          14m 25s



          Subsystem Report/Notes
          Docker Image:yetus/hadoop:b59b8b7
          JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12819973/HADOOP-12667-branch-2-002.patch
          JIRA Issue HADOOP-12667
          Optional Tests asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle
          uname Linux 12afc40c18a3 3.13.0-36-lowlatency #63-Ubuntu SMP PREEMPT Wed Sep 3 21:56:12 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
          Build tool maven
          Personality /testptch/hadoop/patchprocess/precommit/personality/provided.sh
          git revision branch-2 / b757eff
          Default Java 1.7.0_101
          Multi-JDK versions /usr/lib/jvm/java-8-oracle:1.8.0_91 /usr/lib/jvm/java-7-openjdk-amd64:1.7.0_101
          findbugs v3.0.0
          JDK v1.7.0_101 Test Results https://builds.apache.org/job/PreCommit-HADOOP-Build/10078/testReport/
          modules C: hadoop-tools/hadoop-aws U: hadoop-tools/hadoop-aws
          Console output https://builds.apache.org/job/PreCommit-HADOOP-Build/10078/console
          Powered by Apache Yetus 0.4.0-SNAPSHOT http://yetus.apache.org

          This message was automatically generated.

          Show
          hadoopqa Hadoop QA added a comment - +1 overall Vote Subsystem Runtime Comment 0 reexec 0m 19s Docker mode activated. +1 @author 0m 0s The patch does not contain any @author tags. +1 test4tests 0m 0s The patch appears to include 1 new or modified test files. +1 mvninstall 6m 58s branch-2 passed +1 compile 0m 15s branch-2 passed with JDK v1.8.0_91 +1 compile 0m 15s branch-2 passed with JDK v1.7.0_101 +1 checkstyle 0m 14s branch-2 passed +1 mvnsite 0m 21s branch-2 passed +1 mvneclipse 0m 14s branch-2 passed +1 findbugs 0m 32s branch-2 passed +1 javadoc 0m 13s branch-2 passed with JDK v1.8.0_91 +1 javadoc 0m 15s branch-2 passed with JDK v1.7.0_101 +1 mvninstall 0m 14s the patch passed +1 compile 0m 11s the patch passed with JDK v1.8.0_91 +1 javac 0m 11s the patch passed +1 compile 0m 13s the patch passed with JDK v1.7.0_101 +1 javac 0m 13s the patch passed +1 checkstyle 0m 12s the patch passed +1 mvnsite 0m 18s the patch passed +1 mvneclipse 0m 12s the patch passed +1 whitespace 0m 0s The patch has no whitespace issues. +1 findbugs 0m 43s the patch passed +1 javadoc 0m 10s the patch passed with JDK v1.8.0_91 +1 javadoc 0m 13s the patch passed with JDK v1.7.0_101 +1 unit 0m 13s hadoop-aws in the patch passed with JDK v1.7.0_101. +1 asflicense 0m 16s The patch does not generate ASF License warnings. 14m 25s Subsystem Report/Notes Docker Image:yetus/hadoop:b59b8b7 JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12819973/HADOOP-12667-branch-2-002.patch JIRA Issue HADOOP-12667 Optional Tests asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle uname Linux 12afc40c18a3 3.13.0-36-lowlatency #63-Ubuntu SMP PREEMPT Wed Sep 3 21:56:12 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux Build tool maven Personality /testptch/hadoop/patchprocess/precommit/personality/provided.sh git revision branch-2 / b757eff Default Java 1.7.0_101 Multi-JDK versions /usr/lib/jvm/java-8-oracle:1.8.0_91 /usr/lib/jvm/java-7-openjdk-amd64:1.7.0_101 findbugs v3.0.0 JDK v1.7.0_101 Test Results https://builds.apache.org/job/PreCommit-HADOOP-Build/10078/testReport/ modules C: hadoop-tools/hadoop-aws U: hadoop-tools/hadoop-aws Console output https://builds.apache.org/job/PreCommit-HADOOP-Build/10078/console Powered by Apache Yetus 0.4.0-SNAPSHOT http://yetus.apache.org This message was automatically generated.
          Hide
          stevel@apache.org Steve Loughran added a comment -

          Patch 003; 002 rebased against branch-2

          tested: s3 ireland

          Show
          stevel@apache.org Steve Loughran added a comment - Patch 003; 002 rebased against branch-2 tested: s3 ireland
          Hide
          stevel@apache.org Steve Loughran added a comment -

          patch 004, correct branch, test named ITest, etc.

          testing: s3 ireland

          Show
          stevel@apache.org Steve Loughran added a comment - patch 004, correct branch, test named ITest, etc. testing: s3 ireland
          Hide
          hadoopqa Hadoop QA added a comment -
          +1 overall



          Vote Subsystem Runtime Comment
          0 reexec 14m 37s Docker mode activated.
          +1 @author 0m 0s The patch does not contain any @author tags.
          +1 test4tests 0m 0s The patch appears to include 1 new or modified test files.
          +1 mvninstall 8m 8s branch-2 passed
          +1 compile 0m 20s branch-2 passed with JDK v1.8.0_101
          +1 compile 0m 21s branch-2 passed with JDK v1.7.0_111
          +1 checkstyle 0m 17s branch-2 passed
          +1 mvnsite 0m 27s branch-2 passed
          +1 mvneclipse 0m 19s branch-2 passed
          +1 findbugs 0m 44s branch-2 passed
          +1 javadoc 0m 16s branch-2 passed with JDK v1.8.0_101
          +1 javadoc 0m 18s branch-2 passed with JDK v1.7.0_111
          +1 mvninstall 0m 19s the patch passed
          +1 compile 0m 16s the patch passed with JDK v1.8.0_101
          +1 javac 0m 16s the patch passed
          +1 compile 0m 19s the patch passed with JDK v1.7.0_111
          +1 javac 0m 19s the patch passed
          +1 checkstyle 0m 13s the patch passed
          +1 mvnsite 0m 26s the patch passed
          +1 mvneclipse 0m 17s the patch passed
          +1 whitespace 0m 0s The patch has no whitespace issues.
          +1 findbugs 0m 53s the patch passed
          +1 javadoc 0m 14s the patch passed with JDK v1.8.0_101
          +1 javadoc 0m 15s the patch passed with JDK v1.7.0_111
          +1 unit 0m 25s hadoop-aws in the patch passed with JDK v1.7.0_111.
          +1 asflicense 0m 20s The patch does not generate ASF License warnings.
          32m 6s



          Subsystem Report/Notes
          Docker Image:yetus/hadoop:b59b8b7
          JIRA Issue HADOOP-12667
          JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12828013/HADOOP-12667-branch-2-004.patch
          Optional Tests asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle
          uname Linux 30f2a1821c26 3.13.0-36-lowlatency #63-Ubuntu SMP PREEMPT Wed Sep 3 21:56:12 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
          Build tool maven
          Personality /testptch/hadoop/patchprocess/precommit/personality/provided.sh
          git revision branch-2 / 6948691
          Default Java 1.7.0_111
          Multi-JDK versions /usr/lib/jvm/java-8-oracle:1.8.0_101 /usr/lib/jvm/java-7-openjdk-amd64:1.7.0_111
          findbugs v3.0.0
          JDK v1.7.0_111 Test Results https://builds.apache.org/job/PreCommit-HADOOP-Build/10483/testReport/
          modules C: hadoop-tools/hadoop-aws U: hadoop-tools/hadoop-aws
          Console output https://builds.apache.org/job/PreCommit-HADOOP-Build/10483/console
          Powered by Apache Yetus 0.4.0-SNAPSHOT http://yetus.apache.org

          This message was automatically generated.

          Show
          hadoopqa Hadoop QA added a comment - +1 overall Vote Subsystem Runtime Comment 0 reexec 14m 37s Docker mode activated. +1 @author 0m 0s The patch does not contain any @author tags. +1 test4tests 0m 0s The patch appears to include 1 new or modified test files. +1 mvninstall 8m 8s branch-2 passed +1 compile 0m 20s branch-2 passed with JDK v1.8.0_101 +1 compile 0m 21s branch-2 passed with JDK v1.7.0_111 +1 checkstyle 0m 17s branch-2 passed +1 mvnsite 0m 27s branch-2 passed +1 mvneclipse 0m 19s branch-2 passed +1 findbugs 0m 44s branch-2 passed +1 javadoc 0m 16s branch-2 passed with JDK v1.8.0_101 +1 javadoc 0m 18s branch-2 passed with JDK v1.7.0_111 +1 mvninstall 0m 19s the patch passed +1 compile 0m 16s the patch passed with JDK v1.8.0_101 +1 javac 0m 16s the patch passed +1 compile 0m 19s the patch passed with JDK v1.7.0_111 +1 javac 0m 19s the patch passed +1 checkstyle 0m 13s the patch passed +1 mvnsite 0m 26s the patch passed +1 mvneclipse 0m 17s the patch passed +1 whitespace 0m 0s The patch has no whitespace issues. +1 findbugs 0m 53s the patch passed +1 javadoc 0m 14s the patch passed with JDK v1.8.0_101 +1 javadoc 0m 15s the patch passed with JDK v1.7.0_111 +1 unit 0m 25s hadoop-aws in the patch passed with JDK v1.7.0_111. +1 asflicense 0m 20s The patch does not generate ASF License warnings. 32m 6s Subsystem Report/Notes Docker Image:yetus/hadoop:b59b8b7 JIRA Issue HADOOP-12667 JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12828013/HADOOP-12667-branch-2-004.patch Optional Tests asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle uname Linux 30f2a1821c26 3.13.0-36-lowlatency #63-Ubuntu SMP PREEMPT Wed Sep 3 21:56:12 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux Build tool maven Personality /testptch/hadoop/patchprocess/precommit/personality/provided.sh git revision branch-2 / 6948691 Default Java 1.7.0_111 Multi-JDK versions /usr/lib/jvm/java-8-oracle:1.8.0_101 /usr/lib/jvm/java-7-openjdk-amd64:1.7.0_111 findbugs v3.0.0 JDK v1.7.0_111 Test Results https://builds.apache.org/job/PreCommit-HADOOP-Build/10483/testReport/ modules C: hadoop-tools/hadoop-aws U: hadoop-tools/hadoop-aws Console output https://builds.apache.org/job/PreCommit-HADOOP-Build/10483/console Powered by Apache Yetus 0.4.0-SNAPSHOT http://yetus.apache.org This message was automatically generated.
          Hide
          stevel@apache.org Steve Loughran added a comment -

          +1

          committed -thanks!

          Show
          stevel@apache.org Steve Loughran added a comment - +1 committed -thanks!
          Hide
          hudson Hudson added a comment -

          SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #10545 (See https://builds.apache.org/job/Hadoop-trunk-Commit/10545/)
          HADOOP-12667 s3a to support createNonRecursive API. Contributed by Sean (stevel: rev d6be1e75d8e5b846f463e79bfbce889d31b943a7)

          • (add) hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3AMiscOperations.java
          • (edit) hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java
          Show
          hudson Hudson added a comment - SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #10545 (See https://builds.apache.org/job/Hadoop-trunk-Commit/10545/ ) HADOOP-12667 s3a to support createNonRecursive API. Contributed by Sean (stevel: rev d6be1e75d8e5b846f463e79bfbce889d31b943a7) (add) hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/ITestS3AMiscOperations.java (edit) hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3AFileSystem.java

            People

            • Assignee:
              mackrorysd Sean Mackrory
              Reporter:
              mackrorysd Sean Mackrory
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development