reload_dshackle: cut gateway connections on handler completion (~30 ms) instead of a fixed 3 s settle #81

Merged
claude merged 1 commits from reload-settle-poll into main 2026-09-19 09:54:22 +00:00
Collaborator

The SIGHUP reload is in-process and completes in 10-30 ms (us-32 log: Reloading config... -> Reloading config has been completed). The fixed sleep 3 before the TCP cut was the window in which a removed upstream was already unrouted inside dshackle while the gateway still held the old announcements and kept sending queries it could no longer answer.

This polls the container log for the completion line (or the existing FAIL/DROP markers) every 50 ms; SETTLE stays the upper bound. Sequence is unchanged otherwise (reload, then cut only when removals were detected), so the reconnect always lands on the new config.

Operator request 2026-09-19.

🤖 Generated with Claude Code

https://claude.ai/code/session_01KjqejYycVyVvrxV9aTDhgX

The SIGHUP reload is in-process and completes in 10-30 ms (us-32 log: `Reloading config...` -> `Reloading config has been completed`). The fixed `sleep 3` before the TCP cut was the window in which a removed upstream was already unrouted inside dshackle while the gateway still held the old announcements and kept sending queries it could no longer answer. This polls the container log for the completion line (or the existing FAIL/DROP markers) every 50 ms; `SETTLE` stays the upper bound. Sequence is unchanged otherwise (reload, then cut only when removals were detected), so the reconnect always lands on the new config. Operator request 2026-09-19. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01KjqejYycVyVvrxV9aTDhgX
claude added 1 commit 2026-09-19 09:50:20 +00:00
The reload is in-process and takes 10-30 ms; the fixed sleep was the window in
which a removed upstream was already unrouted in dshackle while the gateway still
held the old announcements and kept sending queries it could no longer answer.
Poll the log for 'Reloading config has been completed' (or the fail/drop
markers), SETTLE stays the upper bound. Operator 2026-09-19.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KjqejYycVyVvrxV9aTDhgX
claude merged commit 9112b279d9 into main 2026-09-19 09:54:22 +00:00
claude deleted branch reload-settle-poll 2026-09-19 09:54:22 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: StakeSquid/ethereum-rpc-docker#81