[LU-11686] sanity test 807 fails with mounted subdirectory with error '/mnt/lustre/d807.sanity/single_dd expected blocks: 1, got: 0' Created: 21/Nov/18  Updated: 22/Jan/24

Status: Open
Project: Lustre
Component/s: None
Affects Version/s: Lustre 2.12.0
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: James Nunez (Inactive) Assignee: WC Triage
Resolution: Unresolved Votes: 0
Labels: LSOM, always_except
Environment:

subdirectory mount


Issue Links:
Related
is related to LU-8585 All Lustre test suites should pass wi... Open
Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

sanity test_807 verifies the LSOM syncing tool. When a Lustre client mounts a subdirectory on the Lustre file system, sanity test 807 fails and it looks like the LSOM sync tool, llsom_sync, does not return the correct information. From the failure at https://testing.whamcloud.com/test_sets/37edc450-e915-11e8-b67f-52540065bddc, the client test log contains

== sanity test 807: verify LSOM syncing tool ========================================================= 20:25:23 (1542313523)
…
CMD: onyx-43vm12 /usr/sbin/lctl --device lustre-MDT0000 changelog_register -n
Registered 1 changelog users: 'cl1'
…
llite.lustre-ffff93c57c1b9000.xattr_cache=0
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.00356313 s, 294 MB/s
Test SOM for muti-client (2) writes
CMD: onyx-43vm10 multiop /mnt/lustre/f807.sanity Oz0w1048576c
CMD: onyx-43vm9.onyx.whamcloud.com multiop /mnt/lustre/f807.sanity Oz1048576w1048576c
Start to sync 3 records.
 sanity test_807: @@@@@@ FAIL: /mnt/lustre/d807.sanity/single_dd expected blocks: 1, got: 0 

To reproduce this error, set the environment variable FILESET or, in autotest, use the test-parameter “envdefinitions=FILESET=/subdir”.

Logs for other failures are at
https://testing.whamcloud.com/test_sets/c994a85c-d3b1-11e8-9238-52540065bddc
https://testing.whamcloud.com/test_sets/71f98f92-d0a8-11e8-9238-52540065bddc



 Comments   
Comment by Peter Jones [ 21/Nov/18 ]

Qian

Can you please advise?

Thanks

Peter

Comment by Andreas Dilger [ 21/Nov/18 ]

This is failing because llapi_open_by_fid() used by llsom_sync does not work in a subdirectory mount to prevent FID-guessing attacks from within a subdir. I suspect that this will not be an issue for real deployments, since the llsom_sync tool would not be running inside the subdir, so it is IMHO a not a critical issue. As a workaround, I think it would be possible to use llapi_fid2path() within a subdirectory mount to get the proper relative pathname to open the file. Whether that would be useful in production is a separate question.

Note minor typo in test_807 - "muti" -> "multi" in a few places.

Also, in llsom_sync.c it defines PATH_MAX but doesn't use it anywhere.

Comment by Andreas Dilger [ 22/Jan/24 ]

Currently, sanity.sh test_807 is skipped when FILESET is set, but I suspect this is now fixed by LU-8585.

Comment by Andreas Dilger [ 22/Jan/24 ]

Need to re-enable this subtest and see if it is passing.

Generated at Sat Feb 10 02:46:03 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.