Details
-
Bug
-
Resolution: Fixed
-
Major
-
Lustre 2.10.0, Lustre 2.10.1, Lustre 2.11.0, Lustre 2.10.2
-
None
-
RHEL 7.3 Server/Client
master, build# 3486
-
3
-
9223372036854775807
Description
This issue was created by maloo for Saurabh Tandan <saurabh.tandan@intel.com>
This issue relates to the following test suite run: https://testing.hpdd.intel.com/test_sets/d6ff8e38-d464-11e6-ace4-5254006e85c2.
The sub-test test_38 failed with the following error:
skipped id entries
test_logs:
== sanity-quota test 38: Quota accounting iterator doesn't skip id entries =========================== 05:03:51 (1483707831) Waiting for local destroys to complete Creating test directory CMD: onyx-35vm3,onyx-35vm4 lctl set_param fail_val=0 fail_loc=0 fail_val=0 fail_loc=0 fail_val=0 fail_loc=0 Create 10000 files... CMD: onyx-35vm3 lctl set_param -n osd*.*MDT*.force_sync=1 CMD: onyx-35vm4 lctl set_param -n osd*.*OS*.force_sync=1 CMD: onyx-35vm3 /usr/sbin/lctl get_param osd-ldiskfs.lustre-MDT0000.quota_slave.acct_user Found 10010 id entries sanity-quota test_38: @@@@@@ FAIL: skipped id entries
Attachments
Issue Links
- mentioned in
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
-
Page Loading...
I have managed to reproduce this issue in my local VMs, and there are two problems to cause it.
1. the problem caused by multiple calls of the "lprocfs_quota_seq_start" of the seq_operations
During the reading of the sequence file, "seq_read" will be called multiple times to read the content,
and start/stop operation will be called in each call of "seq_read", but the start operation will cause
the following problem,
Assume the last stop operation save the current read position at 2000 (qid), the saved block and index is
[1, 2, 3, 100, 200] and [0, 0, 0, 0, 20, 50] (the level of the quota file is 4), then in the next start operation,
"osd_it_acct_load" is called to resume the iteration, but it will change the block and index to
[1, 2, 3, 150, 200] and [0, 0, 0, 30, 50], that is because the last block storing the quota information will be used
sequentially (will look for the first empty slot when a new quota needs to be inserted).
2. there is a problem in "walk_tree_dqentry"