-
Notifications
You must be signed in to change notification settings - Fork 44
feat(node): per-IP write-surface rate brake + purge-spam admin tool #196
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
beardthelion
wants to merge
63
commits into
main
Choose a base branch
from
feat/write-sink-brake-coverage
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
63 commits
Select commit
Hold shift + click to select a range
34df1fd
feat(node): add per-IP write-surface rate brake and apply to write_ro…
beardthelion 74e05be
feat(node): extend the per-IP write brake to the remaining write sinks
beardthelion 6fded6e
test(node): adversarial TrustedProxy verification through the write b…
beardthelion e6324d2
feat(node): purge-spam admin subcommand for the empty-burst cleanup
beardthelion 285d7c7
fix(review): make purge-spam empty-check reject git-discovery reads
beardthelion 090019d
fix(review): normalization-consistent purge, brake helper, CLI + cove…
beardthelion dfd4f6c
test(review): close the reasoned-not-run gaps by execution
beardthelion 0135419
fix(node): reject path-traversal repo names in purge-spam before remo…
beardthelion a0fcbb0
fix(node): delete child rows transactionally in delete_repo_by_id
beardthelion fde9cfe
fix(node): reap write_rate_limiter in the periodic cleanup loop
beardthelion 15522d5
fix(node): hold the per-repo advisory lock across purge recheck+delete
beardthelion 1fcca0d
fix(node): count purge-spam disk-removal failures separately from del…
beardthelion d9eebd2
fix(node): warn on unparseable rate-limit env vars instead of silentl…
beardthelion 6325402
docs(node): document GITLAWB_IPFS_API/TIGRIS_BUCKET/METRICS_ADDR/SHUT…
beardthelion bfbe502
test(node): exercise the dry-run guard with a real on-disk candidate …
beardthelion cdb102e
style(node): cargo fmt for the #196 fix set
beardthelion 4df79f2
fix(node): pin the writer's advisory-lock connection in RepoWriteGuard
beardthelion 68c1f5c
refactor(node): introduce ObjectStore trait seam over TigrisClient
beardthelion 3c1ceb8
fix(node): make purge-spam Tigris-authoritative and archive-deleting
beardthelion cf669bb
fix(review): don't hold/leak the pool connection in acquire_write
beardthelion dde5ea9
fix(node): make advisory-lock guards drop-safe and reorder acquire_write
beardthelion b94d440
fix(node): complete a fully-received push after client disconnect
beardthelion e4c4161
fix(node): serialize archive uploads under the per-repo advisory lock
beardthelion 6ba698c
fix(node): let purge-spam reach repos that exist only as archives
beardthelion 9f7757c
refactor(node): dedup limiter setup + write-brake test driver; fix .e…
beardthelion 2a78524
docs(node): drop the .env.example shutdown-grace entry #196 added (#196)
beardthelion c4b337b
fix(node): give advisory-lock guards a dedicated pool and bound the r…
beardthelion 4934646
fix(node): advertise a window-derived Retry-After on rate-limit 429s …
beardthelion 0c279c9
fix(node): skip slug-scoped purge cascade when a mirror row shares th…
beardthelion 86a8228
fix(node): fail closed classifying the purge target directory (#196)
beardthelion bf2a54e
fix(node): run the push completion tail in the disconnect-surviving t…
beardthelion c24b541
fix(node): tombstone bounties when their repo is purged (#196)
beardthelion 3baa9ed
fix(node): serialize create_repo against the purge advisory lock (#196)
beardthelion 9916bca
test(node): prove purge deletes at MAX_CONNECTIONS=1 with the split p…
beardthelion 8f3d643
fix(node): fail the push when the durable upload times out, don't 200…
beardthelion d1e596e
fix(node): tombstone bounties under both owner forms on purge (#196)
beardthelion ce5dcc3
fix(node): fail closed on a symlink at the purge target (#196)
beardthelion 7dc7be2
fix(node): retry-after on the push-advert 429, and create_repo locks …
beardthelion d2ba14e
fix(node): correct the create-pool and bounty-tombstone remediations …
beardthelion 5a46ef6
fix(node): close the durable-upload data-loss class on every write pa…
beardthelion 2fa9fa3
chore: merge main (iCaptcha PoW + gl retry tests) into feat/write-sin…
beardthelion 16517f8
refactor(node): route the per-DID 429 through the shared too_many_req…
beardthelion ba572b3
fix(node): init's background upload waits out the creator's advisory …
beardthelion 859240b
fix(node): roll back the local issue ref before unlock when the durab…
beardthelion c07435d
fix(node): fork publishes only after a durable upload, serialized on …
beardthelion 2ad1c79
fix(node): read-path downloads publish under the purge lock, without …
beardthelion b2ca5a7
fix(node): bound every under-lock object-store call and dedup the upl…
beardthelion fa4322c
fix(node): harden the read-path download against cancellation, stale …
beardthelion c3d6e73
fix(node): keep the fork's unbounded work out of the target-lock span…
beardthelion 03ef9b5
refactor(node): move read-path download coordination into a repo_stor…
beardthelion 4408d27
fix(node): bound acquire_write's download and free the download-map e…
beardthelion a12f21a
fix(node): roll back the fork mirror and archive on late clone/insert…
beardthelion 556aa31
fix(node): serialize repo purge cascade with mirror ingest via adviso…
beardthelion 1d8c281
fix(node): roll back local ref on failed durable upload (close/merge/…
beardthelion 1d0d3d2
fix(node): tie cancelled cold-download cleanup to blocking extraction
beardthelion 03cd81e
chore(node): fmt + clippy cleanup for the #196 fixes
beardthelion 9152178
fix(node): never let a failed ref snapshot become a delete-all rollba…
beardthelion 296704f
fix(node): slug-lock every peer-ingest writer and drive the real inge…
beardthelion 1e79ae5
fix(node): own cold-download cleanup in a spawned task so handler can…
beardthelion ce25bba
refactor(node): delegate issue ref helpers to the store ref primitives
beardthelion 4329b2a
Merge origin/main into feat/write-sink-brake-coverage (reintegrate cu…
beardthelion d755180
fix(node): slug-lock arweave anchor writes; fail closed when the pre-…
beardthelion e6f4b2f
fix(node): close review residuals: coalesce cold downloads to one in-…
beardthelion File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
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
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.