From 6028f1cc2a3e8b0f68c0b9a90f47934243b728cc Mon Sep 17 00:00:00 2001 From: Eirini Koutsaniti Date: Fri, 20 Dec 2024 13:51:04 +0100 Subject: [PATCH 1/3] Add simple error checking in httpjson --- reframe/core/logging.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/reframe/core/logging.py b/reframe/core/logging.py index 74fc7b79b..4c3d351f5 100644 --- a/reframe/core/logging.py +++ b/reframe/core/logging.py @@ -689,10 +689,15 @@ def emit(self, record): return try: - requests.post( + response = requests.post( self._url, data=json_record, headers=self._headers ) + if response.status_code != 200: + raise LoggingError( + f'logging failed: HTTP response code ' + f'{response.status_code}' + ) except requests.exceptions.RequestException as e: raise LoggingError('logging failed') from e From 120cf8763bb73b26752ea81be30c68aca3ffea61 Mon Sep 17 00:00:00 2001 From: Eirini Koutsaniti Date: Fri, 20 Dec 2024 14:28:02 +0100 Subject: [PATCH 2/3] Handle 429 in httpjson logger --- reframe/core/logging.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/reframe/core/logging.py b/reframe/core/logging.py index 4c3d351f5..45250d3d8 100644 --- a/reframe/core/logging.py +++ b/reframe/core/logging.py @@ -689,11 +689,18 @@ def emit(self, record): return try: - response = requests.post( - self._url, data=json_record, - headers=self._headers - ) - if response.status_code != 200: + while True: + response = requests.post( + self._url, data=json_record, + headers=self._headers + ) + if response.status_code == 200: + break + + if response.status_code == 429: + time.sleep(1) + continue + raise LoggingError( f'logging failed: HTTP response code ' f'{response.status_code}' From a28d273a1e5abf2a03f49b9f497e05df1f8be220 Mon Sep 17 00:00:00 2001 From: Eirini Koutsaniti Date: Fri, 20 Dec 2024 16:26:29 +0100 Subject: [PATCH 3/3] Fix import --- reframe/core/logging.py | 1 - 1 file changed, 1 deletion(-) diff --git a/reframe/core/logging.py b/reframe/core/logging.py index 45250d3d8..5c00dc130 100644 --- a/reframe/core/logging.py +++ b/reframe/core/logging.py @@ -680,7 +680,6 @@ def emit(self, record): return if self._debug: - import time ts = int(time.time() * 1_000) dump_file = f'httpjson_record_{ts}.json' with open(dump_file, 'w') as fp: