Repository navigation
Require an i_version NFS export and log preparation errors - #935
Merged
Merged
Conversation
On an ext4 export without iversion, nfsd derives the change attribute from coarse ctime. A client that lists a directory and then creates a file in the same tick keeps serving the old listing, so a later RemoveAll misses the file and fails with ENOTEMPTY. Codex scans its thread-writer lock directory before it creates the lock, so reusing an Environment failed Runtime preparation. Document the export filesystem requirement and log the preparation error.
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.
Reusing a standalone Environment on microsandbox failed about 40% of the time with
Runtime preparation failed before execution.Cause: the workspace export sat on ext4 without
iversion, so nfsd used coarse ctime as the change attribute. A client that lists a directory and then creates a file in the same tick keeps serving the old listing. Codex liststhread-writer-locks/before creating its lock, so the daemon'sRemoveAllof the earlier Session's state missed the lock file and failed with ENOTEMPTY.docs/getting-started/workspace-storage.md(and zh): the export must be on XFS or ext4 mounted withiversion.executor native_preparelog line now carries the error.Verification on a test cluster (kernel 5.15, NFSv4.2):
iversion, 0/50 aftermount -o remount,iversion.rmtree: fails only when the directory was listed before the lock was created (7/20 and 9/20 with and without flock, 0/20 without the listing).go test ./internal/dispatch/,check-translations.Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.