Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-14048

REDO operation of WASB#AtomicRename should create placeholder blob for destination folder

    Details

    • Type: New Feature
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.8.0, 3.0.0-alpha3
    • Component/s: fs/azure
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      While doing manual testing, I realized that the crash recovery of AtomicRename operation of a folder in AzureNativeFileSystem doesn't create a placeholder property blob for destination folder. Due to this bug, the destination folder can not be renamed again.

      Below is how I tested this:
      1. Create a test directory as "/test/A"
      2. Create 15 block blobs in "/test/A" folder.
      3. Run "hadoop fs -mv /test/A /test/B" command and crash it as soon as /test/A-RenamePending.json file is created.
      4. Now run "hadoop fs -lsr /test" command, which should complete the pending rename operation (redo) as a part of crash recovery.
      5. The REDO method copies the pending files from source folder to destination folder (by consulting A-RenamePending.json file), but it doesn't create a 0-byte property blob for /test/B folder, which is a bug as that folder will not be usable for many operations.

        Activity

        Hide
        nitin.verma@gmail.com NITIN VERMA added a comment -

        I am testing the patch and will submit a fix soon.

        Show
        nitin.verma@gmail.com NITIN VERMA added a comment - I am testing the patch and will submit a fix soon.
        Hide
        nitin.verma@gmail.com NITIN VERMA added a comment -

        Fix for REDO operation of atomic rename of a folder in Windows Azure Storage FS.

        Show
        nitin.verma@gmail.com NITIN VERMA added a comment - Fix for REDO operation of atomic rename of a folder in Windows Azure Storage FS.
        Hide
        hadoopqa Hadoop QA added a comment -
        -1 overall



        Vote Subsystem Runtime Comment
        0 reexec 0m 20s Docker mode activated.
        +1 @author 0m 0s The patch does not contain any @author tags.
        -1 test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch.
        +1 mvninstall 13m 41s trunk passed
        +1 compile 0m 18s trunk passed
        +1 checkstyle 0m 13s trunk passed
        +1 mvnsite 0m 19s trunk passed
        +1 mvneclipse 0m 18s trunk passed
        +1 findbugs 0m 27s trunk passed
        +1 javadoc 0m 13s trunk passed
        +1 mvninstall 0m 16s the patch passed
        +1 compile 0m 14s the patch passed
        +1 javac 0m 14s the patch passed
        +1 checkstyle 0m 10s the patch passed
        +1 mvnsite 0m 15s the patch passed
        +1 mvneclipse 0m 10s the patch passed
        +1 whitespace 0m 0s The patch has no whitespace issues.
        +1 findbugs 0m 30s the patch passed
        +1 javadoc 0m 10s the patch passed
        +1 unit 1m 21s hadoop-azure in the patch passed.
        +1 asflicense 0m 17s The patch does not generate ASF License warnings.
        20m 31s



        Subsystem Report/Notes
        Docker Image:yetus/hadoop:a9ad5d6
        JIRA Issue HADOOP-14048
        JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12850600/HADOOP-14048.patch
        Optional Tests asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle
        uname Linux 68c88aef74c8 3.13.0-103-generic #150-Ubuntu SMP Thu Nov 24 10:34:17 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
        Build tool maven
        Personality /testptch/hadoop/patchprocess/precommit/personality/provided.sh
        git revision trunk / 2a942ee
        Default Java 1.8.0_121
        findbugs v3.0.0
        Test Results https://builds.apache.org/job/PreCommit-HADOOP-Build/11559/testReport/
        modules C: hadoop-tools/hadoop-azure U: hadoop-tools/hadoop-azure
        Console output https://builds.apache.org/job/PreCommit-HADOOP-Build/11559/console
        Powered by Apache Yetus 0.5.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 20s Docker mode activated. +1 @author 0m 0s The patch does not contain any @author tags. -1 test4tests 0m 0s The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. +1 mvninstall 13m 41s trunk passed +1 compile 0m 18s trunk passed +1 checkstyle 0m 13s trunk passed +1 mvnsite 0m 19s trunk passed +1 mvneclipse 0m 18s trunk passed +1 findbugs 0m 27s trunk passed +1 javadoc 0m 13s trunk passed +1 mvninstall 0m 16s the patch passed +1 compile 0m 14s the patch passed +1 javac 0m 14s the patch passed +1 checkstyle 0m 10s the patch passed +1 mvnsite 0m 15s the patch passed +1 mvneclipse 0m 10s the patch passed +1 whitespace 0m 0s The patch has no whitespace issues. +1 findbugs 0m 30s the patch passed +1 javadoc 0m 10s the patch passed +1 unit 1m 21s hadoop-azure in the patch passed. +1 asflicense 0m 17s The patch does not generate ASF License warnings. 20m 31s Subsystem Report/Notes Docker Image:yetus/hadoop:a9ad5d6 JIRA Issue HADOOP-14048 JIRA Patch URL https://issues.apache.org/jira/secure/attachment/12850600/HADOOP-14048.patch Optional Tests asflicense compile javac javadoc mvninstall mvnsite unit findbugs checkstyle uname Linux 68c88aef74c8 3.13.0-103-generic #150-Ubuntu SMP Thu Nov 24 10:34:17 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux Build tool maven Personality /testptch/hadoop/patchprocess/precommit/personality/provided.sh git revision trunk / 2a942ee Default Java 1.8.0_121 findbugs v3.0.0 Test Results https://builds.apache.org/job/PreCommit-HADOOP-Build/11559/testReport/ modules C: hadoop-tools/hadoop-azure U: hadoop-tools/hadoop-azure Console output https://builds.apache.org/job/PreCommit-HADOOP-Build/11559/console Powered by Apache Yetus 0.5.0-SNAPSHOT http://yetus.apache.org This message was automatically generated.
        Hide
        nitin.verma@gmail.com NITIN VERMA added a comment -

        Hi Mingliang Liu

        Could you please help in reviewing this change and committing it to Hadoop Azure ?

        Thanks!
        Nitin.

        Show
        nitin.verma@gmail.com NITIN VERMA added a comment - Hi Mingliang Liu Could you please help in reviewing this change and committing it to Hadoop Azure ? Thanks! Nitin.
        Hide
        nitin.verma@gmail.com NITIN VERMA added a comment -

        Hi Devaraj Jonnadula Enis Soztutar

        Could someone from HWX help in getting this fix for Azure and also port it to HDP image?
        This changes fixes one of the critical bug in AtomicRename of a folder.
        Thanks!

        Show
        nitin.verma@gmail.com NITIN VERMA added a comment - Hi Devaraj Jonnadula Enis Soztutar Could someone from HWX help in getting this fix for Azure and also port it to HDP image? This changes fixes one of the critical bug in AtomicRename of a folder. Thanks!
        Hide
        gouravk Gaurav Kanade added a comment -

        +1 for the patch

        Show
        gouravk Gaurav Kanade added a comment - +1 for the patch
        Hide
        nitin.verma@gmail.com NITIN VERMA added a comment -

        Mingliang Liu Enis Soztutar

        Could one of you please commit this change? This is a critical bug fix.
        Thanks!

        Show
        nitin.verma@gmail.com NITIN VERMA added a comment - Mingliang Liu Enis Soztutar Could one of you please commit this change? This is a critical bug fix. Thanks!
        Hide
        liuml07 Mingliang Liu added a comment -

        +1

        I have committed to trunk, branch-2 and branch-2.8 branches. When committing, I removed the changes of importing code, which are unnecessary and might bring back-port conflicts. Thanks for your contribution, NITIN VERMA; thanks for your review Gaurav Kanade.

        Show
        liuml07 Mingliang Liu added a comment - +1 I have committed to trunk , branch-2 and branch-2.8 branches. When committing, I removed the changes of importing code, which are unnecessary and might bring back-port conflicts. Thanks for your contribution, NITIN VERMA ; thanks for your review Gaurav Kanade .
        Hide
        nitin.verma@gmail.com NITIN VERMA added a comment -

        Thanks Mingliang Liu for quickly committing the patch!

        Show
        nitin.verma@gmail.com NITIN VERMA added a comment - Thanks Mingliang Liu for quickly committing the patch!
        Hide
        hudson Hudson added a comment -

        SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #11359 (See https://builds.apache.org/job/Hadoop-trunk-Commit/11359/)
        HADOOP-14048. REDO operation of WASB#AtomicRename should create (liuml07: rev c571cda5c7d929477961dfff4176d7de4944d874)

        • (edit) hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/NativeAzureFileSystem.java
        Show
        hudson Hudson added a comment - SUCCESS: Integrated in Jenkins build Hadoop-trunk-Commit #11359 (See https://builds.apache.org/job/Hadoop-trunk-Commit/11359/ ) HADOOP-14048 . REDO operation of WASB#AtomicRename should create (liuml07: rev c571cda5c7d929477961dfff4176d7de4944d874) (edit) hadoop-tools/hadoop-azure/src/main/java/org/apache/hadoop/fs/azure/NativeAzureFileSystem.java

          People

          • Assignee:
            nitin.verma@gmail.com NITIN VERMA
            Reporter:
            nitin.verma@gmail.com NITIN VERMA
          • Votes:
            0 Vote for this issue
            Watchers:
            14 Start watching this issue

            Dates

            • Due:
              Created:
              Updated:
              Resolved:

              Development