Skip to content

[1.18] Fix actor drain timeout and placement dissemination docs - #5298

Open
JoshVanL wants to merge 2 commits into
dapr:v1.18from
JoshVanL:fix-actor-drain-timeout-docs-1.18
Open

[1.18] Fix actor drain timeout and placement dissemination docs#5298
JoshVanL wants to merge 2 commits into
dapr:v1.18from
JoshVanL:fix-actor-drain-timeout-docs-1.18

Conversation

@JoshVanL

Copy link
Copy Markdown
Contributor

The actor runtime configuration page claimed drainOngoingCallTimeout defaults to 60 seconds; the runtime default has been 2 seconds since v1.17.0 (DefaultOngoingCallTimeout in pkg/actors/api/config.go). The drain timeout clamp also shipped in v1.17.7, not v1.18 as stated.

Rewrite the drain timeout clamping section to distinguish the two dissemination timeouts: the daprd-side --actors-disseminate-timeout (default 30s, which the clamp compares against) and the Placement service --disseminate-timeout (Helm dapr_placement.disseminateTimeout, default 8s, the deadline after which Placement kicks a non-responsive sidecar from the round). Add guidance to keep drain values below the Placement dissemination timeout, since values that pass the clamp can still delay the table update acknowledgement past the 8s deadline.

Correct the kubernetes-production description of disseminateTimeout: it is the dissemination round failure deadline, not a dissemination delay; the default is 8s, and there is no enforced 1s-3s range.

Document the --actors-disseminate-timeout daprd argument and the dapr.io/actors-disseminate-timeout annotation, which were previously missing from the arguments and annotations overview.

Update example drainOngoingCallTimeout values (60s, 1m, 35s, 30s) to 5s across the runtime config page, actors API reference, and .NET and JavaScript SDK docs, so the examples are no longer silently clamped and stay within the Placement dissemination budget. Add the 2 second default to the API reference tables.

The actor runtime configuration page claimed drainOngoingCallTimeout
defaults to 60 seconds; the runtime default has been 2 seconds since
v1.17.0 (DefaultOngoingCallTimeout in pkg/actors/api/config.go). The
drain timeout clamp also shipped in v1.17.7, not v1.18 as stated.

Rewrite the drain timeout clamping section to distinguish the two
dissemination timeouts: the daprd-side --actors-disseminate-timeout
(default 30s, which the clamp compares against) and the Placement
service --disseminate-timeout (Helm dapr_placement.disseminateTimeout,
default 8s, the deadline after which Placement kicks a non-responsive
sidecar from the round). Add guidance to keep drain values below the
Placement dissemination timeout, since values that pass the clamp can
still delay the table update acknowledgement past the 8s deadline.

Correct the kubernetes-production description of disseminateTimeout:
it is the dissemination round failure deadline, not a dissemination
delay; the default is 8s, and there is no enforced 1s-3s range.

Document the --actors-disseminate-timeout daprd argument and the
dapr.io/actors-disseminate-timeout annotation, which were previously
missing from the arguments and annotations overview.

Update example drainOngoingCallTimeout values (60s, 1m, 35s, 30s) to
5s across the runtime config page, actors API reference, and .NET and
JavaScript SDK docs, so the examples are no longer silently clamped
and stay within the Placement dissemination budget. Add the 2 second
default to the API reference tables.

Signed-off-by: joshvanl <me@joshvanl.dev>
@JoshVanL
JoshVanL requested review from a team as code owners August 26, 2026 14:32
Signed-off-by: joshvanl <me@joshvanl.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants