Skip to content

fix: Bound plugin downloads with transport timeouts - #684

Draft
erezrokah wants to merge 2 commits into
mainfrom
fix/download-transport-timeouts
Draft

fix: Bound plugin downloads with transport timeouts#684
erezrokah wants to merge 2 commits into
mainfrom
fix/download-transport-timeouts

Conversation

@erezrokah

Copy link
Copy Markdown
Member

Plugin asset requests now go through a dedicated HTTP client with dial, TLS handshake, response-header and per-read idle deadlines instead of the timeout-free http.DefaultClient, so a server that goes silent fails in seconds and retries rather than hanging until a middlebox tears the connection down.

http.DefaultClient has no timeout of any kind, so a plugin asset server that
accepts the connection and then goes silent holds the attempt until a middlebox
tears the connection down minutes later.

Route both asset requests through a dedicated client with dial, TLS handshake,
response-header and per-read idle deadlines. Timeouts produced by that client
are re-labelled as retryable, since they otherwise reach the classifier
indistinguishable from the caller's own deadline.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants