Skip to content
This repository was archived by the owner on Aug 30, 2026. It is now read-only.
This repository was archived by the owner on Aug 30, 2026. It is now read-only.

tests.system.TestInstanceAdminAPI: test_create_instance_w_two_clusters failed #381

Closed

Description

@flaky-bot

This test failed!

To configure my behavior, see the Flaky Bot documentation.

If I'm commenting on this issue too often, add the flakybot: quiet label and
I will stop commenting.


commit: 95b2e13
buildURL: Build Status, Sponge
status: failed

Test output
args = (parent: "projects/precise-truck-742/instances/dif-1626774604962"
table_id: "test-get-cluster-states"
table {
}
,)
kwargs = {'metadata': [('x-goog-request-params', 'parent=projects/precise-truck-742/instances/dif-1626774604962'), ('x-goog-api-client', 'gl-python/3.8.6 grpc/1.39.0rc1 gax/1.31.0')]}
@six.wraps(callable_)
def error_remapped_callable(*args, **kwargs):
    try:
      return callable_(*args, **kwargs)

.nox/system-3-8/lib/python3.8/site-packages/google/api_core/grpc_helpers.py:67:


self = <grpc._channel._UnaryUnaryMultiCallable object at 0x7f75a000ebb0>
request = parent: "projects/precise-truck-742/instances/dif-1626774604962"
table_id: "test-get-cluster-states"
table {
}

timeout = None
metadata = [('x-goog-request-params', 'parent=projects/precise-truck-742/instances/dif-1626774604962'), ('x-goog-api-client', 'gl-python/3.8.6 grpc/1.39.0rc1 gax/1.31.0')]
credentials = None, wait_for_ready = None, compression = None

def __call__(self,
             request,
             timeout=None,
             metadata=None,
             credentials=None,
             wait_for_ready=None,
             compression=None):
    state, call, = self._blocking(request, timeout, metadata, credentials,
                                  wait_for_ready, compression)
  return _end_unary_response_blocking(state, call, False, None)

.nox/system-3-8/lib/python3.8/site-packages/grpc/_channel.py:946:


state = <grpc._channel._RPCState object at 0x7f75a18ff730>
call = <grpc._cython.cygrpc.SegregatedCall object at 0x7f75a000a040>
with_call = False, deadline = None

def _end_unary_response_blocking(state, call, with_call, deadline):
    if state.code is grpc.StatusCode.OK:
        if with_call:
            rendezvous = _MultiThreadedRendezvous(state, call, None, deadline)
            return state.response, rendezvous
        else:
            return state.response
    else:
      raise _InactiveRpcError(state)

E grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
E status = StatusCode.UNAVAILABLE
E details = "The service is currently unavailable."
E debug_error_string = "{"created":"@1626774802.507906631","description":"Error received from peer ipv4:173.194.202.95:443","file":"src/core/lib/surface/call.cc","file_line":1069,"grpc_message":"The service is currently unavailable.","grpc_status":14}"
E >

.nox/system-3-8/lib/python3.8/site-packages/grpc/_channel.py:849: _InactiveRpcError

The above exception was the direct cause of the following exception:

self = <tests.system.TestInstanceAdminAPI testMethod=test_create_instance_w_two_clusters>

def test_create_instance_w_two_clusters(self):
    from google.cloud.bigtable import enums
    from google.cloud.bigtable.table import ClusterState

    _PRODUCTION = enums.Instance.Type.PRODUCTION
    ALT_INSTANCE_ID = "dif" + UNIQUE_SUFFIX
    instance = Config.CLIENT.instance(
        ALT_INSTANCE_ID, instance_type=_PRODUCTION, labels=LABELS
    )

    ALT_CLUSTER_ID_1 = ALT_INSTANCE_ID + "-c1"
    ALT_CLUSTER_ID_2 = ALT_INSTANCE_ID + "-c2"
    LOCATION_ID_2 = "us-central1-f"
    STORAGE_TYPE = enums.StorageType.HDD
    serve_nodes = 1
    cluster_1 = instance.cluster(
        ALT_CLUSTER_ID_1,
        location_id=LOCATION_ID,
        serve_nodes=serve_nodes,
        default_storage_type=STORAGE_TYPE,
    )
    cluster_2 = instance.cluster(
        ALT_CLUSTER_ID_2,
        location_id=LOCATION_ID_2,
        serve_nodes=serve_nodes,
        default_storage_type=STORAGE_TYPE,
    )
    operation = instance.create(clusters=[cluster_1, cluster_2])

    # Make sure this instance gets deleted after the test case.
    self.instances_to_delete.append(instance)

    # We want to make sure the operation completes.
    operation.result(timeout=120)

    # Create a new instance instance and make sure it is the same.
    instance_alt = Config.CLIENT.instance(ALT_INSTANCE_ID)
    instance_alt.reload()

    self.assertEqual(instance, instance_alt)
    self.assertEqual(instance.display_name, instance_alt.display_name)
    self.assertEqual(instance.type_, instance_alt.type_)

    clusters, failed_locations = instance_alt.list_clusters()
    self.assertEqual(failed_locations, [])

    clusters.sort(key=lambda x: x.name)
    alt_cluster_1, alt_cluster_2 = clusters

    self.assertEqual(cluster_1.location_id, alt_cluster_1.location_id)
    self.assertEqual(alt_cluster_1.state, enums.Cluster.State.READY)
    self.assertEqual(cluster_1.serve_nodes, alt_cluster_1.serve_nodes)
    self.assertEqual(
        cluster_1.default_storage_type, alt_cluster_1.default_storage_type
    )
    self.assertEqual(cluster_2.location_id, alt_cluster_2.location_id)
    self.assertEqual(alt_cluster_2.state, enums.Cluster.State.READY)
    self.assertEqual(cluster_2.serve_nodes, alt_cluster_2.serve_nodes)
    self.assertEqual(
        cluster_2.default_storage_type, alt_cluster_2.default_storage_type
    )

    # Test list clusters in project via 'client.list_clusters'
    clusters, failed_locations = Config.CLIENT.list_clusters()
    self.assertFalse(failed_locations)
    found = set([cluster.name for cluster in clusters])
    self.assertTrue(
        {alt_cluster_1.name, alt_cluster_2.name, Config.CLUSTER.name}.issubset(
            found
        )
    )

    temp_table_id = "test-get-cluster-states"
    temp_table = instance.table(temp_table_id)
  temp_table.create()

tests/system.py:336:


google/cloud/bigtable/table.py:395: in create
table_client.create_table(
google/cloud/bigtable_admin_v2/services/bigtable_table_admin/client.py:542: in create_table
response = rpc(request, retry=retry, timeout=timeout, metadata=metadata,)
.nox/system-3-8/lib/python3.8/site-packages/google/api_core/gapic_v1/method.py:145: in call
return wrapped_func(*args, **kwargs)
.nox/system-3-8/lib/python3.8/site-packages/google/api_core/grpc_helpers.py:69: in error_remapped_callable
six.raise_from(exceptions.from_grpc_error(exc), exc)


value = None
from_value = <_InactiveRpcError of RPC that terminated with:
status = StatusCode.UNAVAILABLE
details = "The service is currently .../core/lib/surface/call.cc","file_line":1069,"grpc_message":"The service is currently unavailable.","grpc_status":14}"

???
E google.api_core.exceptions.ServiceUnavailable: 503 The service is currently unavailable.

:3: ServiceUnavailable

Activity

  1. added
    flakybot: issueAn issue filed by the Flaky Bot. Should not be added manually.
    priority: p1Important issue which blocks shipping the next release. Will be fixed prior to next release.
    type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.
    on Jul 20, 2021
  2. added
    type: processA process-related concern. May include testing, release, or the like.
    and removed
    priority: p1Important issue which blocks shipping the next release. Will be fixed prior to next release.
    type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.
    on Jul 20, 2021
  3. self-assigned this
    on Jul 20, 2021
  4. added a commit that references this issue on Jul 20, 2021
    0089740
  5. flaky-bot commented on Jul 20, 2021

    @flaky-bot
    Author

    Test passed for commit 7040e11 (Build Status, Sponge)! Closing this issue.

  6. added a commit that references this issue on Aug 11, 2021
    b73793c
  7. added 3 commits that reference this issue on Sep 14, 2021
    bb0ec8c
    de1f8a0
    83958df
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

api: bigtableIssues related to the googleapis/python-bigtable API.flakybot: issueAn issue filed by the Flaky Bot. Should not be added manually.type: processA process-related concern. May include testing, release, or the like.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions