Details
-
Improvement
-
Resolution: Unresolved
-
Minor
-
None
-
None
-
None
-
3
-
9223372036854775807
Description
# ONLY=63-65 bash sanity.sh ... == sanity test 65j: set default striping on root directory (bug 6367)=========================================================== 10:11:30 (1733393490) [ 134.944066] Lustre: DEBUG MARKER: == sanity test 65j: set default striping on root directory (bug 6367)=========================================================== 10:11:30 (1733393490) cln..There are ll_sa thread not exit! test_65j returned 20 FAIL 65j (2s)
The list pattern statahead can optimize the stat() workload as follows:
- opendir() will authorize the statahead
- readdir() to get the name and inode number for the dentries
- do stat() on the dentries one by one
- closedir() will deauthorize the statahead
After closedir() is called, the statahead thread will quit.
However, this is not same for fname pattern statahead which workload is calling stat() on the files in Alphabetic sorting order of the file name and does not include by opendir/closedir() call pair.
For a fname pattern statahead, the statahead thread will wait for a certain time period (30s by default) and it is not quit until the user is no longer using the directory (traverse and stat) for this long time.
Thus after fname statahead pattern is enabled by default, we must wait for stat-ahead thread quit during cleanup. Otherwise, it will faile sanity/test_65j.