-
Notifications
You must be signed in to change notification settings - Fork 26
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
f6a5b2f
feat(node): add per-IP write-surface rate brake and apply to write_ro…
7d680dc
feat(node): extend the per-IP write brake to the remaining write sinks
665b4ff
test(node): adversarial TrustedProxy verification through the write b…
69a98cf
feat(node): purge-spam admin subcommand for the empty-burst cleanup
13e59b4
fix(review): make purge-spam empty-check reject git-discovery reads
458fe50
fix(review): normalization-consistent purge, brake helper, CLI + cove…
27b4a2a
test(review): close the reasoned-not-run gaps by execution
98150db
fix(node): reject path-traversal repo names in purge-spam before remo…
beardthelion 1688bdc
fix(node): delete child rows transactionally in delete_repo_by_id
beardthelion 4943430
fix(node): reap write_rate_limiter in the periodic cleanup loop
beardthelion 1305167
fix(node): hold the per-repo advisory lock across purge recheck+delete
beardthelion aab70ec
fix(node): count purge-spam disk-removal failures separately from del…
beardthelion cecca67
fix(node): warn on unparseable rate-limit env vars instead of silentl…
beardthelion f4d5bec
docs(node): document GITLAWB_IPFS_API/TIGRIS_BUCKET/METRICS_ADDR/SHUT…
beardthelion 6da0cf5
test(node): exercise the dry-run guard with a real on-disk candidate …
beardthelion ffdc167
style(node): cargo fmt for the #196 fix set
beardthelion 010c625
fix(node): pin the writer's advisory-lock connection in RepoWriteGuard
c192c1f
refactor(node): introduce ObjectStore trait seam over TigrisClient
2155c95
fix(node): make purge-spam Tigris-authoritative and archive-deleting
8842272
fix(review): don't hold/leak the pool connection in acquire_write
1d011be
fix(node): make advisory-lock guards drop-safe and reorder acquire_write
2f679d0
fix(node): complete a fully-received push after client disconnect
c3fedad
fix(node): serialize archive uploads under the per-repo advisory lock
f3cf6fc
fix(node): let purge-spam reach repos that exist only as archives
2b10fa0
refactor(node): dedup limiter setup + write-brake test driver; fix .e…
ed7489e
docs(node): drop the .env.example shutdown-grace entry #196 added (#196)
de16ed5
fix(node): give advisory-lock guards a dedicated pool and bound the r…
bbfdf2b
fix(node): advertise a window-derived Retry-After on rate-limit 429s …
773cd75
fix(node): skip slug-scoped purge cascade when a mirror row shares th…
4860e52
fix(node): fail closed classifying the purge target directory (#196)
2ceec12
fix(node): run the push completion tail in the disconnect-surviving t…
308530f
fix(node): tombstone bounties when their repo is purged (#196)
97bf91a
fix(node): serialize create_repo against the purge advisory lock (#196)
02343b4
test(node): prove purge deletes at MAX_CONNECTIONS=1 with the split p…
15435e3
fix(node): fail the push when the durable upload times out, don't 200…
9e75c5a
fix(node): tombstone bounties under both owner forms on purge (#196)
2a3d9e8
fix(node): fail closed on a symlink at the purge target (#196)
90048b1
fix(node): retry-after on the push-advert 429, and create_repo locks …
2ca205c
fix(node): correct the create-pool and bounty-tombstone remediations …
eef62d7
fix(node): close the durable-upload data-loss class on every write pa…
b55647a
chore: merge main (iCaptcha PoW + gl retry tests) into feat/write-sin…
31b1754
refactor(node): route the per-DID 429 through the shared too_many_req…
4e785c0
fix(node): init's background upload waits out the creator's advisory …
2d52589
fix(node): roll back the local issue ref before unlock when the durab…
2a0d6f7
fix(node): fork publishes only after a durable upload, serialized on …
bf640db
fix(node): read-path downloads publish under the purge lock, without …
ed88bb6
fix(node): bound every under-lock object-store call and dedup the upl…
3341cac
fix(node): harden the read-path download against cancellation, stale …
5e3e98b
fix(node): keep the fork's unbounded work out of the target-lock span…
41f6dce
refactor(node): move read-path download coordination into a repo_stor…
22ce83b
fix(node): bound acquire_write's download and free the download-map e…
8d2fec1
fix(node): roll back the fork mirror and archive on late clone/insert…
3c07adc
fix(node): serialize repo purge cascade with mirror ingest via adviso…
9631acb
fix(node): roll back local ref on failed durable upload (close/merge/…
eea14cd
fix(node): tie cancelled cold-download cleanup to blocking extraction
0b30fa0
chore(node): fmt + clippy cleanup for the #196 fixes
1aa8d18
fix(node): never let a failed ref snapshot become a delete-all rollba…
42c51e8
fix(node): slug-lock every peer-ingest writer and drive the real inge…
39b002f
fix(node): own cold-download cleanup in a spawned task so handler can…
f1574ed
refactor(node): delegate issue ref helpers to the store ref primitives
5626e59
Merge origin/main into feat/write-sink-brake-coverage (reintegrate cu…
ff8515e
fix(node): slug-lock arweave anchor writes; fail closed when the pre-…
93d9a10
fix(node): close review residuals: coalesce cold downloads to one in-…
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.
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.