Repository navigation
efs-proof: re-run on main — 9/9 + clean soak with link() fences and OFD locks on EFS - #309
Merged
Merged
Conversation
…fences and OFD locks The two storage primitives that changed since #104 had never run on EFS: the epoch-1 fence is a temp file link()ed into place (#297), and a session lock is an OFD lock on .beyond-lock plus the legacy flock on lock (#144). Both hold on real Fargate + EFS: - matrix 9/9; partitioned takeover 88.4 s (88.4 s in #104), hard-kill takeover 66.6 s (73.1 s), /readyz under a hung mount 1.0026 s, 0 threads leaked - 30-min soak: 142,755 turns, 12 deploys, 7 hard kills, 0 placements refused, every acknowledged write present; 2.64 turns/s/session (83% of local NFS) - a replica with 30 live sessions held 60 locks (30 OFDLCK + 30 FLOCK); one EFS mount held 65,532 locks with none refused, stopped by Fargate's 65,535 nofile limit at AWS's 65,536-locks-per-mount quota. The lock quota does not bind at the 20,000 default; descriptors (~3 per live session) are tighter, so the --max-live-sessions help and FLEET.md's sizing row now say so. Rig fixes the run needed: the driver creates s2 (every scenario failed attach without it), the driver start retries through a fresh mount target's DNS lag, and down.sh deletes security groups in two passes (the EFS group references the tasks group; the gate caught the leak). The checker's C1 message no longer says O_EXCL. Results move to results/<date>/. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JimHGjsfk2Ktm5GxyZJKKk
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.
Re-runs the real-AWS proof of service mode (#104) against current main (
f902044e). The point was the two storage primitives that changed since then and had never run on EFS: #297, where the epoch-1 fence is now a temp filelink()ed into place, and #144, where a session lock is an OFD lock on.beyond-lockplus the legacyflockonlock.Results (Fargate + EFS Elastic, us-west-2, one AZ)
/readyzunder hung mountLock quota (#144: two lock files per live session)
nofilelimit, which is right at AWS's documented quota of 65,536 locks per mount.--max-live-sessionsdefault, which needs 40,000 locks (61% of the quota). File descriptors are the tighter limit: about 3 per live session, so roughly 60k at the default against 65,535. The--max-live-sessionshelp text and FLEET.md's sizing row said "2 descriptors per session"; both are corrected here. Dropping the legacyflock, as planned, brings it back to about 2.Rig fixes this run needed
s2at startup. Without it, all 9 scenarios fail at attach.uphitResourceInitializationError: Failed to resolve fs-….down.shnow deletes security groups in two passes. The EFS group references the tasks group, so the tasks group can't go first; the gate caught the leaked SG and VPC, and a rerun cleared them.O_EXCL.Results moved to
deploy/efs-proof/results/<date>/, withlocks.txtadded. (The 2026-09-22soak.txtwas already truncated in #104.)Teardown verified: no ECS tasks running (cluster INACTIVE), no EFS, NAT, EIP, VPC, log group, ECR repo or IAM role left. Rig up 1 h 42 min, about $0.60.
🤖 Generated with Claude Code
https://claude.ai/code/session_01JimHGjsfk2Ktm5GxyZJKKk