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
- is related to
-
LU-19308 interop 2.15 vs master crash in migration mdd_xattrs_migrate_prep()) ASSERTION( tobj != ((void *)0) ) failed
-
- Open
-