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", line 135, in write
row.commit()
File "/home/jenkins/.local/lib/python3.5/site-packages/google/cloud/bigtable/row.py", line 445, in commit
retry_(retry_commit)()
File "/home/jenkins/.local/lib/python3.5/site-packages/google/api_core/retry.py", line 261, in retry_wrapped_func
on_error=on_error,
File "/home/jenkins/.local/lib/python3.5/site-packages/google/api_core/retry.py", line 178, in retry_target
return target()
File "/home/jenkins/.local/lib/python3.5/site-packages/google/cloud/bigtable/row.py", line 256, in __call__
client._data_stub.MutateRow(self.request_pb)
File "/home/jenkins/.local/lib/python3.5/site-packages/grpc/_channel.py", line 492, in __call__
return _end_unary_response_blocking(state, call, False, deadline)
File "/home/jenkins/.local/lib/python3.5/site-packages/grpc/_channel.py", line 440, in _end_unary_response_blocking
raise _Rendezvous(state, None, None, deadline)
grpc._channel._Rendezvous: <_Rendezvous of RPC that terminated with (StatusCode.UNAVAILABLE, Transport closed)>
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: