Details
-
Improvement
-
Resolution: Fixed
-
Minor
-
None
-
None
-
3
-
9223372036854775807
Description
a replica representation in LOV EA can be broken like this one:
lcm_layout_gen: 7 lcm_mirror_count: 2 lcm_entry_count: 2 lcme_id: 65538 lcme_mirror_id: 1 lcme_flags: init,stale lcme_extent.e_start: 134217728 lcme_extent.e_end: 1073741824 lmm_stripe_count: 16 lmm_stripe_size: 16777216 lmm_pattern: 40000001 lmm_layout_gen: 1 lmm_stripe_offset: 4294967295 lmm_objects: - 0: { l_ost_idx: -1, l_fid: [0:0x0:0x0] } - 1: { l_ost_idx: -1, l_fid: [0:0x0:0x0] } - 2: { l_ost_idx: -1, l_fid: [0:0x0:0x0] } - 3: { l_ost_idx: 5, l_fid: [0xbc0000406:0x42fce0eb:0x0] } - 4: { l_ost_idx: -1, l_fid: [0:0x0:0x0] } - 5: { l_ost_idx: -1, l_fid: [0:0x0:0x0] } - 6: { l_ost_idx: -1, l_fid: [0:0x0:0x0] } - 7: { l_ost_idx: -1, l_fid: [0:0x0:0x0] } - 8: { l_ost_idx: -1, l_fid: [0:0x0:0x0] } - 9: { l_ost_idx: -1, l_fid: [0:0x0:0x0] } - 10: { l_ost_idx: -1, l_fid: [0:0x0:0x0] } - 11: { l_ost_idx: -1, l_fid: [0:0x0:0x0] } - 12: { l_ost_idx: -1, l_fid: [0:0x0:0x0] } - 13: { l_ost_idx: -1, l_fid: [0:0x0:0x0] } - 14: { l_ost_idx: -1, l_fid: [0:0x0:0x0] } - 15: { l_ost_idx: -1, l_fid: [0:0x0:0x0] } lcme_id: 131073 lcme_mirror_id: 2 lcme_flags: init lcme_extent.e_start: 0 lcme_extent.e_end: EOF lmm_stripe_count: 16 lmm_stripe_size: 1048576 lmm_pattern: raid0 lmm_layout_gen: 0 lmm_stripe_offset: 5 lmm_pool: hdd-pool lmm_objects: - 0: { l_ost_idx: 5, l_fid: [0xbc0000406:0x42feb0aa:0x0] } - 1: { l_ost_idx: 8, l_fid: [0x8c0000402:0x3bf10cb:0x0] } - 2: { l_ost_idx: 15, l_fid: [0x9c0000402:0x11f1d8f:0x0] } - 3: { l_ost_idx: 13, l_fid: [0x900000402:0x77529c35:0x0] } - 4: { l_ost_idx: 0, l_fid: [0x300000403:0x3beded4:0x0] } - 5: { l_ost_idx: 7, l_fid: [0xa80000402:0x11e9898:0x0] } - 6: { l_ost_idx: 12, l_fid: [0x880000402:0x3bef34f:0x0] } - 7: { l_ost_idx: 10, l_fid: [0xa40000402:0x11d9d9d:0x0] } - 8: { l_ost_idx: 14, l_fid: [0xa00000402:0x11e4d68:0x0] } - 9: { l_ost_idx: 2, l_fid: [0xb80000402:0x11d545a:0x0] } - 10: { l_ost_idx: 6, l_fid: [0xb40000400:0x11f22d9:0x0] } - 11: { l_ost_idx: 4, l_fid: [0x2c0000403:0x4016eb6:0x0] } - 12: { l_ost_idx: 9, l_fid: [0x940000402:0xaf7b184a:0x0] } - 13: { l_ost_idx: 11, l_fid: [0x980000402:0x11dc273:0x0] } - 14: { l_ost_idx: 1, l_fid: [0xac0000404:0x3015313c:0x0] } - 15: { l_ost_idx: 3, l_fid: [0xb00000400:0x11dd9bb:0x0] }
but regular stat should use any valid replica, not return an error once a bogus one is met.
Attachments
Issue Links
- is related to
-
LU-17721 sanity-flr/210b fails: something went wrong with unlink
-
- Resolved
-
Alex, can we not just skip the bad stripes during unlink? I don't want to say "just skip the bad component and delete the file anyway, let LFSCK handle the orphan objects", since this is how this problem was caused in the first place - by LFSCK linking the orphan object(s) back into the file.
I'm sure we have the ability to delete files with bad objects in it, though maybe not when the OST index is "-1"? Could we pick a real OST index but assign a bogus FID that is ignored by the lower layers without generating a lot of error messages?