You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#907 already landed the open-unlinked and rename-replaced inode lifetime fix, including the lifetime regressions that used to be part of this PR.
The unique work left here is smaller:
add locked SharedFS.readAt and SharedFS.writeAt operations that do not touch the shared descriptor cursor
route positioned MemoryFileSystem reads and writes through those operations instead of seek/read-or-write/restore
keep pwrite on its explicit offset even when the descriptor has O_APPEND
cover both the direct SharedFS API and the MemoryFileSystem positioned-I/O path
What was removed
The rewritten branch drops all inode open-reference, unlink, rename, and close-lifetime changes and their duplicate tests because #907 already landed that behavior. The old head is recorded in the PR comments.
ABI and package impact
This does not change the kernel/host ABI, generated ABI evidence, package metadata, package revisions, or committed package artifacts. bash scripts/check-abi-version.sh stays clean.
Validation run
All commands below ran through scripts/dev-shell.sh.
Chromium SQLite config=memsubsys1 test/sort2.test passed 1 job / 11 cases / 0 errors after applying the separate child-testrunner platform shim to the ignored downloaded SQLite source
Node SQLite reached the same 11 cases but still reported 3 unable to open database file errors on the host-backed filesystem path; this PR remains a draft while that separate result is owned by the SQLite/platform cleanup
Validation not run
Firefox and WebKit were not run. The external libc, POSIX, and Sortix suites were considered but not rerun because this diff stays inside the TypeScript SharedFS backend and does not change syscall, libc, or ABI behavior. Performance was not measured and this PR makes no performance claim.
Before narrowing this PR onto current main, its head was d494aefaefbed5f3335fd15dc6c732a6d5b97128. That composite commit included open-unlinked inode lifetime handling now present through #907 plus the remaining positioned-I/O work. The rewrite will retain only the atomic SharedFS readAt/writeAt path and the pread/pwrite shared-offset regression.
Closing this focused source PR because #934 now carries its unique positioned-I/O offset-independence work at exact green head 260d75d5adc31b327f5591229dbfbb287d395fd6. The open-unlinked lifetime work was already on main through #907 and was deliberately excluded. The full staging and browser gates passed. This is not a claim that this branch was merged verbatim.
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
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.
What this keeps
#907 already landed the open-unlinked and rename-replaced inode lifetime fix, including the lifetime regressions that used to be part of this PR.
The unique work left here is smaller:
SharedFS.readAtandSharedFS.writeAtoperations that do not touch the shared descriptor cursorMemoryFileSystemreads and writes through those operations instead of seek/read-or-write/restorepwriteon its explicit offset even when the descriptor hasO_APPENDWhat was removed
The rewritten branch drops all inode open-reference, unlink, rename, and close-lifetime changes and their duplicate tests because #907 already landed that behavior. The old head is recorded in the PR comments.
ABI and package impact
This does not change the kernel/host ABI, generated ABI evidence, package metadata, package revisions, or committed package artifacts.
bash scripts/check-abi-version.shstays clean.Validation run
All commands below ran through
scripts/dev-shell.sh.config=memsubsys1 test/sort2.testpassed 1 job / 11 cases / 0 errors after applying the separate child-testrunner platform shim to the ignored downloaded SQLite sourceunable to open database fileerrors on the host-backed filesystem path; this PR remains a draft while that separate result is owned by the SQLite/platform cleanupValidation not run
Firefox and WebKit were not run. The external libc, POSIX, and Sortix suites were considered but not rerun because this diff stays inside the TypeScript SharedFS backend and does not change syscall, libc, or ABI behavior. Performance was not measured and this PR makes no performance claim.