We are using retry.py and creating a retry exception predicate as follows:
predicate=retry.if_exception_type(exceptions.ServiceUnavailable)
However, since we are only getting _Rendezvous exceptions with StatusCode.UNAVAILABLE (see below stack trace), we had to change this to:
predicate=retry.if_exception_type(exceptions.GrpcRendezvous)
I see a different issue in cloud datastore for mapping gRPC codes to service level exceptions:
#2590
Will this also be done for cloud bigtable?
Stack Trace:
File"single_key_read_write.py", line135, inwriterow.commit()
File"/home/jenkins/.local/lib/python3.5/site-packages/google/cloud/bigtable/row.py", line445, incommitretry_(retry_commit)()
File"/home/jenkins/.local/lib/python3.5/site-packages/google/api_core/retry.py", line261, inretry_wrapped_funcon_error=on_error,
File"/home/jenkins/.local/lib/python3.5/site-packages/google/api_core/retry.py", line178, inretry_targetreturntarget()
File"/home/jenkins/.local/lib/python3.5/site-packages/google/cloud/bigtable/row.py", line256, in__call__client._data_stub.MutateRow(self.request_pb)
File"/home/jenkins/.local/lib/python3.5/site-packages/grpc/_channel.py", line492, in__call__return_end_unary_response_blocking(state, call, False, deadline)
File"/home/jenkins/.local/lib/python3.5/site-packages/grpc/_channel.py", line440, in_end_unary_response_blockingraise_Rendezvous(state, None, None, deadline)
grpc._channel._Rendezvous: <_RendezvousofRPCthatterminatedwith (StatusCode.UNAVAILABLE, Transportclosed)>
We are using
retry.pyand creating a retry exception predicate as follows:However, since we are only getting
_Rendezvousexceptions withStatusCode.UNAVAILABLE(see below stack trace), we had to change this to:I see a different issue in cloud datastore for mapping gRPC codes to service level exceptions:
#2590
Will this also be done for cloud bigtable?
Stack Trace: