The short timeout should be specific to the storage client's needs.

This commit is contained in:
Itamar Turner-Trauring 2022-11-15 14:02:19 -05:00
parent 8d678fe3de
commit d1287df629
2 changed files with 7 additions and 6 deletions

View File

@ -415,10 +415,7 @@ class StorageClientGeneral(object):
Return the version metadata for the server.
"""
url = self._client.relative_url("/storage/v1/version")
# 1. Getting the version should never take particularly long.
# 2. Clients rely on the version command for liveness checks of servers.
# Thus, a short timeout.
response = yield self._client.request("GET", url, timeout=5)
response = yield self._client.request("GET", url)
decoded_response = yield _decode_cbor(response, _SCHEMAS["get_version"])
returnValue(decoded_response)

View File

@ -944,12 +944,13 @@ class HTTPNativeStorageServer(service.MultiService):
"connected".
"""
def __init__(self, server_id: bytes, announcement):
def __init__(self, server_id: bytes, announcement, reactor=reactor):
service.MultiService.__init__(self)
assert isinstance(server_id, bytes)
self._server_id = server_id
self.announcement = announcement
self._on_status_changed = ObserverList()
self._reactor = reactor
furl = announcement["anonymous-storage-FURL"].encode("utf-8")
(
self._nickname,
@ -1063,7 +1064,10 @@ class HTTPNativeStorageServer(service.MultiService):
self._connect()
def _connect(self):
return self._istorage_server.get_version().addCallbacks(
result = self._istorage_server.get_version()
# Set a short timeout since we're relying on this for server liveness.
result.addTimeout(5, self._reactor)
result.addCallbacks(
self._got_version,
self._failed_to_connect
)