how to handle grpc client connection errors?2019 Community Moderator ElectionHow do I enumerate an enum in C#?How do I get a consistent byte representation of strings in C# without manually specifying an encoding?How do I generate a random int number?Sample Client Side gRPC load balancerHow to know if a GRPC server is availableCan a gRPC client connect timeout be set independent of reconnect backoff settings?gRPC polling for incoming packets from multiple sockets at onceGRPC server stream (UNITY app) stops sending dataCannot connect to a gRPC service running in local Docker containerHow to handle hourly Bigtable connection closes?
How to educate team mate to take screenshots for bugs with out unwanted stuff
What do you call someone who likes to pick fights?
Was it really inappropriate to write a pull request for the company I interviewed with?
Are all players supposed to be able to see each others' character sheets?
What would be the most expensive material to an intergalactic society?
Are E natural minor and B harmonic minor related?
Do black holes violate the conservation of mass?
I can't die. Who am I?
Professor forcing me to attend a conference, I can't afford even with 50% funding
What should I do when a paper is published similar to my PhD thesis without citation?
Do Cubics always have one real root?
How can a demon take control of a human body during REM sleep?
Is "cogitate" used appropriately in "I cogitate that success relies on hard work"?
Should we avoid writing fiction about historical events without extensive research?
How do I increase the number of TTY consoles?
Is there a math expression equivalent to the conditional ternary operator?
PTIJ: Who was the sixth set of priestly clothes for?
Why does Central Limit Theorem break down in my simulation?
Why aren't there more Gauls like Obelix?
Idiom for feeling after taking risk and someone else being rewarded
How do spaceships determine each other's mass in space?
Are these two graphs isomorphic? Why/Why not?
Which country has more?
Does the US political system, in principle, allow for a no-party system?
how to handle grpc client connection errors?
2019 Community Moderator ElectionHow do I enumerate an enum in C#?How do I get a consistent byte representation of strings in C# without manually specifying an encoding?How do I generate a random int number?Sample Client Side gRPC load balancerHow to know if a GRPC server is availableCan a gRPC client connect timeout be set independent of reconnect backoff settings?gRPC polling for incoming packets from multiple sockets at onceGRPC server stream (UNITY app) stops sending dataCannot connect to a gRPC service running in local Docker containerHow to handle hourly Bigtable connection closes?
Please help me to understand grpc client connection error handling.
I've used Micrsoft WCF before. It was easy to try to connect several times and to give up if there is no service accepting incoming connections like below:
// this is pseudo code
int attemptCount = 0;
while (true)
try
client.Connect(); // exception is raised if there is not service listening for incoming connection
break;
catch (Exception)
client.Abort(); // to clear connection faulted state
if (++attempCount == 5)
throw;
Thread.Wait(500); // waiting for service to start
5 connection attempts is taken and then client application is terminated if there is no service listening on certain IP:port
This was used when I have client and service started from VisualStudio debug at the same time so sometime client starts first and it has to wait for service to start.
I've tried to do the same using gRPC client but there is no method to reset channel.State
from ChannelState.TransientFailure
back to working. I know that gRPC makes pauses between connection if something is wrong:
For many non-fatal failures (e.g., TCP connection attempts timing out
because the server is not yet available), the channel may spend
increasingly large amounts of time in this state.
https://grpc.io/grpc-java/javadoc/io/grpc/ConnectivityState.html
I can try to use WaitForStateChangedAsync
but how can I configure gRPC client to wait for certain amount of time between reconnection attempts ?
Is there any other way to connect several times and terminate client for gRPC ?
Thank you
c# grpc
add a comment |
Please help me to understand grpc client connection error handling.
I've used Micrsoft WCF before. It was easy to try to connect several times and to give up if there is no service accepting incoming connections like below:
// this is pseudo code
int attemptCount = 0;
while (true)
try
client.Connect(); // exception is raised if there is not service listening for incoming connection
break;
catch (Exception)
client.Abort(); // to clear connection faulted state
if (++attempCount == 5)
throw;
Thread.Wait(500); // waiting for service to start
5 connection attempts is taken and then client application is terminated if there is no service listening on certain IP:port
This was used when I have client and service started from VisualStudio debug at the same time so sometime client starts first and it has to wait for service to start.
I've tried to do the same using gRPC client but there is no method to reset channel.State
from ChannelState.TransientFailure
back to working. I know that gRPC makes pauses between connection if something is wrong:
For many non-fatal failures (e.g., TCP connection attempts timing out
because the server is not yet available), the channel may spend
increasingly large amounts of time in this state.
https://grpc.io/grpc-java/javadoc/io/grpc/ConnectivityState.html
I can try to use WaitForStateChangedAsync
but how can I configure gRPC client to wait for certain amount of time between reconnection attempts ?
Is there any other way to connect several times and terminate client for gRPC ?
Thank you
c# grpc
add a comment |
Please help me to understand grpc client connection error handling.
I've used Micrsoft WCF before. It was easy to try to connect several times and to give up if there is no service accepting incoming connections like below:
// this is pseudo code
int attemptCount = 0;
while (true)
try
client.Connect(); // exception is raised if there is not service listening for incoming connection
break;
catch (Exception)
client.Abort(); // to clear connection faulted state
if (++attempCount == 5)
throw;
Thread.Wait(500); // waiting for service to start
5 connection attempts is taken and then client application is terminated if there is no service listening on certain IP:port
This was used when I have client and service started from VisualStudio debug at the same time so sometime client starts first and it has to wait for service to start.
I've tried to do the same using gRPC client but there is no method to reset channel.State
from ChannelState.TransientFailure
back to working. I know that gRPC makes pauses between connection if something is wrong:
For many non-fatal failures (e.g., TCP connection attempts timing out
because the server is not yet available), the channel may spend
increasingly large amounts of time in this state.
https://grpc.io/grpc-java/javadoc/io/grpc/ConnectivityState.html
I can try to use WaitForStateChangedAsync
but how can I configure gRPC client to wait for certain amount of time between reconnection attempts ?
Is there any other way to connect several times and terminate client for gRPC ?
Thank you
c# grpc
Please help me to understand grpc client connection error handling.
I've used Micrsoft WCF before. It was easy to try to connect several times and to give up if there is no service accepting incoming connections like below:
// this is pseudo code
int attemptCount = 0;
while (true)
try
client.Connect(); // exception is raised if there is not service listening for incoming connection
break;
catch (Exception)
client.Abort(); // to clear connection faulted state
if (++attempCount == 5)
throw;
Thread.Wait(500); // waiting for service to start
5 connection attempts is taken and then client application is terminated if there is no service listening on certain IP:port
This was used when I have client and service started from VisualStudio debug at the same time so sometime client starts first and it has to wait for service to start.
I've tried to do the same using gRPC client but there is no method to reset channel.State
from ChannelState.TransientFailure
back to working. I know that gRPC makes pauses between connection if something is wrong:
For many non-fatal failures (e.g., TCP connection attempts timing out
because the server is not yet available), the channel may spend
increasingly large amounts of time in this state.
https://grpc.io/grpc-java/javadoc/io/grpc/ConnectivityState.html
I can try to use WaitForStateChangedAsync
but how can I configure gRPC client to wait for certain amount of time between reconnection attempts ?
Is there any other way to connect several times and terminate client for gRPC ?
Thank you
c# grpc
c# grpc
asked Mar 6 at 13:26
oleksaoleksa
306320
306320
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
gRPC has exponential backoff control on channel reconnection internally.
We do have some backoff parameters, and some of them are configurable by channel arguments.
https://github.com/grpc/grpc/blob/2bd7ad0112f56d2bdbc37d01a431c1e375039f2e/src/core/ext/filters/client_channel/subchannel.cc#L61
But we don't have any parameter to control the max attempt times as far as I know. Please file a feature request on https://github.com/grpc/grpc so that we can follow up.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55024232%2fhow-to-handle-grpc-client-connection-errors%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
gRPC has exponential backoff control on channel reconnection internally.
We do have some backoff parameters, and some of them are configurable by channel arguments.
https://github.com/grpc/grpc/blob/2bd7ad0112f56d2bdbc37d01a431c1e375039f2e/src/core/ext/filters/client_channel/subchannel.cc#L61
But we don't have any parameter to control the max attempt times as far as I know. Please file a feature request on https://github.com/grpc/grpc so that we can follow up.
add a comment |
gRPC has exponential backoff control on channel reconnection internally.
We do have some backoff parameters, and some of them are configurable by channel arguments.
https://github.com/grpc/grpc/blob/2bd7ad0112f56d2bdbc37d01a431c1e375039f2e/src/core/ext/filters/client_channel/subchannel.cc#L61
But we don't have any parameter to control the max attempt times as far as I know. Please file a feature request on https://github.com/grpc/grpc so that we can follow up.
add a comment |
gRPC has exponential backoff control on channel reconnection internally.
We do have some backoff parameters, and some of them are configurable by channel arguments.
https://github.com/grpc/grpc/blob/2bd7ad0112f56d2bdbc37d01a431c1e375039f2e/src/core/ext/filters/client_channel/subchannel.cc#L61
But we don't have any parameter to control the max attempt times as far as I know. Please file a feature request on https://github.com/grpc/grpc so that we can follow up.
gRPC has exponential backoff control on channel reconnection internally.
We do have some backoff parameters, and some of them are configurable by channel arguments.
https://github.com/grpc/grpc/blob/2bd7ad0112f56d2bdbc37d01a431c1e375039f2e/src/core/ext/filters/client_channel/subchannel.cc#L61
But we don't have any parameter to control the max attempt times as far as I know. Please file a feature request on https://github.com/grpc/grpc so that we can follow up.
answered Mar 6 at 19:09
Juanli ShenJuanli Shen
383
383
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55024232%2fhow-to-handle-grpc-client-connection-errors%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown