Commit 4d8fb73c
Changed files (2)
src
openai
tests
src/openai/_base_client.py
@@ -690,7 +690,8 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
if retry_after is not None and 0 < retry_after <= 60:
return retry_after
- nb_retries = max_retries - remaining_retries
+ # Also cap retry count to 1000 to avoid any potential overflows with `pow`
+ nb_retries = min(max_retries - remaining_retries, 1000)
# Apply exponential backoff, but not more than the max.
sleep_seconds = min(INITIAL_RETRY_DELAY * pow(2.0, nb_retries), MAX_RETRY_DELAY)
tests/test_client.py
@@ -697,6 +697,7 @@ class TestOpenAI:
[3, "", 0.5],
[2, "", 0.5 * 2.0],
[1, "", 0.5 * 4.0],
+ [-1100, "", 7.8], # test large number potentially overflowing
],
)
@mock.patch("time.time", mock.MagicMock(return_value=1696004797))
@@ -1553,6 +1554,7 @@ class TestAsyncOpenAI:
[3, "", 0.5],
[2, "", 0.5 * 2.0],
[1, "", 0.5 * 4.0],
+ [-1100, "", 7.8], # test large number potentially overflowing
],
)
@mock.patch("time.time", mock.MagicMock(return_value=1696004797))