Artifact 832123e59a5f9aff44f55925d135d5130b97da192c9cff45d6d5842e07e94ec4:
- File
internal/sync/client.go
-
2026-10-24 05:58:37
— part of check-in
[df78b8aee9]
on branch main
— fix(sync): never announce a withheld artifact from the client side (#471)
Review of 0e28b6a: when the origin pushed on to a peer, its own client announced artifacts its replies withhold. A pending seed went out from unclustered, and after verify.Rebuild (which marks every blob unclustered and unsent again) a refused seed went out too. The peer kept asking, loadFileCard withheld it, and the push ran out of rounds.
Fixed in the tables the client announces from, not in each reader: - MarkPending takes a pending row out of unclustered. - decide puts it back once judged not a seed; a seed stays out. - rebuildBookkeeping leaves withheld rids out of unclustered and unsent. - That also keeps them out of cluster minting, which reads unclustered. - sendPrivate and the private gimme answer, which read the private table, skip withheld rids. - sendUnclustered needs no filter of its own, and sendAllClusters lists only linked clusters, which a withheld row never is.
JudgeFilled now skips a row that does not expand (it stays pending) and judges the rest of the batch, instead of returning.
Tests: - A pending seed is not announced on a push-on, publicly or privately. - A peer asking for a private pending seed outside a private sync is not told it exists. - After a rebuild, a push-on converges and never names the refused seed. - A pending file, once judged, is announced again on a push-on. - An unreadable row does not stop the next fill in the batch being judged. - Every new mechanism fails a test when disabled. (user: [email protected], size: 71206) [annotate] [blame] [check-ins using]
-
2026-10-24 06:39:04
— part of check-in
[81d00b2e3b]
on branch main
— Merge branch 'feat/471-seed-refusal' into feat/horizon-names-seed-refusal
# Conflicts: # conformance/horizon_test.go # docs/site/data/conformance.json (user: [email protected], size: 71206) [annotate] [blame] [check-ins using]
-
2026-10-24 05:58:37
— part of check-in
[df78b8aee9]
on branch main
— fix(sync): never announce a withheld artifact from the client side (#471)