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

dir migrate doesn't update a regular file LOV lmm_oi with new file id

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • Medium
    • None
    • None
    • None
    • 3
    • 9223372036854775807

    Description

      A dir migrate doesn't change regular file LOV attribute during migrate, so LFSCK starts to complain about wrong lmm_oi:

      [175833.553728] Lustre: lustre-OST0001-osd: layout LFSCK slave notifies master
      [175833.555342] Lustre: lustre-MDT0001-osd: layout LFSCK master found bad lmm_oi for [0x240000402:0x4:0x0]: rc = 240
      [175833.555445] Lustre: lustre-MDT0001-osd: layout LFSCK master handles notify 3 from OST 1, status 1, flags 2, flags2 1
      

      while the lmm_oi is mostly obsoleted nowadays, it still gets set during object creation and updated in layout swap.

      the below is a demonstration of the bug:

      [root@rocky94 tests]# rm -rf /mnt/lustre/foo*
      [root@rocky94 tests]# ../utils/lfs mkdir -i 0 /mnt/lustre/foodir
      [root@rocky94 tests]# ../utils/lfs setstripe -E 1M -c 1 -E -1 -c 2 /mnt/lustre/foodir/foo
      [root@rocky94 tests]# getfattr   -n 'trusted.lov' /mnt/lustre/foodir/foo 
      getfattr: Removing leading '/' from absolute path names
      # file: mnt/lustre/foodir/foo
      trusted.lov=0s0AvWC9gAAAACAAAAAAACAAAAAAAAAAAAAAAAAAAAAAABAAAAEAAAAAAAAAAAAAAAAAAQAAAAAACAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAEAAAAAAA//////////+4AAAAIAAAAAAAAAAAAAAAAAAAAAAAAADQC9ELAQAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAQD//wEEAMACAAAAAwAAAAAAAAAAAAAAAQAAANAL0QsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAACAP//
      
      [root@rocky94 tests]# ../utils/lfs migrate -m 1  /mnt/lustre/foodir
      [root@rocky94 tests]# getfattr   -n 'trusted.lov' /mnt/lustre/foodir/foo 
      getfattr: Removing leading '/' from absolute path names
      # file: mnt/lustre/foodir/foo
      trusted.lov=0s0AvWC9gAAAACAAAAAAACAAAAAAAAAAAAAAAAAAAAAAABAAAAEAAAAAAAAAAAAAAAAAAQAAAAAACAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAEAAAAAAA//////////+4AAAAIAAAAAAAAAAAAAAAAAAAAAAAAADQC9ELAQAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAQD//wEEAMACAAAAAwAAAAAAAAAAAAAAAQAAANAL0QsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAACAP//
      
      [root@rocky94 tests]#
      

      the LOV attribute is not changed during migration as it should be, at least that lmm_oi should contain new value, an encoded new object FID which was changed by the migration procedure.

      the file 'foo' indeed has a FID from MDT1:

      [root@rocky94 tests]# ../utils/lfs path2fid  /mnt/lustre/foodir/foo 
      [0x240000402:0x4:0x0]
      [root@rocky94 tests]# 
      

      and two lov attributes (taken before and after migration) are identical:

      [root@rocky94 tests]# cmp -l  <(echo trusted.lov=0s0AvWC9gAAAACAAAAAAACAAAAAAAAAAAAAAAAAAAAAAABAAAAEAAAAAAAAAAAAAAAAAAQAAAAAACAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAEAAAAAAA//////////+4AAAAIAAAAAAAAAAAAAAAAAAAAAAAAADQC9ELAQAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAQD//wEEAMACAAAAAwAAAAAAAAAAAAAAAQAAANAL0QsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAACAP//) <(echo trusted.lov=0s0AvWC9gAAAACAAAAAAACAAAAAAAAAAAAAAAAAAAAAAABAAAAEAAAAAAAAAAAAAAAAAAQAAAAAACAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAEAAAAAAA//////////+4AAAAIAAAAAAAAAAAAAAAAAAAAAAAAADQC9ELAQAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAQD//wEEAMACAAAAAwAAAAAAAAAAAAAAAQAAANAL0QsBAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAACAP//)
      [root@rocky94 tests]#
      

      Attachments

        Issue Links

          Activity

            People

              zam Alexander Zarochentsev
              zam Alexander Zarochentsev
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: