Repository navigation
fix: order watchdog receipts, close on failed replies, advertise real addresses - #128
Conversation
… addresses Part 4, the last part, of the protocol contract decided in #108. - StateMachine's watchdog records receipts in order with their receipt time, in constant space: the newest activity and at most one DWA credit for the single outstanding DWR. Tw is rearmed from the receipt time, a DWA credit and the expiry decision are taken in one atomic step, and the window after a DWR starts when the DWR is actually published, so neither a backlog nor a slow write turns a healthy peer SUSPECT (RFC 3539 §3.4.1, Appendix A). - Both front ends close the connection, once, when a required reply (CEA, DWA, DPA or an error answer) cannot be built, queued or written, and report the reply status in order: queued before failed. - CER and CEA advertise only configured or actually resolved addresses (RFC 6733 §5.3.5). The Manager no longer falls back to loopback when it cannot resolve one, so a custom transport may need Host-IP-Address configured; StateMachine still advertises loopback addresses that may really be used. Fixes #108
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Part 4, the last part, of the protocol contract decided in #108.
time, in constant space: the newest activity and at most one DWA credit
for the single outstanding DWR. Tw is rearmed from the receipt time, a
DWA credit and the expiry decision are taken in one atomic step, and the
window after a DWR starts when the DWR is actually published, so neither
a backlog nor a slow write turns a healthy peer SUSPECT (RFC 3539
§3.4.1, Appendix A).
DWA, DPA or an error answer) cannot be built, queued or written, and
report the reply status in order: queued before failed.
(RFC 6733 §5.3.5). The Manager no longer falls back to loopback when it
cannot resolve one, so a custom transport may need Host-IP-Address
configured; StateMachine still advertises loopback addresses that may
really be used.
Fixes #108
Validation
make checkpasses locally for all modules: format, test (Go 1.27.2 and1.26.9), race, vet, lint, vuln, windows, secrets and codeql.
stalled DWR write and a DWA admitted at the expiry boundary; TCP captures show
no extra probe and no false SUSPECT, and CER/CEA advertising only real addresses.
before the DWR was published, Queued/Failed reported out of order and a receipt
versus expiry race; all are fixed with their own tests, and the watchdog tests
pass under
-race -count=20.Summary by cubic
Fixes the final part of the protocol contract for #108: ordering watchdog receipts, closing on required-reply failures, and advertising real addresses.
Watchdog
Required replies and addresses
Host-IP-Addressconfigured), while StateMachine still advertises loopback addresses that may really be used.Written for commit 5b947b1. Summary will update on new commits.