Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-15477 Enforce ordered snapshot deletion
  3. HDFS-15689

allow/disallowSnapshot on EZ roots shouldn't fail due to trash provisioning/emptiness check

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.4.0
    • 3.4.0
    • hdfs
    • Reviewed

    Description

      Background

      1. HDFS-15607 added a feature that when dfs.namenode.snapshot.trashroot.enabled=true, allowSnapshot will automatically create a .Trash directory immediately after allowSnapshot operation so files deleted will be moved into the trash root inside the snapshottable directory.
      2. HDFS-15539 prevents admins from disallowing snapshot if the trash root inside is not empty

      Problem

      1. When dfs.namenode.snapshot.trashroot.enabled=true, currently if the directory (to be allowed snapshot on) is an EZ root, it throws FileAlreadyExistsException because the trash root already exists (encryption zone has already created an internal trash root).
      2. Similarly, at the moment if we disallow snapshot on an EZ root, it may complain that the trash root is not empty (or delete it if empty, which is not desired since EZ will still need it).

      Solution

      1. Let allowSnapshot succeed by not throwing FileAlreadyExistsException, but informs the admin that the trash already exists.
      2. Ignore checkTrashRootAndRemoveIfEmpty() check if path is EZ root.

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            smeng Siyao Meng
            smeng Siyao Meng
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - Not Specified
                Not Specified
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 2.5h
                2.5h

                Slack

                  Issue deployment