Details
-
Bug
-
Resolution: Fixed
-
Minor
-
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
- Trackbacks
-
Changelog 1.8 {}version 1.8.7wc1{} {}Support for networks: socklnd \any kernel supported by Lustre, qswlnd Qsnet kernel modules 5.20 and later, openiblnd IbGold 1.8.2, o2iblnd OFED 1.3, 1.4.1, 1.4.2, 1.5.1, 1.5.2, 1.5.3.1 and 1.5.3.2 gmlnd GM 2.1....
landed for 1.8.7 and 2.1