mirror of
https://github.com/bytedance/deer-flow.git
synced 2026-10-26 21:26:39 +00:00
docs(channels): align leader-lease failover and runtime-config notes with the merged code (#7420)
The two-Gateway harness checklist in CONFIGURATION.md said a crashed leader hands its providers over within lease_seconds + grace_seconds; a peer only tries to acquire on its fixed lease_seconds // 3 tick, so the worst case is one renewal interval more (50 s with the defaults), as the leader-lease section of the same file already says. The grace_seconds field description had the same shorter bound. The channels.leader_lease comment in config.example.yaml still said web UI credential changes reach the holder only when it next starts the channel; since #6988 the holder applies them within one renewal interval. The harness `check` footer still listed the IM channel gates as waiting for leader election, which landed in #6843; it now points at the manual channel item in CONFIGURATION.md, which also gains the runtime-config step.
This commit is contained in:
parent
ee8e6762ac
commit
a9917e986b
@ -804,7 +804,7 @@ These still need a manual pass:
|
||||
- cancel a run on B from A: it takes effect within about one heartbeat (~10 s; a lower `run_ownership.lease_seconds` makes the boundary easier to observe);
|
||||
- change an MCP filesystem server's args on A: B's local-bash allowlist follows;
|
||||
- edit a skill on A: B's system-prompt skills section changes within 30 s;
|
||||
- with `DEERFLOW_MI_KEEP_CHANNELS=1` and test bots configured: only one Gateway connects each platform (`GET /api/channels/` reports the same `leader` on both, Telegram logs no `409`, Discord answers once), `stop <leader> --kill` hands each provider to the other Gateway within `lease_seconds + grace_seconds`, and a plain `stop <leader>` hands them over on the other Gateway's next tick.
|
||||
- with `DEERFLOW_MI_KEEP_CHANNELS=1` and test bots configured: only one Gateway connects each platform (`GET /api/channels/` reports the same `leader` on both, Telegram logs no `409`, Discord answers once), `stop <leader> --kill` hands each provider to the other Gateway within `lease_seconds + grace_seconds` plus one renewal interval (50 s with the defaults), a plain `stop <leader>` hands them over on the other Gateway's next tick, and credentials saved or a disconnect made with `POST` / `DELETE /api/channels/{provider}/runtime-config` on the non-holder reach the holder within one renewal interval.
|
||||
|
||||
### IM channel leader lease (`channels.leader_lease`)
|
||||
|
||||
|
||||
@ -56,7 +56,7 @@ class ChannelLeaderLeaseConfig(BaseModel):
|
||||
grace_seconds: int = Field(
|
||||
default=10,
|
||||
ge=0,
|
||||
description="Extra time after lease_expires_at before a peer may take an expired lease, absorbing a slow renewal. Worst-case failover is lease_seconds + grace_seconds.",
|
||||
description="Extra time after lease_expires_at before a peer may take an expired lease, absorbing a slow renewal. Worst-case failover is lease_seconds + grace_seconds plus one renewal interval.",
|
||||
)
|
||||
|
||||
@property
|
||||
|
||||
@ -3089,8 +3089,9 @@ run_ownership:
|
||||
# # heartbeat; only the holder connects (GitHub webhooks stay on every
|
||||
# # instance). A crashed holder is replaced within lease_seconds +
|
||||
# # grace_seconds plus one renewal interval, a cleanly stopped one on the
|
||||
# # next heartbeat. Runtime credential changes from the web UI reach the
|
||||
# # holder only when it next starts the channel. Restart-required.
|
||||
# # next heartbeat. Credentials saved or a disconnect made from the web UI
|
||||
# # on any instance reach the holder within one renewal interval. The
|
||||
# # leader_lease block itself is restart-required.
|
||||
# leader_lease:
|
||||
# # auto (default): on whenever the Gateway sees a multi-process signal
|
||||
# # (GATEWAY_WORKERS / WEB_CONCURRENCY > 1, deployment.multi_instance: true
|
||||
|
||||
@ -697,7 +697,7 @@ MANUAL_CHECKS = (
|
||||
"cancel a run on B from A: takes effect within about one heartbeat (~10s)",
|
||||
"change an MCP filesystem server's args on A: B's local-bash allowlist follows",
|
||||
"edit a skill on A: B's system-prompt skills section changes within 30s",
|
||||
"IM channel gates (one leader per platform, failover, runtime-config): once channel leader election lands",
|
||||
"IM channel gates (one leader per platform, failover, runtime-config): `up` with `DEERFLOW_MI_KEEP_CHANNELS=1` and test bots, then follow the channel item in that section",
|
||||
)
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user