Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-4869

rmdir allowed on nonempty striped directories

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Blocker
    • Lustre 2.6.0
    • Lustre 2.6.0
    • 3
    • 13458

    Description

      # lfs mkdir -c4 /mnt/lustre/d0
      # touch /mnt/lustre/d0/f0
      # ls -ai /mnt/lustre/d0
      180144002274689036 .  180144002274689036 .   144115188193296385 ..
      180144002274689036 .  144115188193296385 ..  144115188193296385 ..
      180144002274689036 .  144115188193296385 ..  234187197819912199 f0
      # rmdir /mnt/lustre/d0
      # ls /mnt/lustre
      

      If I hold an open file descriptor on a striped dir then I can unlink it but still create files in the non-zero stripes.

      # export MDSCOUNT=4
      # llmount.sh 
      ...
      # lfs mkdir -c4 /mnt/lustre/d0
      # cd /mnt/lustre/d0
      # ls -ai
      180144002274689025 .  180144002274689025 .  144115188193296385 ..  144115188193296385 ..
      180144002274689025 .  180144002274689025 .  144115188193296385 ..  144115188193296385 ..
      # rmdir /mnt/lustre/d0
      # touch f0 f1 f2 f3
      touch: cannot touch `f0': No such file or directory
      touch: cannot touch `f1': No such file or directory
      touch: cannot touch `f2': No such file or directory
      touch: cannot touch `f3': No such file or directory
      # cd
      #
      # lfs mkdir -c4 /mnt/lustre/d0
      # cd /mnt/lustre/d0
      # exec 3<.
      # rmdir /mnt/lustre/d0
      # ls -ai .
      180144002274689027 .  180144002274689027 .   144115188193296385 ..
      180144002274689027 .  144115188193296385 ..  144115188193296385 ..
      # touch f0 f1 f2 f3
      touch: cannot touch `f1': Stale file handle
      # ls -ai .
      180144002274689027 .  144115188193296385 ..  234187197819912194 f0
      180144002274689027 .  144115188193296385 ..  198158400800948226 f2
      180144002274689027 .  144115188193296385 ..  216172799310430210 f3
      # exec 3<&-
      # ls -ai .
      ls: cannot open directory .: No such file or directory
      # stat f0
        File: `f0'
        Size: 0         	Blocks: 0          IO Block: 4194304 regular empty file
      Device: 2c54f966h/743766374d	Inode: 234187197819912194  Links: 1
      Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
      Access: 2014-04-08 10:04:06.000000000 -0500
      Modify: 2014-04-08 10:04:06.000000000 -0500
      Change: 2014-04-08 10:04:06.000000000 -0500
      # stat f1
      stat: cannot stat `f1': Stale file handle
      # stat f2
        File: `f2'
        Size: 0         	Blocks: 0          IO Block: 4194304 regular empty file
      Device: 2c54f966h/743766374d	Inode: 198158400800948226  Links: 1
      Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
      Access: 2014-04-08 10:04:06.000000000 -0500
      Modify: 2014-04-08 10:04:06.000000000 -0500
      Change: 2014-04-08 10:04:06.000000000 -0500
      # stat f3
        File: `f3'
        Size: 0         	Blocks: 0          IO Block: 4194304 regular empty file
      Device: 2c54f966h/743766374d	Inode: 216172799310430210  Links: 1
      Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
      Access: 2014-04-08 10:04:06.000000000 -0500
      Modify: 2014-04-08 10:04:06.000000000 -0500
      Change: 2014-04-08 10:04:06.000000000 -0500
      
      # lfs mkdir -c4 /mnt/lustre/d0
      # cd /mnt/lustre/d0
      # exec 3<.
      # ls -ai .
      180144002274689032 .  180144002274689032 .  144115188193296385 ..  144115188193296385 ..
      180144002274689032 .  180144002274689032 .  144115188193296385 ..  144115188193296385 ..
      # rmdir /mnt/lustre/d0
      # ls -ai .
      180144002274689032 .  180144002274689032 .   144115188193296385 ..
      180144002274689032 .  144115188193296385 ..  144115188193296385 ..
      # touch f0 f2 f2 f3
      # ls
      f0  f2  f3
      # touch f0 f1 f2 f3
      touch: cannot touch `f1': Stale file handle
      # ls
      f0  f2  f3
      # lfs path2fid f0 f1 f2 f3
      f0: [0x340000401:0x3:0x0]
      path2fid: can't get fid for f1: No such file or directory
      f2: [0x2c0000401:0x3:0x0]
      f3: [0x300000401:0x3:0x0]
      # exec 3<&-
      # cd
      # stat /mnt/lustre/.lustre/fid/[0x340000401:0x3:0x0]
        File: `/mnt/lustre/.lustre/fid/[0x340000401:0x3:0x0]'
        Size: 0         	Blocks: 0          IO Block: 4194304 regular empty file
      Device: 2c54f966h/743766374d	Inode: 234187197819912195  Links: 1
      Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
      Access: 2014-04-08 10:09:45.000000000 -0500
      Modify: 2014-04-08 10:09:45.000000000 -0500
      Change: 2014-04-08 10:09:45.000000000 -0500
      # stat /mnt/lustre/.lustre/fid/[0x2c0000401:0x3:0x0]
        File: `/mnt/lustre/.lustre/fid/[0x2c0000401:0x3:0x0]'
        Size: 0         	Blocks: 0          IO Block: 4194304 regular empty file
      Device: 2c54f966h/743766374d	Inode: 198158400800948227  Links: 1
      Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
      Access: 2014-04-08 10:09:45.000000000 -0500
      Modify: 2014-04-08 10:09:45.000000000 -0500
      Change: 2014-04-08 10:09:45.000000000 -0500
      

      Attachments

        Issue Links

          Activity

            People

              di.wang Di Wang
              jhammond John Hammond
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: