Skip to content

Commit 0d68069

Browse files
Merge pull request #117 from runpod/logging-transparency
Logging transparency
2 parents f361275 + 1375e41 commit 0d68069

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

runpod/serverless/modules/rp_http.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ async def _handle_result(session, job_data, job, url_template, log_message):
4949
log.debug(f"{job['id']} | {log_message}")
5050

5151
except aiohttp.ClientError as err:
52-
log.error(f"{job['id']} | Client response error while transmitting job. | {err}")
52+
log.error(f"{job['id']} | Failed to return job results. | {err}")
5353

5454
except (TypeError, RuntimeError) as err:
5555
log.error(f"Error while returning job result {job['id']}: {err}")

runpod/serverless/modules/rp_job.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
"""
22
Job related helpers.
33
"""
4+
# pylint: disable=too-many-branches
45

6+
import sys
57
import inspect
68
from typing import Any, Callable, Dict, Generator, Optional, Union
79

@@ -55,7 +57,11 @@ async def get_job(session: ClientSession, retry=True) -> Optional[Dict[str, Any]
5557
return None
5658
continue
5759

58-
if response.status not in [200, 400]:
60+
if response.status == 400:
61+
log.info("Received 400 status, stopping worker.")
62+
sys.exit(0)
63+
64+
if response.status != 200:
5965
log.error(f"Failed to get job, status code: {response.status}")
6066
if not retry:
6167
return None

tests/test_serverless/test_modules/test_job.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,24 @@ async def test_get_job_204(self):
6262
assert job is None
6363
assert mock_session_204.get.call_count == 1
6464

65+
async def test_get_job_400(self):
66+
'''
67+
Test the get_job function with a 400 response
68+
'''
69+
# 400 Mock
70+
response_400 = Mock(ClientResponse)
71+
response_400.status = 400
72+
73+
with patch("runpod.serverless.modules.rp_job.sys.exit") as mock_exit, \
74+
patch("aiohttp.ClientSession") as mock_session_400, \
75+
patch("runpod.serverless.modules.rp_job.JOB_GET_URL", "http://mock.url"):
76+
77+
mock_session_400.get.return_value.__aenter__.return_value = response_400
78+
job = await rp_job.get_job(mock_session_400, retry=False)
79+
80+
assert job is None
81+
assert mock_exit.call_count == 1
82+
6583
async def test_get_job_500(self):
6684
'''
6785
Tests the get_job function with a 500 response

0 commit comments

Comments
 (0)