Skip to content

Introduce default update timeout#8944

Merged
agourlay merged 1 commit into
devfrom
default-update-time
May 7, 2026
Merged

Introduce default update timeout#8944
agourlay merged 1 commit into
devfrom
default-update-time

Conversation

@agourlay

@agourlay agourlay commented May 7, 2026

Copy link
Copy Markdown
Member

Default the update timeout for REST and gRPC user requests to the inter-node request_timeout (60s) when the client doesn't supply one, so a vanished client can't leave the wait phase running forever.

Why

Actix-web doesn't cancel handler futures on client disconnect, and Qdrant has no server-side cap on the update wait when ?timeout= is omitted.

Without a default, a disconnected client leaves await_update_result and the deferred-points loop hanging until the operation completes naturally.

Change

In src/common/update.rs::update() (the choke point all do_*_points helpers funnel through), fall back to toc.get_channel_service().request_timeout() when params.timeout is None.

Internal maintenance callers (clean.rs, sharding_keys.rs, resharding cleanup, update_all_local) bypass this function and call ShardReplicaSet::update_local directly, so they keep None = wait forever for long-running operations like index creation.

@agourlay agourlay marked this pull request as ready for review May 7, 2026 14:04
@timvisee

timvisee commented May 7, 2026

Copy link
Copy Markdown
Member

Related: actix/actix-web#3462

@qdrant qdrant deleted a comment from coderabbitai Bot May 7, 2026
@agourlay agourlay requested review from generall and timvisee May 7, 2026 15:48
@agourlay agourlay merged commit ed92208 into dev May 7, 2026
15 checks passed
@agourlay agourlay deleted the default-update-time branch May 7, 2026 17:52
timvisee pushed a commit that referenced this pull request May 8, 2026
@timvisee timvisee mentioned this pull request May 8, 2026
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.

3 participants