googleapis/python-datastore

tests.system.test_query: test_query_w_offset_w_timestamp_keys failed

flaky-bot opened this issue · 1 comments

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: da5215f
buildURL: Build Status, Sponge
status: failed

Test output
query_client = 
def test_query_w_offset_w_timestamp_keys(query_client):
    # See issue #4675
    max_all = 10000
    offset = 1
    max_offset = max_all - offset
    query = query_client.query(kind="timestamp_key")

    all_w_limit = list(query.fetch(limit=max_all))
    assert len(all_w_limit) == max_all
  offset_w_limit = list(query.fetch(offset=offset, limit=max_offset))

tests/system/test_query.py:208:


.nox/system-3-8-disable_grpc-true/lib/python3.8/site-packages/google/api_core/page_iterator.py:208: in _items_iter
for page in self._page_iter(increment=False):
.nox/system-3-8-disable_grpc-true/lib/python3.8/site-packages/google/api_core/page_iterator.py:250: in _page_iter
page = self._next_page()
google/cloud/datastore/query.py:607: in _next_page
response_pb = self.client._datastore_api.run_query(
google/cloud/datastore/_http.py:260: in run_query
return _rpc(
google/cloud/datastore/_http.py:168: in _rpc
response = _request(


http = <google.auth.transport.requests.AuthorizedSession object at 0x7f8b23b35f40>
project = 'precise-truck-742', method = 'runQuery'
data = b'\n\x00\x12\x13\x12\x11precise-truck-742\x1aQ\x1a\x0f\n\rtimestamp_key:9\n7\x121j\x13s~precise-truck-742r\x1a\x0b\x12\rtimestamp_key\x18\xd3\xb4\xcc\xf1\xf5\xd3\xdb\x02\x0c\x18\x00 \x00b\x03\x08\x9b\x18B\x11precise-truck-742'
base_url = 'https://datastore.googleapis.com'
client_info = <google.api_core.gapic_v1.client_info.ClientInfo object at 0x7f8b23c397c0>
retry = None, timeout = None

def _request(
    http, project, method, data, base_url, client_info, retry=None, timeout=None,
):
    """Make a request over the Http transport to the Cloud Datastore API.

    :type http: :class:`requests.Session`
    :param http: HTTP object to make requests.

    :type project: str
    :param project: The project to make the request for.

    :type method: str
    :param method: The API call method name (ie, ``runQuery``,
                   ``lookup``, etc)

    :type data: str
    :param data: The data to send with the API call.
                 Typically this is a serialized Protobuf string.

    :type base_url: str
    :param base_url: The base URL where the API lives.

    :type client_info: :class:`google.api_core.client_info.ClientInfo`
    :param client_info: used to generate user agent.

    :type retry: :class:`google.api_core.retry.Retry`
    :param retry: (Optional) retry policy for the request

    :type timeout: float or tuple(float, float)
    :param timeout: (Optional) timeout for the request

    :rtype: str
    :returns: The string response content from the API call.
    :raises: :class:`google.cloud.exceptions.GoogleCloudError` if the
             response code is not 200 OK.
    """
    user_agent = client_info.to_user_agent()
    headers = {
        "Content-Type": "application/x-protobuf",
        "User-Agent": user_agent,
        connection_module.CLIENT_INFO_HEADER: user_agent,
    }
    api_url = build_api_url(project, method, base_url)

    requester = http.request

    if retry is not None:
        requester = retry(requester)

    if timeout is not None:
        response = requester(
            url=api_url, method="POST", headers=headers, data=data, timeout=timeout,
        )
    else:
        response = requester(url=api_url, method="POST", headers=headers, data=data)

    if response.status_code != 200:
        error_status = status_pb2.Status.FromString(response.content)
      raise exceptions.from_http_status(
            response.status_code, error_status.message, errors=[error_status]
        )

E google.api_core.exceptions.ServiceUnavailable: 503 The datastore operation timed out, or the data was temporarily unavailable.

google/cloud/datastore/_http.py:113: ServiceUnavailable

Looks like this issue is flaky. 😟

I'm going to leave this open and stop commenting.

A human should fix and close this.


When run at the same commit (da5215f), this test passed in one build (Build Status, Sponge) and failed in another build (Build Status, Sponge).