This is an automated email from the ASF dual-hosted git repository.
vatamane pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/couchdb.git
The following commit(s) were added to refs/heads/main by this push:
new a39917c47 Improve retries in dev/run cluster setup
a39917c47 is described below
commit a39917c47541c94ceebef825aaba194b254bbd25
Author: Nick Vatamaniuc <[email protected]>
AuthorDate: Sat Jan 6 16:32:29 2024 -0500
Improve retries in dev/run cluster setup
Noticed we still get connection refused errors for nouveau tests
cluster setup tests. Try to handle retries for connection errors which
are thrown not just due to a status code. After retries are exhausted,
then fail as before.
---
dev/run | 28 +++++++++++++++++-----------
1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/dev/run b/dev/run
index f4b689929..078bb14b5 100755
--- a/dev/run
+++ b/dev/run
@@ -1104,17 +1104,23 @@ def try_request(
):
while True:
conn = httpclient.HTTPConnection(host, port)
- if headers is not None:
- conn.request(meth, path, body=body, headers=headers)
- else:
- conn.request(meth, path, body=body)
- resp = conn.getresponse()
- if resp.status in success_codes:
- result = (resp.status, resp.read())
- resp.close()
- return result
- elif retries <= 0:
- assert resp.status in success_codes, "%s%s" % (error, resp.read())
+ try:
+ if headers is not None:
+ conn.request(meth, path, body=body, headers=headers)
+ else:
+ conn.request(meth, path, body=body)
+ resp = conn.getresponse()
+ if resp.status in success_codes:
+ result = (resp.status, resp.read())
+ resp.close()
+ return result
+ elif retries <= 0:
+ assert resp.status in success_codes, "%s%s" % (error,
resp.read())
+ except Exception as e:
+ if retries <= 0:
+ print("Connection failed %s %s" % (e, error))
+ raise e
+ print("Retrying ... %s " % e)
retries -= 1
time.sleep(retry_dt)