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

The quota hash function isn't correct

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Minor 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

      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.

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

              Created:
              Updated:
              Resolved: