-
Notifications
You must be signed in to change notification settings - Fork 216
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace health checking with server-capability getter and disable retries on internal errors #706
Conversation
ed8550b
to
99aa6ca
Compare
Note, I am having CI failures I am struggling to replicate locally. Pardon the repeated forced pushes. |
After discussion here, we can't reasonably require a namespace to be ready for cross-namespace clients. We are going to have to remove |
I will be waiting for after next server release and after next SDK release before coming back to this |
…info # Conflicts: # internal/grpc_dialer_test.go
This has now been updated to remove |
4027f45
to
ab2c222
Compare
ab2c222
to
a8f08f1
Compare
|
||
// HealthCheckTimeout defines how long client should be sending health check requests to the server before concluding | ||
// that it is unavailable. Defaults to 10s, once this timeout is reached error will be propagated to the client. | ||
HealthCheckTimeout time.Duration |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm fine with not exposing GetSystemInfoTimeout
here until it's requested.
What was changed
WorkflowService.GetServerInfo
to eagerly obtain the capabilities of the server (or ignore if call is not there, it was added in New GetSystemInfo RPC temporal#2309)Why?
We need to know from the server what it supports. Specifically in this case, we need to stop retrying internal errors if the server says it differentiates between them.
Checklist
This makes the following backwards incompatible changes:
client.ConnectionOptions.DisableHealthCheck
,client.ConnectionOptions.HealthCheckAttemptTimeout
, andclient.ConnectionOptions.HealthCheckTimeout
. This means users of those options will have to change code on upgrade.DisableHealthCheck
) is replaced by obtaining these capabilities, we removed the configuration options.DisableHealthCheck
(which includes our own server), to not create the client until the server is running.NewNamespaceClient
.The removal of health checking and the removal of eager-connect opt-out was discussed internally with @bergundy, @alexshtin, and @yiminc. We can of course take other approaches if there are concerns here.
@mfateev and @samarabbas - Please review.