You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by gi...@apache.org on 2020/12/29 13:02:41 UTC

[buildstream] branch valentindavid/handle_grpc_unavailable created (now 8610a8a)

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a change to branch valentindavid/handle_grpc_unavailable
in repository https://gitbox.apache.org/repos/asf/buildstream.git.


      at 8610a8a  Handle grpc.StatusCode.UNAVAILABLE in first request in case connect() fails

This branch includes the following new commits:

     new 8610a8a  Handle grpc.StatusCode.UNAVAILABLE in first request in case connect() fails

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[buildstream] 01/01: Handle grpc.StatusCode.UNAVAILABLE in first request in case connect() fails

Posted by gi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch valentindavid/handle_grpc_unavailable
in repository https://gitbox.apache.org/repos/asf/buildstream.git

commit 8610a8a4de3480c4fb1fbb657b37b475da8174ec
Author: Valentin David <va...@codethink.co.uk>
AuthorDate: Thu Dec 6 10:28:08 2018 +0100

    Handle grpc.StatusCode.UNAVAILABLE in first request in case connect() fails
    
    This should allow retrying. CAS cache server seems to not accept
    connections in time.
---
 buildstream/_artifactcache/cascache.py | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/buildstream/_artifactcache/cascache.py b/buildstream/_artifactcache/cascache.py
index 9ca757d..ac7c5fb 100644
--- a/buildstream/_artifactcache/cascache.py
+++ b/buildstream/_artifactcache/cascache.py
@@ -1199,8 +1199,12 @@ class CASRemote():
                 if 0 < server_max_batch_total_size_bytes < self.max_batch_total_size_bytes:
                     self.max_batch_total_size_bytes = server_max_batch_total_size_bytes
             except grpc.RpcError as e:
-                # Simply use the defaults for servers that don't implement GetCapabilities()
-                if e.code() != grpc.StatusCode.UNIMPLEMENTED:
+                if e.code() == grpc.StatusCode.UNIMPLEMENTED:
+                    # Simply use the defaults for servers that don't implement GetCapabilities()
+                    pass
+                elif e.code() == grpc.StatusCode.UNAVAILABLE:
+                    raise CASError("Failed to connect to CAS service: {}".format(e.details())) from e
+                else:
                     raise
 
             # Check whether the server supports BatchReadBlobs()