Skip to content

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

@zakons

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

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