Skip to content

Commit 1252818

Browse files
committedJul 11, 2024
pw: retry check posts
When patchwork gets slow everything fails. Try 2 times before crashing. Signed-off-by: Jakub Kicinski <[email protected]>
1 parent a331727 commit 1252818

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed
 

‎pw/patchwork.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import requests
1010
from requests.adapters import HTTPAdapter
1111
from requests.packages.urllib3.util.retry import Retry
12+
import time
1213
import urllib
1314

1415
import core
@@ -125,7 +126,10 @@ def _post(self, req, headers, data, api='1.1'):
125126
core.log("Headers", headers)
126127
core.log("Data", data)
127128
core.log("Response", ret)
128-
core.log("Response data", ret.json())
129+
try:
130+
core.log("Response data", ret.json())
131+
except json.decoder.JSONDecodeError:
132+
core.log("Response data", ret.content.decode())
129133
finally:
130134
core.log_end_sec()
131135

@@ -189,6 +193,10 @@ def post_check(self, patch, name, state, url, desc):
189193
}
190194

191195
r = self._post(f'patches/{patch}/checks/', headers=headers, data=data)
196+
if r.status_code == 502 or r.status_code == 504:
197+
# Timeout, let's wait 30 sec and retry, POST isn't retried by the lib.
198+
time.sleep(30)
199+
r = self._post(f'patches/{patch}/checks/', headers=headers, data=data)
192200
if r.status_code != 201:
193201
raise PatchworkPostException(r)
194202

0 commit comments

Comments
 (0)
Please sign in to comment.