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

lu_object_assign_fid() doesn't need to lookup FID

Details

    • Improvement
    • Resolution: Fixed
    • Minor
    • Lustre 2.9.0
    • None
    • None
    • 9223372036854775807

    Description

      lu_object_assign_fid() doesn't need to lookup FID as the FID is supposed to be unique. that lookup was to assert if something went wrong, but it never got hit in the end. it's time to remove that.

      Attachments

        Issue Links

          Activity

            [LU-7900] lu_object_assign_fid() doesn't need to lookup FID

            Patch has landed to master for 2.9.0

            jgmitter Joseph Gmitter (Inactive) added a comment - Patch has landed to master for 2.9.0

            Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/19081/
            Subject: LU-7900 obdclass: lu_object_assign_fid() do not lookup
            Project: fs/lustre-release
            Branch: master
            Current Patch Set:
            Commit: b2d6651eda081139cb168069d256b651a5435781

            gerrit Gerrit Updater added a comment - Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/19081/ Subject: LU-7900 obdclass: lu_object_assign_fid() do not lookup Project: fs/lustre-release Branch: master Current Patch Set: Commit: b2d6651eda081139cb168069d256b651a5435781

            Alex Zhuravlev (alexey.zhuravlev@intel.com) uploaded a new patch: http://review.whamcloud.com/19081
            Subject: LU-7900 obdclass: lu_object_assign_fid() do not lookup
            Project: fs/lustre-release
            Branch: master
            Current Patch Set: 1
            Commit: b1d571dd5407c9340fa0750a564e1ccc0c7cd9b5

            gerrit Gerrit Updater added a comment - Alex Zhuravlev (alexey.zhuravlev@intel.com) uploaded a new patch: http://review.whamcloud.com/19081 Subject: LU-7900 obdclass: lu_object_assign_fid() do not lookup Project: fs/lustre-release Branch: master Current Patch Set: 1 Commit: b1d571dd5407c9340fa0750a564e1ccc0c7cd9b5

            this one is used only for OST object being created during striping creation.

            bzzz Alex Zhuravlev added a comment - this one is used only for OST object being created during striping creation.

            Doesn't this depend on the correct operation of the client, which may be OK now, but could break in the future? I agree we don't want to do extra lookups, but our checking of FIDs is already very lax. At a minimum, we should catch duplicate FID usage when the FID is inserted into the OI?

            For example, we do not verify if a new FID from a client was actually from a SEQ allocated to that client at all. It would be useful to store the last FID SEQs allocated to the client in the export, or keep a global range of valid SEQs for that target (assigned from SEQ master, not more than largest SEQ assigned to client), so that it can verify the incoming FID is (relatively) valid with low effort. Otherwise, we can get into trouble if the client is spewing garbage FIDs, like the 1.8 big-endian clients that didn't swab their incoming SEQ assignments properly. See LU-4232 and LU-4233 for details.

            adilger Andreas Dilger added a comment - Doesn't this depend on the correct operation of the client, which may be OK now, but could break in the future? I agree we don't want to do extra lookups, but our checking of FIDs is already very lax. At a minimum, we should catch duplicate FID usage when the FID is inserted into the OI? For example, we do not verify if a new FID from a client was actually from a SEQ allocated to that client at all. It would be useful to store the last FID SEQs allocated to the client in the export, or keep a global range of valid SEQs for that target (assigned from SEQ master, not more than largest SEQ assigned to client), so that it can verify the incoming FID is (relatively) valid with low effort. Otherwise, we can get into trouble if the client is spewing garbage FIDs, like the 1.8 big-endian clients that didn't swab their incoming SEQ assignments properly. See LU-4232 and LU-4233 for details.

            People

              bzzz Alex Zhuravlev
              bzzz Alex Zhuravlev
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: