Skip to content

Commit 2cd3c18

Browse files
committed
Merge branch 'backpressure' of github.com:mongodb/mongo-python-driver into DRIVERS-3218
2 parents ded90b0 + c458379 commit 2cd3c18

File tree

6 files changed

+30
-30
lines changed

6 files changed

+30
-30
lines changed

pymongo/asynchronous/helpers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,11 +177,11 @@ async def inner(self: Any, *args: Any, **kwargs: Any) -> Any:
177177
await retry_policy.record_success(retry=attempt > 0)
178178
return res
179179
except PyMongoError as exc:
180-
if not exc.has_error_label("Retryable"):
180+
if not exc.has_error_label("RetryableError"):
181181
raise
182182
attempt += 1
183183
delay = 0
184-
if exc.has_error_label("SystemOverloaded"):
184+
if exc.has_error_label("SystemOverloadedError"):
185185
delay = retry_policy.backoff(attempt)
186186
if not await retry_policy.should_retry(attempt, delay):
187187
raise

pymongo/asynchronous/mongo_client.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2802,8 +2802,8 @@ async def run(self) -> T:
28022802
if isinstance(exc, (ConnectionFailure, OperationFailure)):
28032803
# ConnectionFailures do not supply a code property
28042804
exc_code = getattr(exc, "code", None)
2805-
always_retryable = exc.has_error_label("Retryable")
2806-
overloaded = exc.has_error_label("SystemOverloaded")
2805+
always_retryable = exc.has_error_label("RetryableError")
2806+
overloaded = exc.has_error_label("SystemOverloadedError")
28072807
if not always_retryable and (
28082808
self._is_not_eligible_for_retry()
28092809
or (
@@ -2825,8 +2825,8 @@ async def run(self) -> T:
28252825
):
28262826
exc_to_check = exc.error
28272827
retryable_write_label = exc_to_check.has_error_label("RetryableWriteError")
2828-
always_retryable = exc_to_check.has_error_label("Retryable")
2829-
overloaded = exc_to_check.has_error_label("SystemOverloaded")
2828+
always_retryable = exc_to_check.has_error_label("RetryableError")
2829+
overloaded = exc_to_check.has_error_label("SystemOverloadedError")
28302830
if not self._retryable and not always_retryable:
28312831
raise
28322832
if retryable_write_label or always_retryable:

pymongo/synchronous/helpers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,11 +177,11 @@ def inner(self: Any, *args: Any, **kwargs: Any) -> Any:
177177
retry_policy.record_success(retry=attempt > 0)
178178
return res
179179
except PyMongoError as exc:
180-
if not exc.has_error_label("Retryable"):
180+
if not exc.has_error_label("RetryableError"):
181181
raise
182182
attempt += 1
183183
delay = 0
184-
if exc.has_error_label("SystemOverloaded"):
184+
if exc.has_error_label("SystemOverloadedError"):
185185
delay = retry_policy.backoff(attempt)
186186
if not retry_policy.should_retry(attempt, delay):
187187
raise

pymongo/synchronous/mongo_client.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2792,8 +2792,8 @@ def run(self) -> T:
27922792
if isinstance(exc, (ConnectionFailure, OperationFailure)):
27932793
# ConnectionFailures do not supply a code property
27942794
exc_code = getattr(exc, "code", None)
2795-
always_retryable = exc.has_error_label("Retryable")
2796-
overloaded = exc.has_error_label("SystemOverloaded")
2795+
always_retryable = exc.has_error_label("RetryableError")
2796+
overloaded = exc.has_error_label("SystemOverloadedError")
27972797
if not always_retryable and (
27982798
self._is_not_eligible_for_retry()
27992799
or (
@@ -2815,8 +2815,8 @@ def run(self) -> T:
28152815
):
28162816
exc_to_check = exc.error
28172817
retryable_write_label = exc_to_check.has_error_label("RetryableWriteError")
2818-
always_retryable = exc_to_check.has_error_label("Retryable")
2819-
overloaded = exc_to_check.has_error_label("SystemOverloaded")
2818+
always_retryable = exc_to_check.has_error_label("RetryableError")
2819+
overloaded = exc_to_check.has_error_label("SystemOverloadedError")
28202820
if not self._retryable and not always_retryable:
28212821
raise
28222822
if retryable_write_label or always_retryable:

test/asynchronous/test_backpressure.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
"data": {
4343
"failCommands": ["find", "insert", "update"],
4444
"errorCode": 462, # IngressRequestRateLimitExceeded
45-
"errorLabels": ["Retryable"],
45+
"errorLabels": ["RetryableError"],
4646
},
4747
}
4848

@@ -67,7 +67,7 @@ async def test_retry_overload_error_command(self):
6767
with self.assertRaises(PyMongoError) as error:
6868
await self.db.command("find", "t")
6969

70-
self.assertIn("Retryable", str(error.exception))
70+
self.assertIn("RetryableError", str(error.exception))
7171

7272
@async_client_context.require_failCommand_appName
7373
async def test_retry_overload_error_find(self):
@@ -86,7 +86,7 @@ async def test_retry_overload_error_find(self):
8686
with self.assertRaises(PyMongoError) as error:
8787
await self.db.t.find_one()
8888

89-
self.assertIn("Retryable", str(error.exception))
89+
self.assertIn("RetryableError", str(error.exception))
9090

9191
@async_client_context.require_failCommand_appName
9292
async def test_retry_overload_error_insert_one(self):
@@ -105,12 +105,12 @@ async def test_retry_overload_error_insert_one(self):
105105
with self.assertRaises(PyMongoError) as error:
106106
await self.db.t.find_one()
107107

108-
self.assertIn("Retryable", str(error.exception))
108+
self.assertIn("RetryableError", str(error.exception))
109109

110110
@async_client_context.require_failCommand_appName
111111
async def test_retry_overload_error_update_many(self):
112112
# Even though update_many is not a retryable write operation, it will
113-
# still be retried via the "Retryable" error label.
113+
# still be retried via the "RetryableError" error label.
114114
await self.db.t.insert_one({"x": 1})
115115

116116
# Ensure command is retried on overload error.
@@ -126,7 +126,7 @@ async def test_retry_overload_error_update_many(self):
126126
with self.assertRaises(PyMongoError) as error:
127127
await self.db.t.update_many({}, {"$set": {"x": 2}})
128128

129-
self.assertIn("Retryable", str(error.exception))
129+
self.assertIn("RetryableError", str(error.exception))
130130

131131
@async_client_context.require_failCommand_appName
132132
async def test_retry_overload_error_getMore(self):
@@ -140,7 +140,7 @@ async def test_retry_overload_error_getMore(self):
140140
"data": {
141141
"failCommands": ["getMore"],
142142
"errorCode": 462, # IngressRequestRateLimitExceeded
143-
"errorLabels": ["Retryable"],
143+
"errorLabels": ["RetryableError"],
144144
},
145145
}
146146
cursor = coll.find(batch_size=2)
@@ -157,7 +157,7 @@ async def test_retry_overload_error_getMore(self):
157157
with self.assertRaises(PyMongoError) as error:
158158
await cursor.to_list()
159159

160-
self.assertIn("Retryable", str(error.exception))
160+
self.assertIn("RetryableError", str(error.exception))
161161

162162
@async_client_context.require_failCommand_appName
163163
async def test_limit_retry_command(self):
@@ -179,7 +179,7 @@ async def test_limit_retry_command(self):
179179
with self.assertRaises(PyMongoError) as error:
180180
await db.command("find", "t")
181181

182-
self.assertIn("Retryable", str(error.exception))
182+
self.assertIn("RetryableError", str(error.exception))
183183

184184

185185
class TestRetryPolicy(AsyncPyMongoTestCase):

test/test_backpressure.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
"data": {
4343
"failCommands": ["find", "insert", "update"],
4444
"errorCode": 462, # IngressRequestRateLimitExceeded
45-
"errorLabels": ["Retryable"],
45+
"errorLabels": ["RetryableError"],
4646
},
4747
}
4848

@@ -67,7 +67,7 @@ def test_retry_overload_error_command(self):
6767
with self.assertRaises(PyMongoError) as error:
6868
self.db.command("find", "t")
6969

70-
self.assertIn("Retryable", str(error.exception))
70+
self.assertIn("RetryableError", str(error.exception))
7171

7272
@client_context.require_failCommand_appName
7373
def test_retry_overload_error_find(self):
@@ -86,7 +86,7 @@ def test_retry_overload_error_find(self):
8686
with self.assertRaises(PyMongoError) as error:
8787
self.db.t.find_one()
8888

89-
self.assertIn("Retryable", str(error.exception))
89+
self.assertIn("RetryableError", str(error.exception))
9090

9191
@client_context.require_failCommand_appName
9292
def test_retry_overload_error_insert_one(self):
@@ -105,12 +105,12 @@ def test_retry_overload_error_insert_one(self):
105105
with self.assertRaises(PyMongoError) as error:
106106
self.db.t.find_one()
107107

108-
self.assertIn("Retryable", str(error.exception))
108+
self.assertIn("RetryableError", str(error.exception))
109109

110110
@client_context.require_failCommand_appName
111111
def test_retry_overload_error_update_many(self):
112112
# Even though update_many is not a retryable write operation, it will
113-
# still be retried via the "Retryable" error label.
113+
# still be retried via the "RetryableError" error label.
114114
self.db.t.insert_one({"x": 1})
115115

116116
# Ensure command is retried on overload error.
@@ -126,7 +126,7 @@ def test_retry_overload_error_update_many(self):
126126
with self.assertRaises(PyMongoError) as error:
127127
self.db.t.update_many({}, {"$set": {"x": 2}})
128128

129-
self.assertIn("Retryable", str(error.exception))
129+
self.assertIn("RetryableError", str(error.exception))
130130

131131
@client_context.require_failCommand_appName
132132
def test_retry_overload_error_getMore(self):
@@ -140,7 +140,7 @@ def test_retry_overload_error_getMore(self):
140140
"data": {
141141
"failCommands": ["getMore"],
142142
"errorCode": 462, # IngressRequestRateLimitExceeded
143-
"errorLabels": ["Retryable"],
143+
"errorLabels": ["RetryableError"],
144144
},
145145
}
146146
cursor = coll.find(batch_size=2)
@@ -157,7 +157,7 @@ def test_retry_overload_error_getMore(self):
157157
with self.assertRaises(PyMongoError) as error:
158158
cursor.to_list()
159159

160-
self.assertIn("Retryable", str(error.exception))
160+
self.assertIn("RetryableError", str(error.exception))
161161

162162
@client_context.require_failCommand_appName
163163
def test_limit_retry_command(self):
@@ -179,7 +179,7 @@ def test_limit_retry_command(self):
179179
with self.assertRaises(PyMongoError) as error:
180180
db.command("find", "t")
181181

182-
self.assertIn("Retryable", str(error.exception))
182+
self.assertIn("RetryableError", str(error.exception))
183183

184184

185185
class TestRetryPolicy(PyMongoTestCase):

0 commit comments

Comments
 (0)