DAOS-19559 client: Fix a number of pil4dfs issues - #18967
Draft
mjmac wants to merge 8 commits into
Draft
Conversation
Rust's standard library probes statx() availability with a NULL path and expects EFAULT from libc. Fixes a crash where path[0] was read without checking for NULL first. Features: pil4dfs Signed-off-by: Michael MacDonald <github@macdonald.cx>
A file fd used as dirfd (statx AT_EMPTY_PATH, Rust File::metadata) fell into the /proc/self/fd readlink path and got ENOENT, and dup'ed dir fds shared one dir_obj so closedir() on the dup freed the original's slot (CPython scandir). Both blocked uv/setuptools on a dfuse mount. Signed-off-by: Michael MacDonald <github@macdonald.cx>
This is the daos_build_vm pil4dfs failure shape (DAOS-19005 / #18540) in a test that runs on every PR. Signed-off-by: Michael MacDonald <github@macdonald.cx>
It interposes the libaio API and resolves the real entry points with RTLD_NEXT, which only works when libaio is in the global scope; EL9's fio loads it through a dlopen'ed engine plugin, so every hook asserted. Signed-off-by: Michael MacDonald <github@macdonald.cx>
The kernel rejects a pil4dfs fd with EBADF, and Rust's io::copy treats that from sendfile() as fatal, so uv could not install anything. Signed-off-by: Michael MacDonald <github@macdonald.cx>
…state CPython's subprocess vforks, and its child chdir(cwd) landed in the shared cur_dir; scons then resolved every relative path against a directory it was not in. Signed-off-by: Michael MacDonald <github@macdonald.cx>
chdir() built cur_dir as fs_root + "/"; opendir() already strips it. Signed-off-by: Michael MacDonald <github@macdonald.cx>
|
Ticket title is 'libpil4dfs: statx() segfaults when called with path == NULL' |
Features: pil4dfs Signed-off-by: Michael MacDonald <github@macdonald.cx>
Collaborator
|
Test stage Functional on EL 9 completed with status FAILURE. https://jenkins-3.daos.hpc.amslabs.hpecorp.net//job/daos-stack/job/daos/view/change-requests/job/PR-18967/1/execution/node/1279/log |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Found while trying to get Features: pool working.
Initial draft to test fixes.