client: Respect client.WithTimeout option#11508
Conversation
|
Hi @vvoland. Thanks for your PR. I'm waiting for a containerd member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
a0757d1 to
12c582e
Compare
Fix the gRPC client dialer not using the timeout passed by the containerd client timeout option. Commit 63b4688 replaced the usage of deprecated `grpc.DialContext` with `grpc.NewClient`. However, the `dialer.ContextDialer` relied on the context deadline to propagate the timeout: https://github.com/containerd/containerd/blob/388fb336b0a458e2cf64212072743e622a3f44c7/vendor/google.golang.org/grpc/clientconn.go#L216 This assumption is now broken, because `grpc.NewClient` doesn't do any initial connection and defers it to the first RPC usage. This commit passes the timeout via the `MinConnectTimeout` grpc connection param, which will be applied to **every** connection attempt (not just the first). Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
12c582e to
ee574e7
Compare
|
/cherry-pick release/2.0 |
|
@dmcgowan: new pull request created: #11536 DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
client.Newdoesn't respect the timeout (v2) #11507Fix the gRPC client dialer not using the timeout passed by the containerd client timeout option.
Commit 63b4688 replaced the usage of deprecated
grpc.DialContextwithgrpc.NewClient.However, the
dialer.ContextDialerrelied on the context deadline to propagate the timeout:containerd/vendor/google.golang.org/grpc/clientconn.go
Line 216 in 388fb33
This assumption is now broken, because
grpc.NewClientdoesn't do any initial connection and defers it to the first RPC usage.This commit passes the timeout to the connection dialer, so the timeout will be applied to every connection attempt (not just the first).
Signed-off-by: Paweł Gronowski pawel.gronowski@docker.com