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

Use real OST index as ostid_to_fid() parameter instead of always "0"

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • Lustre 2.6.0, Lustre 2.8.0
    • Lustre 2.5.0
    • None
    • 3
    • 8988

    Description

      Currently, the callers for ostid_to_fid() always use "0" as the "ost_idx" parameter. There are potential issues for that, and may cause FID inconsistency as to crash the system.

      Attachments

        Issue Links

          Activity

            [LU-3569] Use real OST index as ostid_to_fid() parameter instead of always "0"

            Last patch has landed for 2.8.

            jgmitter Joseph Gmitter (Inactive) added a comment - Last patch has landed for 2.8.

            Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/16477/
            Subject: LU-3569 utils: remove ll_recover_lost_found_obj
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: 8f810496b9b13b79018b6889939a6de6e19ddddd

            gerrit Gerrit Updater added a comment - Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/16477/ Subject: LU-3569 utils: remove ll_recover_lost_found_obj Project: fs/lustre-release Branch: master Current Patch Set: Commit: 8f810496b9b13b79018b6889939a6de6e19ddddd

            Peter, I have refreshed the patch http://review.whamcloud.com/#/c/16477/

            yong.fan nasf (Inactive) added a comment - Peter, I have refreshed the patch http://review.whamcloud.com/#/c/16477/
            pjones Peter Jones added a comment -

            Fan Yong

            We have been discussing this issue on the triage call and it looks like an fsck issue. Could you please look at the latest feedback in the patch and see what needs to be done?

            Thanks

            Peter

            pjones Peter Jones added a comment - Fan Yong We have been discussing this issue on the triage call and it looks like an fsck issue. Could you please look at the latest feedback in the patch and see what needs to be done? Thanks Peter

            Lai Siyao (lai.siyao@intel.com) uploaded a new patch: http://review.whamcloud.com/16477
            Subject: LU-3569 utils: remove ll_recover_lost_found_obj
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: ef14f2f062ee31302d55a0a29ecee94233f47aa8

            gerrit Gerrit Updater added a comment - Lai Siyao (lai.siyao@intel.com) uploaded a new patch: http://review.whamcloud.com/16477 Subject: LU-3569 utils: remove ll_recover_lost_found_obj Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: ef14f2f062ee31302d55a0a29ecee94233f47aa8
            pjones Peter Jones added a comment -

            As per discussion on the triage call, let's just delete the tool for 2.8

            pjones Peter Jones added a comment - As per discussion on the triage call, let's just delete the tool for 2.8

            Lai, I'd be grateful if you could revive my http://review.whamcloud.com/7880 patch to fix ll_recover_lost_found_objs, or possibly better is to make a different patch to delete ll_recover_lost_found_objs.c entirely because LFSCK should handle that now (sanity-scrub test_14 tests this).

            adilger Andreas Dilger added a comment - Lai, I'd be grateful if you could revive my http://review.whamcloud.com/7880 patch to fix ll_recover_lost_found_objs, or possibly better is to make a different patch to delete ll_recover_lost_found_objs.c entirely because LFSCK should handle that now (sanity-scrub test_14 tests this).
            laisiyao Lai Siyao added a comment -

            Andreas, is there anything needed for this ticket?

            laisiyao Lai Siyao added a comment - Andreas, is there anything needed for this ticket?

            Looks like I am mistaken. I thought that it was a bug for ll_recover_lost_found_objs checking fid_seq_is_idif() and creating the object path LPX64, since this would move objects to "O/0x0/d*" instead of "O/0/d*". However, I didn't notice until now that the old code is actually using LPX64i instead of LPX64, and LPX64i prints zero as "0" instead of "0x0".

            Even so, I cleaned up the code a bit to consolidate where the seq_name is being generated into one place, and IDIF objects now use LPU64 for the seq_name to make the code more clear.

            http://review.whamcloud.com/7880

            adilger Andreas Dilger added a comment - Looks like I am mistaken. I thought that it was a bug for ll_recover_lost_found_objs checking fid_seq_is_idif() and creating the object path LPX64, since this would move objects to "O/0x0/d*" instead of "O/0/d*". However, I didn't notice until now that the old code is actually using LPX64i instead of LPX64, and LPX64i prints zero as "0" instead of "0x0". Even so, I cleaned up the code a bit to consolidate where the seq_name is being generated into one place, and IDIF objects now use LPU64 for the seq_name to make the code more clear. http://review.whamcloud.com/7880

            Even if we don't store the OST index into the on-disk LMA FID, we need to fix a couple of bugs in the ll_lost_found_objs.

            adilger Andreas Dilger added a comment - Even if we don't store the OST index into the on-disk LMA FID, we need to fix a couple of bugs in the ll_lost_found_objs.

            People

              yong.fan nasf (Inactive)
              yong.fan nasf (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: