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

quota exceeded returned when creating files with root user in directory where setgid is set

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.12.0
    • None
    • None
    • 3
    • 9223372036854775807

    Description

      Set setgid flag on the directory and set inode hard quota for the gruop.  
      # cd /lustre
      # mkdir aaa
      # chown test1:tes1 aaa
      # chmod g+s aaa
      # lfs setquota -g test1 -I 4096 /lustre
      
      With test1 group, create many files until quota exceeded occur.  
      # su - test1
      $ for i in `seq -w 0001 4096`; do touch ${i} ; done
      $ exit
      
      Then, with root user, create a directory. It returns quota exceeded error.  
      # mkdir bbb
      mkdir: cannot create directory ‘bbb’: Disk quota exceeded
      
      

      reason is Lustre try to check quota for file owner uid, gid and it will skip quota type check if this
      quota type id is 0.

      For setgid, even root user try touch a file, the file's group id will still inherit from its parents.
      So quota check will ignore user quota, but still enforce group quota for the file.

      The idea should be Like GPFS or ext4, that we pass CAP_SYS_RESOURCE down and use this
      to check whether we should skip quota.

      Attachments

        Activity

          People

            wangshilong Wang Shilong (Inactive)
            wangshilong Wang Shilong (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: