Skip to content

BigTable: row.commit throwing _Rendezvous exception instead of ServiceUnavailable #4656

Description

@zakons

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)>

Metadata

Metadata

Assignees

Labels

api: bigtableIssues related to the Bigtable API.priority: p2Moderately-important priority. Fix may not be included in next release.type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions