From 47e7a79cf1ce00360a5615de124790abace31a71 Mon Sep 17 00:00:00 2001 From: Noah Stapp Date: Mon, 24 Mar 2025 10:45:09 -0400 Subject: [PATCH 1/2] PYTHON-5135 - Rename WriteConcernFailed code name to WriteConcernTimedOut --- pymongo/asynchronous/client_session.py | 4 ++-- pymongo/synchronous/client_session.py | 4 ++-- test/retryable_writes/unified/insertOne-serverErrors.json | 3 +-- .../unified/commit-writeconcernerror.json | 6 ++---- test/transactions/unified/error-labels.json | 5 ++--- 5 files changed, 9 insertions(+), 13 deletions(-) diff --git a/pymongo/asynchronous/client_session.py b/pymongo/asynchronous/client_session.py index 98dd6a4706..e7fc527b72 100644 --- a/pymongo/asynchronous/client_session.py +++ b/pymongo/asynchronous/client_session.py @@ -458,10 +458,10 @@ def _max_time_expired_error(exc: PyMongoError) -> bool: # From the transactions spec, all the retryable writes errors plus -# WriteConcernFailed. +# WriteConcernTimedOut. _UNKNOWN_COMMIT_ERROR_CODES: frozenset = _RETRYABLE_ERROR_CODES | frozenset( [ - 64, # WriteConcernFailed + 64, # WriteConcernTimedOut 50, # MaxTimeMSExpired ] ) diff --git a/pymongo/synchronous/client_session.py b/pymongo/synchronous/client_session.py index 60c15a9ec0..bea8bdf248 100644 --- a/pymongo/synchronous/client_session.py +++ b/pymongo/synchronous/client_session.py @@ -457,10 +457,10 @@ def _max_time_expired_error(exc: PyMongoError) -> bool: # From the transactions spec, all the retryable writes errors plus -# WriteConcernFailed. +# WriteConcernTimedOut. _UNKNOWN_COMMIT_ERROR_CODES: frozenset = _RETRYABLE_ERROR_CODES | frozenset( [ - 64, # WriteConcernFailed + 64, # WriteConcernTimedOut 50, # MaxTimeMSExpired ] ) diff --git a/test/retryable_writes/unified/insertOne-serverErrors.json b/test/retryable_writes/unified/insertOne-serverErrors.json index f404adcaf4..8edafb7029 100644 --- a/test/retryable_writes/unified/insertOne-serverErrors.json +++ b/test/retryable_writes/unified/insertOne-serverErrors.json @@ -739,7 +739,7 @@ ] }, { - "description": "InsertOne fails after WriteConcernError WriteConcernFailed", + "description": "InsertOne fails after WriteConcernError WriteConcernTimeout", "operations": [ { "name": "failPoint", @@ -757,7 +757,6 @@ ], "writeConcernError": { "code": 64, - "codeName": "WriteConcernFailed", "errmsg": "waiting for replication timed out", "errInfo": { "wtimeout": true diff --git a/test/transactions-convenient-api/unified/commit-writeconcernerror.json b/test/transactions-convenient-api/unified/commit-writeconcernerror.json index a6f6e6bd7f..568f7ede42 100644 --- a/test/transactions-convenient-api/unified/commit-writeconcernerror.json +++ b/test/transactions-convenient-api/unified/commit-writeconcernerror.json @@ -56,7 +56,7 @@ ], "tests": [ { - "description": "commitTransaction is retried after WriteConcernFailed timeout error", + "description": "commitTransaction is retried after WriteConcernTimeout timeout error", "operations": [ { "name": "failPoint", @@ -74,7 +74,6 @@ ], "writeConcernError": { "code": 64, - "codeName": "WriteConcernFailed", "errmsg": "waiting for replication timed out", "errInfo": { "wtimeout": true @@ -236,7 +235,7 @@ ] }, { - "description": "commitTransaction is retried after WriteConcernFailed non-timeout error", + "description": "commitTransaction is retried after WriteConcernTimeout non-timeout error", "operations": [ { "name": "failPoint", @@ -254,7 +253,6 @@ ], "writeConcernError": { "code": 64, - "codeName": "WriteConcernFailed", "errmsg": "multiple errors reported" } } diff --git a/test/transactions/unified/error-labels.json b/test/transactions/unified/error-labels.json index be8df10ed3..74ed750b07 100644 --- a/test/transactions/unified/error-labels.json +++ b/test/transactions/unified/error-labels.json @@ -1176,7 +1176,7 @@ ] }, { - "description": "add UnknownTransactionCommitResult label to writeConcernError WriteConcernFailed", + "description": "add UnknownTransactionCommitResult label to writeConcernError WriteConcernTimeout", "operations": [ { "object": "testRunner", @@ -1338,7 +1338,7 @@ ] }, { - "description": "add UnknownTransactionCommitResult label to writeConcernError WriteConcernFailed with wtimeout", + "description": "add UnknownTransactionCommitResult label to writeConcernError WriteConcernTimeout with wtimeout", "operations": [ { "object": "testRunner", @@ -1356,7 +1356,6 @@ ], "writeConcernError": { "code": 64, - "codeName": "WriteConcernFailed", "errmsg": "waiting for replication timed out", "errInfo": { "wtimeout": true From 82ab6e262c2b9e05d00dfc1e90aa78be0c7f3a19 Mon Sep 17 00:00:00 2001 From: Noah Stapp Date: Mon, 24 Mar 2025 14:06:12 -0400 Subject: [PATCH 2/2] Fix typo --- pymongo/asynchronous/client_session.py | 4 ++-- pymongo/synchronous/client_session.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pymongo/asynchronous/client_session.py b/pymongo/asynchronous/client_session.py index e7fc527b72..b808684dd4 100644 --- a/pymongo/asynchronous/client_session.py +++ b/pymongo/asynchronous/client_session.py @@ -458,10 +458,10 @@ def _max_time_expired_error(exc: PyMongoError) -> bool: # From the transactions spec, all the retryable writes errors plus -# WriteConcernTimedOut. +# WriteConcernTimeout. _UNKNOWN_COMMIT_ERROR_CODES: frozenset = _RETRYABLE_ERROR_CODES | frozenset( [ - 64, # WriteConcernTimedOut + 64, # WriteConcernTimeout 50, # MaxTimeMSExpired ] ) diff --git a/pymongo/synchronous/client_session.py b/pymongo/synchronous/client_session.py index bea8bdf248..aaf2d7574f 100644 --- a/pymongo/synchronous/client_session.py +++ b/pymongo/synchronous/client_session.py @@ -457,10 +457,10 @@ def _max_time_expired_error(exc: PyMongoError) -> bool: # From the transactions spec, all the retryable writes errors plus -# WriteConcernTimedOut. +# WriteConcernTimeout. _UNKNOWN_COMMIT_ERROR_CODES: frozenset = _RETRYABLE_ERROR_CODES | frozenset( [ - 64, # WriteConcernTimedOut + 64, # WriteConcernTimeout 50, # MaxTimeMSExpired ] )