diff --git a/src/bulk/common.ts b/src/bulk/common.ts index 70df6544504..e9784b6ca7c 100644 --- a/src/bulk/common.ts +++ b/src/bulk/common.ts @@ -285,7 +285,7 @@ export class BulkWriteResult { if (i === 0) errmsg = errmsg + ' and '; } - return new WriteConcernError({ errmsg, code: MONGODB_ERROR_CODES.WriteConcernFailed }); + return new WriteConcernError({ errmsg, code: MONGODB_ERROR_CODES.WriteConcernTimeout }); } } diff --git a/src/error.ts b/src/error.ts index 2dc382ed4c2..31ae5c9c4d8 100644 --- a/src/error.ts +++ b/src/error.ts @@ -56,7 +56,8 @@ export const MONGODB_ERROR_CODES = Object.freeze({ FailedToSatisfyReadPreference: 133, CursorNotFound: 43, LegacyNotPrimary: 10058, - WriteConcernFailed: 64, + // WriteConcernTimeout is WriteConcernFailed on pre-8.1 servers + WriteConcernTimeout: 64, NamespaceNotFound: 26, IllegalOperation: 20, MaxTimeMSExpired: 50, diff --git a/test/spec/retryable-writes/unified/insertOne-serverErrors.json b/test/spec/retryable-writes/unified/insertOne-serverErrors.json index f404adcaf42..8edafb7029b 100644 --- a/test/spec/retryable-writes/unified/insertOne-serverErrors.json +++ b/test/spec/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/spec/retryable-writes/unified/insertOne-serverErrors.yml b/test/spec/retryable-writes/unified/insertOne-serverErrors.yml index 95fa71ec790..6fd43365d8e 100644 --- a/test/spec/retryable-writes/unified/insertOne-serverErrors.yml +++ b/test/spec/retryable-writes/unified/insertOne-serverErrors.yml @@ -339,7 +339,7 @@ tests: - { _id: 2, x: 22 } - { _id: 3, x: 33 } # The write was still applied. - - description: 'InsertOne fails after WriteConcernError WriteConcernFailed' + description: 'InsertOne fails after WriteConcernError WriteConcernTimeout' operations: - name: failPoint @@ -353,7 +353,6 @@ tests: failCommands: [ insert ] writeConcernError: code: 64 - codeName: WriteConcernFailed errmsg: 'waiting for replication timed out' errInfo: wtimeout: true diff --git a/test/spec/transactions-convenient-api/unified/commit-writeconcernerror.json b/test/spec/transactions-convenient-api/unified/commit-writeconcernerror.json index a6f6e6bd7fa..568f7ede425 100644 --- a/test/spec/transactions-convenient-api/unified/commit-writeconcernerror.json +++ b/test/spec/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/spec/transactions-convenient-api/unified/commit-writeconcernerror.yml b/test/spec/transactions-convenient-api/unified/commit-writeconcernerror.yml index 44877fa008f..408f57fde1a 100644 --- a/test/spec/transactions-convenient-api/unified/commit-writeconcernerror.yml +++ b/test/spec/transactions-convenient-api/unified/commit-writeconcernerror.yml @@ -32,7 +32,7 @@ initialData: tests: - - description: commitTransaction is retried after WriteConcernFailed timeout error + description: commitTransaction is retried after WriteConcernTimeout timeout error operations: - name: failPoint object: testRunner @@ -47,7 +47,6 @@ tests: # with writeConcernError (see: SERVER-39292) writeConcernError: code: 64 - codeName: WriteConcernFailed errmsg: "waiting for replication timed out" errInfo: { wtimeout: true } - &operation @@ -126,10 +125,10 @@ tests: - { _id: 1 } - # This test configures the fail point to return an error with the - # WriteConcernFailed code but without errInfo that would identify it as a + # WriteConcernTimeout code but without errInfo that would identify it as a # wtimeout error. This tests that drivers do not assume that all - # WriteConcernFailed errors are due to a replication timeout. - description: commitTransaction is retried after WriteConcernFailed non-timeout error + # WriteConcernTimeout errors are due to a replication timeout. + description: commitTransaction is retried after WriteConcernTimeout non-timeout error operations: - name: failPoint object: testRunner @@ -144,7 +143,6 @@ tests: # with writeConcernError (see: SERVER-39292) writeConcernError: code: 64 - codeName: WriteConcernFailed errmsg: "multiple errors reported" - *operation expectEvents: *expectEvents_with_retries diff --git a/test/spec/transactions/unified/error-labels.json b/test/spec/transactions/unified/error-labels.json index be8df10ed34..74ed750b070 100644 --- a/test/spec/transactions/unified/error-labels.json +++ b/test/spec/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 diff --git a/test/spec/transactions/unified/error-labels.yml b/test/spec/transactions/unified/error-labels.yml index 6eb8d7d75ef..64e241d55d0 100644 --- a/test/spec/transactions/unified/error-labels.yml +++ b/test/spec/transactions/unified/error-labels.yml @@ -688,7 +688,7 @@ tests: databaseName: *database_name documents: [] - - description: 'add UnknownTransactionCommitResult label to writeConcernError WriteConcernFailed' + description: 'add UnknownTransactionCommitResult label to writeConcernError WriteConcernTimeout' operations: - object: testRunner @@ -702,7 +702,7 @@ tests: failCommands: - commitTransaction writeConcernError: - code: 64 # WriteConcernFailed without wtimeout + code: 64 # WriteConcernTimeout without wtimeout errmsg: 'multiple errors reported' - object: *session0 @@ -782,7 +782,7 @@ tests: documents: - { _id: 1 } - - description: 'add UnknownTransactionCommitResult label to writeConcernError WriteConcernFailed with wtimeout' + description: 'add UnknownTransactionCommitResult label to writeConcernError WriteConcernTimeout with wtimeout' operations: - object: testRunner @@ -797,7 +797,6 @@ tests: - commitTransaction writeConcernError: code: 64 - codeName: WriteConcernFailed errmsg: 'waiting for replication timed out' errInfo: wtimeout: true