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

open handle leak after setuid()

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor Minor
    • Lustre 2.9.0
    • Lustre 2.7.0
    • 3
    • 15516

      MDS_CLOSE RPCs are sent with the current_fs{uid,gid}(). If this id cannot be resolved on the MDT then mdt_close() fails in unpack and the open handle is never released.

      # MOUNT_2=y llmount.sh
      ...
      # id 42
      id: 42: No such user
      # cp /bin/sleep /mnt/lustre/sleep
      # chown 42:42 /mnt/lustre/sleep
      # chmod ug+s /mnt/lustre/sleep
      # /mnt/lustre/sleep 0
      # echo > /mnt/lustre2/sleep
      -bash: /mnt/lustre2/sleep: Text file busy
      
      [  475.032992] LustreError: 6559:0:(file.c:186:ll_close_inode_openhandle()) lustre-clilmv-ffff8802173141c8: inode [0x200000400:0x3:0x0] mdc close failed: rc = -13
      

      Seems a bit broken this way. With the exception of HSM release why check process permissions at close? The open FD (open handle) gives us permission.

            hongchao.zhang Hongchao Zhang
            jhammond John Hammond
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

              Created:
              Updated:
              Resolved: