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

The quota hash function isn't correct

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Minor
    • Lustre 2.1.0, Lustre 1.8.7
    • Lustre 2.0.0, Lustre 2.1.0, Lustre 1.8.7, Lustre 1.8.6
    • None
    • 3
    • 4917

    Description

      Quota code uses 'uid' or '(1 << 32) + gid' as the hash key, however, the quota hash function lqs_hash() always try to interpret such a unsigned long long key as a 'quota_adjust_qunit' struct, then calculate the hash value by quota_adjust_qunit->qaq_id, since the misused key->qaq_id most likely be a certain value (0 or something else), the calculated hash value for all uid/gid will be same.

      I think this problem might be introduced by some landing or hash converting long time ago, since we can still store/fetch the qunit for each uig/gid (though they are always in same bucket), the bug was not detected by any test.

      Attachments

        Issue Links

          Activity

            People

              niu Niu Yawei (Inactive)
              niu Niu Yawei (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: