mongodb 6.5.0 → 6.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -9
- package/lib/admin.js +9 -9
- package/lib/admin.js.map +1 -1
- package/lib/bson.js +33 -22
- package/lib/bson.js.map +1 -1
- package/lib/bulk/common.js +13 -12
- package/lib/bulk/common.js.map +1 -1
- package/lib/change_stream.js +28 -18
- package/lib/change_stream.js.map +1 -1
- package/lib/client-side-encryption/auto_encrypter.js +2 -2
- package/lib/client-side-encryption/auto_encrypter.js.map +1 -1
- package/lib/client-side-encryption/client_encryption.js +6 -6
- package/lib/client-side-encryption/client_encryption.js.map +1 -1
- package/lib/client-side-encryption/providers/aws.js +13 -10
- package/lib/client-side-encryption/providers/aws.js.map +1 -1
- package/lib/client-side-encryption/providers/azure.js +6 -3
- package/lib/client-side-encryption/providers/azure.js.map +1 -1
- package/lib/cmap/auth/aws_temporary_credentials.js +140 -0
- package/lib/cmap/auth/aws_temporary_credentials.js.map +1 -0
- package/lib/cmap/auth/gssapi.js +7 -6
- package/lib/cmap/auth/gssapi.js.map +1 -1
- package/lib/cmap/auth/mongodb_aws.js +8 -101
- package/lib/cmap/auth/mongodb_aws.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/aws_service_workflow.js +1 -1
- package/lib/cmap/auth/mongodb_oidc/aws_service_workflow.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/callback_lock_cache.js +2 -1
- package/lib/cmap/auth/mongodb_oidc/callback_lock_cache.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/service_workflow.js +1 -1
- package/lib/cmap/auth/mongodb_oidc/service_workflow.js.map +1 -1
- package/lib/cmap/auth/scram.js +2 -2
- package/lib/cmap/auth/scram.js.map +1 -1
- package/lib/cmap/commands.js +24 -111
- package/lib/cmap/commands.js.map +1 -1
- package/lib/cmap/connect.js +4 -4
- package/lib/cmap/connect.js.map +1 -1
- package/lib/cmap/connection.js +61 -36
- package/lib/cmap/connection.js.map +1 -1
- package/lib/cmap/connection_pool.js +22 -13
- package/lib/cmap/connection_pool.js.map +1 -1
- package/lib/cmap/handshake/client_metadata.js +2 -2
- package/lib/cmap/handshake/client_metadata.js.map +1 -1
- package/lib/cmap/wire_protocol/compression.js +8 -8
- package/lib/cmap/wire_protocol/compression.js.map +1 -1
- package/lib/cmap/wire_protocol/on_demand/document.js +218 -0
- package/lib/cmap/wire_protocol/on_demand/document.js.map +1 -0
- package/lib/cmap/wire_protocol/responses.js +184 -0
- package/lib/cmap/wire_protocol/responses.js.map +1 -0
- package/lib/collection.js +42 -38
- package/lib/collection.js.map +1 -1
- package/lib/connection_string.js +4 -6
- package/lib/connection_string.js.map +1 -1
- package/lib/cursor/abstract_cursor.js +76 -43
- package/lib/cursor/abstract_cursor.js.map +1 -1
- package/lib/cursor/aggregation_cursor.js +16 -33
- package/lib/cursor/aggregation_cursor.js.map +1 -1
- package/lib/cursor/find_cursor.js +36 -18
- package/lib/cursor/find_cursor.js.map +1 -1
- package/lib/cursor/run_command_cursor.js +3 -2
- package/lib/cursor/run_command_cursor.js.map +1 -1
- package/lib/db.js +15 -19
- package/lib/db.js.map +1 -1
- package/lib/deps.js +31 -26
- package/lib/deps.js.map +1 -1
- package/lib/encrypter.js +14 -5
- package/lib/encrypter.js.map +1 -1
- package/lib/error.js +4 -3
- package/lib/error.js.map +1 -1
- package/lib/gridfs/download.js +19 -14
- package/lib/gridfs/download.js.map +1 -1
- package/lib/gridfs/index.js.map +1 -1
- package/lib/gridfs/upload.js +6 -1
- package/lib/gridfs/upload.js.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/mongo_client.js +11 -7
- package/lib/mongo_client.js.map +1 -1
- package/lib/mongo_logger.js +3 -0
- package/lib/mongo_logger.js.map +1 -1
- package/lib/operations/aggregate.js +2 -1
- package/lib/operations/aggregate.js.map +1 -1
- package/lib/operations/command.js +1 -1
- package/lib/operations/command.js.map +1 -1
- package/lib/operations/create_collection.js +1 -1
- package/lib/operations/create_collection.js.map +1 -1
- package/lib/operations/delete.js +4 -3
- package/lib/operations/delete.js.map +1 -1
- package/lib/operations/drop.js +1 -1
- package/lib/operations/drop.js.map +1 -1
- package/lib/operations/execute_operation.js +23 -8
- package/lib/operations/execute_operation.js.map +1 -1
- package/lib/operations/find.js +4 -4
- package/lib/operations/find.js.map +1 -1
- package/lib/operations/get_more.js +2 -1
- package/lib/operations/get_more.js.map +1 -1
- package/lib/operations/indexes.js +29 -121
- package/lib/operations/indexes.js.map +1 -1
- package/lib/operations/insert.js +3 -3
- package/lib/operations/insert.js.map +1 -1
- package/lib/operations/kill_cursors.js +3 -1
- package/lib/operations/kill_cursors.js.map +1 -1
- package/lib/operations/list_collections.js +1 -1
- package/lib/operations/list_collections.js.map +1 -1
- package/lib/operations/list_databases.js +1 -1
- package/lib/operations/list_databases.js.map +1 -1
- package/lib/operations/operation.js.map +1 -1
- package/lib/operations/run_command.js +4 -2
- package/lib/operations/run_command.js.map +1 -1
- package/lib/operations/search_indexes/create.js.map +1 -1
- package/lib/operations/stats.js +1 -1
- package/lib/operations/stats.js.map +1 -1
- package/lib/operations/update.js +1 -1
- package/lib/operations/update.js.map +1 -1
- package/lib/sdam/common.js.map +1 -1
- package/lib/sdam/monitor.js +139 -42
- package/lib/sdam/monitor.js.map +1 -1
- package/lib/sdam/server.js +5 -15
- package/lib/sdam/server.js.map +1 -1
- package/lib/sdam/server_description.js +1 -0
- package/lib/sdam/server_description.js.map +1 -1
- package/lib/sdam/server_selection.js +1 -1
- package/lib/sdam/server_selection.js.map +1 -1
- package/lib/sdam/srv_polling.js +2 -1
- package/lib/sdam/srv_polling.js.map +1 -1
- package/lib/sdam/topology.js +67 -54
- package/lib/sdam/topology.js.map +1 -1
- package/lib/sdam/topology_description.js +10 -0
- package/lib/sdam/topology_description.js.map +1 -1
- package/lib/sessions.js +133 -93
- package/lib/sessions.js.map +1 -1
- package/lib/timeout.js +77 -0
- package/lib/timeout.js.map +1 -0
- package/lib/utils.js +61 -28
- package/lib/utils.js.map +1 -1
- package/mongodb.d.ts +150 -38
- package/package.json +16 -13
- package/src/admin.ts +9 -9
- package/src/bson.ts +14 -0
- package/src/bulk/common.ts +3 -2
- package/src/change_stream.ts +39 -30
- package/src/client-side-encryption/auto_encrypter.ts +2 -2
- package/src/client-side-encryption/client_encryption.ts +6 -6
- package/src/client-side-encryption/providers/aws.ts +17 -10
- package/src/client-side-encryption/providers/azure.ts +5 -3
- package/src/cmap/auth/aws_temporary_credentials.ts +169 -0
- package/src/cmap/auth/gssapi.ts +9 -11
- package/src/cmap/auth/mongodb_aws.ts +19 -126
- package/src/cmap/auth/mongodb_oidc/aws_service_workflow.ts +1 -1
- package/src/cmap/auth/mongodb_oidc/callback_lock_cache.ts +2 -1
- package/src/cmap/auth/mongodb_oidc/service_workflow.ts +1 -1
- package/src/cmap/auth/scram.ts +2 -2
- package/src/cmap/commands.ts +28 -132
- package/src/cmap/connect.ts +4 -4
- package/src/cmap/connection.ts +107 -43
- package/src/cmap/connection_pool.ts +32 -29
- package/src/cmap/handshake/client_metadata.ts +2 -5
- package/src/cmap/wire_protocol/compression.ts +11 -13
- package/src/cmap/wire_protocol/on_demand/document.ts +338 -0
- package/src/cmap/wire_protocol/responses.ts +237 -0
- package/src/collection.ts +87 -58
- package/src/connection_string.ts +9 -7
- package/src/cursor/abstract_cursor.ts +102 -38
- package/src/cursor/aggregation_cursor.ts +32 -34
- package/src/cursor/find_cursor.ts +33 -21
- package/src/cursor/list_search_indexes_cursor.ts +1 -1
- package/src/cursor/run_command_cursor.ts +3 -2
- package/src/db.ts +42 -21
- package/src/deps.ts +52 -40
- package/src/encrypter.ts +14 -5
- package/src/error.ts +9 -3
- package/src/gridfs/download.ts +19 -31
- package/src/gridfs/index.ts +2 -0
- package/src/gridfs/upload.ts +11 -8
- package/src/index.ts +13 -5
- package/src/mongo_client.ts +21 -15
- package/src/mongo_logger.ts +3 -0
- package/src/mongo_types.ts +1 -1
- package/src/operations/aggregate.ts +2 -1
- package/src/operations/command.ts +1 -1
- package/src/operations/create_collection.ts +7 -2
- package/src/operations/delete.ts +4 -3
- package/src/operations/drop.ts +1 -1
- package/src/operations/execute_operation.ts +29 -10
- package/src/operations/find.ts +13 -14
- package/src/operations/get_more.ts +9 -1
- package/src/operations/indexes.ts +103 -176
- package/src/operations/insert.ts +2 -2
- package/src/operations/kill_cursors.ts +3 -2
- package/src/operations/list_collections.ts +5 -1
- package/src/operations/list_databases.ts +1 -1
- package/src/operations/operation.ts +3 -0
- package/src/operations/run_command.ts +6 -4
- package/src/operations/search_indexes/create.ts +4 -1
- package/src/operations/stats.ts +1 -1
- package/src/operations/update.ts +7 -7
- package/src/sdam/common.ts +8 -2
- package/src/sdam/monitor.ts +178 -61
- package/src/sdam/server.ts +27 -20
- package/src/sdam/server_description.ts +8 -3
- package/src/sdam/server_selection.ts +2 -3
- package/src/sdam/srv_polling.ts +3 -2
- package/src/sdam/topology.ts +114 -117
- package/src/sdam/topology_description.ts +14 -4
- package/src/sessions.ts +168 -148
- package/src/timeout.ts +96 -0
- package/src/utils.ts +85 -32
- package/lib/operations/common_functions.js +0 -38
- package/lib/operations/common_functions.js.map +0 -1
- package/src/operations/common_functions.ts +0 -79
package/lib/sessions.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
var _a;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.updateSessionFromResponse = exports.applySession = exports.ServerSessionPool = exports.ServerSession = exports.maybeClearPinnedConnection = exports.ClientSession = void 0;
|
|
5
|
-
const util_1 = require("util");
|
|
6
5
|
const bson_1 = require("./bson");
|
|
7
6
|
const metrics_1 = require("./cmap/metrics");
|
|
8
7
|
const shared_1 = require("./cmap/wire_protocol/shared");
|
|
@@ -66,6 +65,7 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
|
|
|
66
65
|
this.sessionPool = sessionPool;
|
|
67
66
|
this.hasEnded = false;
|
|
68
67
|
this.clientOptions = clientOptions;
|
|
68
|
+
this.timeoutMS = options.defaultTimeoutMS ?? client.options?.timeoutMS;
|
|
69
69
|
this.explicit = !!options.explicit;
|
|
70
70
|
this[kServerSession] = this.explicit ? this.sessionPool.acquire() : null;
|
|
71
71
|
this[kTxnNumberIncrement] = 0;
|
|
@@ -77,7 +77,7 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
|
|
|
77
77
|
this.clusterTime = options.initialClusterTime;
|
|
78
78
|
this.operationTime = undefined;
|
|
79
79
|
this.owner = options.owner;
|
|
80
|
-
this.defaultTransactionOptions =
|
|
80
|
+
this.defaultTransactionOptions = { ...options.defaultTransactionOptions };
|
|
81
81
|
this.transaction = new transactions_1.Transaction();
|
|
82
82
|
}
|
|
83
83
|
/** The server id associated with this session */
|
|
@@ -153,8 +153,9 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
|
|
|
153
153
|
this.emit('ended', this);
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
|
-
catch {
|
|
156
|
+
catch (error) {
|
|
157
157
|
// spec indicates that we should ignore all errors for `endSessions`
|
|
158
|
+
(0, utils_1.squashError)(error);
|
|
158
159
|
}
|
|
159
160
|
finally {
|
|
160
161
|
maybeClearPinnedConnection(this, { force: true, ...options });
|
|
@@ -267,13 +268,13 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
|
|
|
267
268
|
* Commits the currently active transaction in this session.
|
|
268
269
|
*/
|
|
269
270
|
async commitTransaction() {
|
|
270
|
-
return
|
|
271
|
+
return await endTransaction(this, 'commitTransaction');
|
|
271
272
|
}
|
|
272
273
|
/**
|
|
273
274
|
* Aborts the currently active transaction in this session.
|
|
274
275
|
*/
|
|
275
276
|
async abortTransaction() {
|
|
276
|
-
return
|
|
277
|
+
return await endTransaction(this, 'abortTransaction');
|
|
277
278
|
}
|
|
278
279
|
/**
|
|
279
280
|
* This is here to ensure that ClientSession is never serialized to BSON.
|
|
@@ -284,25 +285,33 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
|
|
|
284
285
|
/**
|
|
285
286
|
* Starts a transaction and runs a provided function, ensuring the commitTransaction is always attempted when all operations run in the function have completed.
|
|
286
287
|
*
|
|
287
|
-
* **IMPORTANT:** This method requires the
|
|
288
|
+
* **IMPORTANT:** This method requires the function passed in to return a Promise. That promise must be made by `await`-ing all operations in such a way that rejections are propagated to the returned promise.
|
|
288
289
|
*
|
|
289
290
|
* @remarks
|
|
290
|
-
*
|
|
291
|
-
* - If
|
|
292
|
-
* - If the transaction is unable to complete or an error is thrown from within the provided function, then this function will throw an error.
|
|
291
|
+
* - If all operations successfully complete and the `commitTransaction` operation is successful, then the provided function will return the result of the provided function.
|
|
292
|
+
* - If the transaction is unable to complete or an error is thrown from within the provided function, then the provided function will throw an error.
|
|
293
293
|
* - If the transaction is manually aborted within the provided function it will not throw.
|
|
294
|
-
* -
|
|
294
|
+
* - If the driver needs to attempt to retry the operations, the provided function may be called multiple times.
|
|
295
295
|
*
|
|
296
296
|
* Checkout a descriptive example here:
|
|
297
297
|
* @see https://www.mongodb.com/blog/post/quick-start-nodejs--mongodb--how-to-implement-transactions
|
|
298
298
|
*
|
|
299
|
+
* If a command inside withTransaction fails:
|
|
300
|
+
* - It may cause the transaction on the server to be aborted.
|
|
301
|
+
* - This situation is normally handled transparently by the driver.
|
|
302
|
+
* - However, if the application catches such an error and does not rethrow it, the driver will not be able to determine whether the transaction was aborted or not.
|
|
303
|
+
* - The driver will then retry the transaction indefinitely.
|
|
304
|
+
*
|
|
305
|
+
* To avoid this situation, the application must not silently handle errors within the provided function.
|
|
306
|
+
* If the application needs to handle errors within, it must await all operations such that if an operation is rejected it becomes the rejection of the callback function passed into withTransaction.
|
|
307
|
+
*
|
|
299
308
|
* @param fn - callback to run within a transaction
|
|
300
309
|
* @param options - optional settings for the transaction
|
|
301
310
|
* @returns A raw command response or undefined
|
|
302
311
|
*/
|
|
303
312
|
async withTransaction(fn, options) {
|
|
304
313
|
const startTime = (0, utils_1.now)();
|
|
305
|
-
return attemptTransaction(this, startTime, fn, options);
|
|
314
|
+
return await attemptTransaction(this, startTime, fn, options);
|
|
306
315
|
}
|
|
307
316
|
}
|
|
308
317
|
exports.ClientSession = ClientSession;
|
|
@@ -343,6 +352,7 @@ function maybeClearPinnedConnection(session, options) {
|
|
|
343
352
|
const loadBalancer = servers[0];
|
|
344
353
|
if (options?.error == null || options?.force) {
|
|
345
354
|
loadBalancer.pool.checkIn(conn);
|
|
355
|
+
session[kPinnedConnection] = undefined;
|
|
346
356
|
conn.emit(constants_1.UNPINNED, session.transaction.state !== transactions_1.TxnState.NO_TRANSACTION
|
|
347
357
|
? metrics_1.ConnectionPoolMetrics.TXN
|
|
348
358
|
: metrics_1.ConnectionPoolMetrics.CURSOR);
|
|
@@ -350,7 +360,6 @@ function maybeClearPinnedConnection(session, options) {
|
|
|
350
360
|
loadBalancer.pool.clear({ serviceId: conn.serviceId });
|
|
351
361
|
}
|
|
352
362
|
}
|
|
353
|
-
session[kPinnedConnection] = undefined;
|
|
354
363
|
}
|
|
355
364
|
}
|
|
356
365
|
exports.maybeClearPinnedConnection = maybeClearPinnedConnection;
|
|
@@ -361,20 +370,24 @@ function isMaxTimeMSExpiredError(err) {
|
|
|
361
370
|
return (err.code === error_1.MONGODB_ERROR_CODES.MaxTimeMSExpired ||
|
|
362
371
|
(err.writeConcernError && err.writeConcernError.code === error_1.MONGODB_ERROR_CODES.MaxTimeMSExpired));
|
|
363
372
|
}
|
|
364
|
-
function attemptTransactionCommit(session, startTime, fn, result, options) {
|
|
365
|
-
|
|
366
|
-
|
|
373
|
+
async function attemptTransactionCommit(session, startTime, fn, result, options) {
|
|
374
|
+
try {
|
|
375
|
+
await session.commitTransaction();
|
|
376
|
+
return result;
|
|
377
|
+
}
|
|
378
|
+
catch (commitErr) {
|
|
379
|
+
if (commitErr instanceof error_1.MongoError &&
|
|
367
380
|
hasNotTimedOut(startTime, MAX_WITH_TRANSACTION_TIMEOUT) &&
|
|
368
|
-
!isMaxTimeMSExpiredError(
|
|
369
|
-
if (
|
|
370
|
-
return attemptTransactionCommit(session, startTime, fn, result, options);
|
|
381
|
+
!isMaxTimeMSExpiredError(commitErr)) {
|
|
382
|
+
if (commitErr.hasErrorLabel(error_1.MongoErrorLabel.UnknownTransactionCommitResult)) {
|
|
383
|
+
return await attemptTransactionCommit(session, startTime, fn, result, options);
|
|
371
384
|
}
|
|
372
|
-
if (
|
|
373
|
-
return attemptTransaction(session, startTime, fn, options);
|
|
385
|
+
if (commitErr.hasErrorLabel(error_1.MongoErrorLabel.TransientTransactionError)) {
|
|
386
|
+
return await attemptTransaction(session, startTime, fn, options);
|
|
374
387
|
}
|
|
375
388
|
}
|
|
376
|
-
throw
|
|
377
|
-
}
|
|
389
|
+
throw commitErr;
|
|
390
|
+
}
|
|
378
391
|
}
|
|
379
392
|
const USER_EXPLICIT_TXN_END_STATES = new Set([
|
|
380
393
|
transactions_1.TxnState.NO_TRANSACTION,
|
|
@@ -384,7 +397,7 @@ const USER_EXPLICIT_TXN_END_STATES = new Set([
|
|
|
384
397
|
function userExplicitlyEndedTransaction(session) {
|
|
385
398
|
return USER_EXPLICIT_TXN_END_STATES.has(session.transaction.state);
|
|
386
399
|
}
|
|
387
|
-
function attemptTransaction(session, startTime, fn, options = {}) {
|
|
400
|
+
async function attemptTransaction(session, startTime, fn, options = {}) {
|
|
388
401
|
session.startTransaction(options);
|
|
389
402
|
let promise;
|
|
390
403
|
try {
|
|
@@ -394,68 +407,65 @@ function attemptTransaction(session, startTime, fn, options = {}) {
|
|
|
394
407
|
promise = Promise.reject(err);
|
|
395
408
|
}
|
|
396
409
|
if (!(0, utils_1.isPromiseLike)(promise)) {
|
|
397
|
-
|
|
398
|
-
|
|
410
|
+
try {
|
|
411
|
+
await session.abortTransaction();
|
|
412
|
+
}
|
|
413
|
+
catch (error) {
|
|
414
|
+
(0, utils_1.squashError)(error);
|
|
415
|
+
}
|
|
416
|
+
throw new error_1.MongoInvalidArgumentError('Function provided to `withTransaction` must return a Promise');
|
|
399
417
|
}
|
|
400
|
-
|
|
418
|
+
try {
|
|
419
|
+
const result = await promise;
|
|
401
420
|
if (userExplicitlyEndedTransaction(session)) {
|
|
402
421
|
return result;
|
|
403
422
|
}
|
|
404
|
-
return attemptTransactionCommit(session, startTime, fn, result, options);
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
if (err instanceof error_1.MongoError &&
|
|
408
|
-
err.hasErrorLabel(error_1.MongoErrorLabel.TransientTransactionError) &&
|
|
409
|
-
hasNotTimedOut(startTime, MAX_WITH_TRANSACTION_TIMEOUT)) {
|
|
410
|
-
return attemptTransaction(session, startTime, fn, options);
|
|
411
|
-
}
|
|
412
|
-
if (isMaxTimeMSExpiredError(err)) {
|
|
413
|
-
err.addErrorLabel(error_1.MongoErrorLabel.UnknownTransactionCommitResult);
|
|
414
|
-
}
|
|
415
|
-
throw err;
|
|
416
|
-
}
|
|
423
|
+
return await attemptTransactionCommit(session, startTime, fn, result, options);
|
|
424
|
+
}
|
|
425
|
+
catch (err) {
|
|
417
426
|
if (session.inTransaction()) {
|
|
418
|
-
|
|
427
|
+
await session.abortTransaction();
|
|
428
|
+
}
|
|
429
|
+
if (err instanceof error_1.MongoError &&
|
|
430
|
+
err.hasErrorLabel(error_1.MongoErrorLabel.TransientTransactionError) &&
|
|
431
|
+
hasNotTimedOut(startTime, MAX_WITH_TRANSACTION_TIMEOUT)) {
|
|
432
|
+
return await attemptTransaction(session, startTime, fn, options);
|
|
433
|
+
}
|
|
434
|
+
if (isMaxTimeMSExpiredError(err)) {
|
|
435
|
+
err.addErrorLabel(error_1.MongoErrorLabel.UnknownTransactionCommitResult);
|
|
419
436
|
}
|
|
420
|
-
|
|
421
|
-
}
|
|
437
|
+
throw err;
|
|
438
|
+
}
|
|
422
439
|
}
|
|
423
|
-
|
|
424
|
-
function endTransaction(session, commandName, callback) {
|
|
440
|
+
async function endTransaction(session, commandName) {
|
|
425
441
|
// handle any initial problematic cases
|
|
426
442
|
const txnState = session.transaction.state;
|
|
427
443
|
if (txnState === transactions_1.TxnState.NO_TRANSACTION) {
|
|
428
|
-
|
|
429
|
-
return;
|
|
444
|
+
throw new error_1.MongoTransactionError('No transaction started');
|
|
430
445
|
}
|
|
431
446
|
if (commandName === 'commitTransaction') {
|
|
432
447
|
if (txnState === transactions_1.TxnState.STARTING_TRANSACTION ||
|
|
433
448
|
txnState === transactions_1.TxnState.TRANSACTION_COMMITTED_EMPTY) {
|
|
434
449
|
// the transaction was never started, we can safely exit here
|
|
435
450
|
session.transaction.transition(transactions_1.TxnState.TRANSACTION_COMMITTED_EMPTY);
|
|
436
|
-
callback();
|
|
437
451
|
return;
|
|
438
452
|
}
|
|
439
453
|
if (txnState === transactions_1.TxnState.TRANSACTION_ABORTED) {
|
|
440
|
-
|
|
441
|
-
return;
|
|
454
|
+
throw new error_1.MongoTransactionError('Cannot call commitTransaction after calling abortTransaction');
|
|
442
455
|
}
|
|
443
456
|
}
|
|
444
457
|
else {
|
|
445
458
|
if (txnState === transactions_1.TxnState.STARTING_TRANSACTION) {
|
|
446
459
|
// the transaction was never started, we can safely exit here
|
|
447
460
|
session.transaction.transition(transactions_1.TxnState.TRANSACTION_ABORTED);
|
|
448
|
-
callback();
|
|
449
461
|
return;
|
|
450
462
|
}
|
|
451
463
|
if (txnState === transactions_1.TxnState.TRANSACTION_ABORTED) {
|
|
452
|
-
|
|
453
|
-
return;
|
|
464
|
+
throw new error_1.MongoTransactionError('Cannot call abortTransaction twice');
|
|
454
465
|
}
|
|
455
466
|
if (txnState === transactions_1.TxnState.TRANSACTION_COMMITTED ||
|
|
456
467
|
txnState === transactions_1.TxnState.TRANSACTION_COMMITTED_EMPTY) {
|
|
457
|
-
|
|
458
|
-
return;
|
|
468
|
+
throw new error_1.MongoTransactionError('Cannot call abortTransaction after calling commitTransaction');
|
|
459
469
|
}
|
|
460
470
|
}
|
|
461
471
|
// construct and send the command
|
|
@@ -477,41 +487,36 @@ function endTransaction(session, commandName, callback) {
|
|
|
477
487
|
if (commandName === 'commitTransaction' && session.transaction.options.maxTimeMS) {
|
|
478
488
|
Object.assign(command, { maxTimeMS: session.transaction.options.maxTimeMS });
|
|
479
489
|
}
|
|
480
|
-
|
|
490
|
+
if (session.transaction.recoveryToken) {
|
|
491
|
+
command.recoveryToken = session.transaction.recoveryToken;
|
|
492
|
+
}
|
|
493
|
+
try {
|
|
494
|
+
// send the command
|
|
495
|
+
await (0, execute_operation_1.executeOperation)(session.client, new run_command_1.RunAdminCommandOperation(command, {
|
|
496
|
+
session,
|
|
497
|
+
readPreference: read_preference_1.ReadPreference.primary,
|
|
498
|
+
bypassPinningCheck: true
|
|
499
|
+
}));
|
|
500
|
+
if (command.abortTransaction) {
|
|
501
|
+
// always unpin on abort regardless of command outcome
|
|
502
|
+
session.unpin();
|
|
503
|
+
}
|
|
481
504
|
if (commandName !== 'commitTransaction') {
|
|
482
505
|
session.transaction.transition(transactions_1.TxnState.TRANSACTION_ABORTED);
|
|
483
506
|
if (session.loadBalanced) {
|
|
484
507
|
maybeClearPinnedConnection(session, { force: false });
|
|
485
508
|
}
|
|
486
|
-
// The spec indicates that we should ignore all errors on `abortTransaction`
|
|
487
|
-
return callback();
|
|
488
|
-
}
|
|
489
|
-
session.transaction.transition(transactions_1.TxnState.TRANSACTION_COMMITTED);
|
|
490
|
-
if (error instanceof error_1.MongoError) {
|
|
491
|
-
if ((0, error_1.isRetryableWriteError)(error) ||
|
|
492
|
-
error instanceof error_1.MongoWriteConcernError ||
|
|
493
|
-
isMaxTimeMSExpiredError(error)) {
|
|
494
|
-
if (isUnknownTransactionCommitResult(error)) {
|
|
495
|
-
error.addErrorLabel(error_1.MongoErrorLabel.UnknownTransactionCommitResult);
|
|
496
|
-
// per txns spec, must unpin session in this case
|
|
497
|
-
session.unpin({ error });
|
|
498
|
-
}
|
|
499
|
-
}
|
|
500
|
-
else if (error.hasErrorLabel(error_1.MongoErrorLabel.TransientTransactionError)) {
|
|
501
|
-
session.unpin({ error });
|
|
502
|
-
}
|
|
503
509
|
}
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
command.recoveryToken = session.transaction.recoveryToken;
|
|
510
|
+
else {
|
|
511
|
+
session.transaction.transition(transactions_1.TxnState.TRANSACTION_COMMITTED);
|
|
512
|
+
}
|
|
508
513
|
}
|
|
509
|
-
|
|
514
|
+
catch (firstAttemptErr) {
|
|
510
515
|
if (command.abortTransaction) {
|
|
511
516
|
// always unpin on abort regardless of command outcome
|
|
512
517
|
session.unpin();
|
|
513
518
|
}
|
|
514
|
-
if (
|
|
519
|
+
if (firstAttemptErr instanceof error_1.MongoError && (0, error_1.isRetryableWriteError)(firstAttemptErr)) {
|
|
515
520
|
// SPEC-1185: apply majority write concern when retrying commitTransaction
|
|
516
521
|
if (command.commitTransaction) {
|
|
517
522
|
// per txns spec, must unpin session in this case
|
|
@@ -520,21 +525,56 @@ function endTransaction(session, commandName, callback) {
|
|
|
520
525
|
w: 'majority'
|
|
521
526
|
});
|
|
522
527
|
}
|
|
523
|
-
|
|
524
|
-
session,
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
528
|
+
try {
|
|
529
|
+
await (0, execute_operation_1.executeOperation)(session.client, new run_command_1.RunAdminCommandOperation(command, {
|
|
530
|
+
session,
|
|
531
|
+
readPreference: read_preference_1.ReadPreference.primary,
|
|
532
|
+
bypassPinningCheck: true
|
|
533
|
+
}));
|
|
534
|
+
if (commandName !== 'commitTransaction') {
|
|
535
|
+
session.transaction.transition(transactions_1.TxnState.TRANSACTION_ABORTED);
|
|
536
|
+
if (session.loadBalanced) {
|
|
537
|
+
maybeClearPinnedConnection(session, { force: false });
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
else {
|
|
541
|
+
session.transaction.transition(transactions_1.TxnState.TRANSACTION_COMMITTED);
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
catch (secondAttemptErr) {
|
|
545
|
+
handleEndTransactionError(session, commandName, secondAttemptErr);
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
else {
|
|
549
|
+
handleEndTransactionError(session, commandName, firstAttemptErr);
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
function handleEndTransactionError(session, commandName, error) {
|
|
554
|
+
if (commandName !== 'commitTransaction') {
|
|
555
|
+
session.transaction.transition(transactions_1.TxnState.TRANSACTION_ABORTED);
|
|
556
|
+
if (session.loadBalanced) {
|
|
557
|
+
maybeClearPinnedConnection(session, { force: false });
|
|
558
|
+
}
|
|
559
|
+
// The spec indicates that if the operation times out or fails with a non-retryable error, we should ignore all errors on `abortTransaction`
|
|
560
|
+
return;
|
|
561
|
+
}
|
|
562
|
+
session.transaction.transition(transactions_1.TxnState.TRANSACTION_COMMITTED);
|
|
563
|
+
if (error instanceof error_1.MongoError) {
|
|
564
|
+
if ((0, error_1.isRetryableWriteError)(error) ||
|
|
565
|
+
error instanceof error_1.MongoWriteConcernError ||
|
|
566
|
+
isMaxTimeMSExpiredError(error)) {
|
|
567
|
+
if (isUnknownTransactionCommitResult(error)) {
|
|
568
|
+
error.addErrorLabel(error_1.MongoErrorLabel.UnknownTransactionCommitResult);
|
|
569
|
+
// per txns spec, must unpin session in this case
|
|
570
|
+
session.unpin({ error });
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
else if (error.hasErrorLabel(error_1.MongoErrorLabel.TransientTransactionError)) {
|
|
574
|
+
session.unpin({ error });
|
|
529
575
|
}
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
// send the command
|
|
533
|
-
(0, execute_operation_1.executeOperation)(session.client, new run_command_1.RunAdminCommandOperation(command, {
|
|
534
|
-
session,
|
|
535
|
-
readPreference: read_preference_1.ReadPreference.primary,
|
|
536
|
-
bypassPinningCheck: true
|
|
537
|
-
})).then(() => handleFirstCommandAttempt(), handleFirstCommandAttempt);
|
|
576
|
+
}
|
|
577
|
+
throw error;
|
|
538
578
|
}
|
|
539
579
|
/**
|
|
540
580
|
* Reflects the existence of a session on the server. Can be reused by the session pool.
|
|
@@ -729,7 +769,7 @@ function updateSessionFromResponse(session, document) {
|
|
|
729
769
|
if (session?.[kSnapshotEnabled] && session[kSnapshotTime] == null) {
|
|
730
770
|
// find and aggregate commands return atClusterTime on the cursor
|
|
731
771
|
// distinct includes it in the response body
|
|
732
|
-
const atClusterTime = document.
|
|
772
|
+
const atClusterTime = document.atClusterTime;
|
|
733
773
|
if (atClusterTime) {
|
|
734
774
|
session[kSnapshotTime] = atClusterTime;
|
|
735
775
|
}
|
package/lib/sessions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../src/sessions.ts"],"names":[],"mappings":"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"}
|
package/lib/timeout.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Timeout = exports.TimeoutError = void 0;
|
|
4
|
+
const timers_1 = require("timers");
|
|
5
|
+
const error_1 = require("./error");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
/** @internal */
|
|
8
|
+
class TimeoutError extends Error {
|
|
9
|
+
get name() {
|
|
10
|
+
return 'TimeoutError';
|
|
11
|
+
}
|
|
12
|
+
constructor(message, options) {
|
|
13
|
+
super(message, options);
|
|
14
|
+
}
|
|
15
|
+
static is(error) {
|
|
16
|
+
return (error != null && typeof error === 'object' && 'name' in error && error.name === 'TimeoutError');
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.TimeoutError = TimeoutError;
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
* This class is an abstraction over timeouts
|
|
23
|
+
* The Timeout class can only be in the pending or rejected states. It is guaranteed not to resolve
|
|
24
|
+
* if interacted with exclusively through its public API
|
|
25
|
+
* */
|
|
26
|
+
class Timeout extends Promise {
|
|
27
|
+
get [Symbol.toStringTag]() {
|
|
28
|
+
return 'MongoDBTimeout';
|
|
29
|
+
}
|
|
30
|
+
/** Create a new timeout that expires in `duration` ms */
|
|
31
|
+
constructor(executor = () => null, duration) {
|
|
32
|
+
let reject;
|
|
33
|
+
if (duration < 0) {
|
|
34
|
+
throw new error_1.MongoInvalidArgumentError('Cannot create a Timeout with a negative duration');
|
|
35
|
+
}
|
|
36
|
+
super((_, promiseReject) => {
|
|
37
|
+
reject = promiseReject;
|
|
38
|
+
executor(utils_1.noop, promiseReject);
|
|
39
|
+
});
|
|
40
|
+
this.ended = null;
|
|
41
|
+
this.timedOut = false;
|
|
42
|
+
this.duration = duration;
|
|
43
|
+
this.start = Math.trunc(performance.now());
|
|
44
|
+
if (this.duration > 0) {
|
|
45
|
+
this.id = (0, timers_1.setTimeout)(() => {
|
|
46
|
+
this.ended = Math.trunc(performance.now());
|
|
47
|
+
this.timedOut = true;
|
|
48
|
+
reject(new TimeoutError(`Expired after ${duration}ms`));
|
|
49
|
+
}, this.duration);
|
|
50
|
+
// Ensure we do not keep the Node.js event loop running
|
|
51
|
+
if (typeof this.id.unref === 'function') {
|
|
52
|
+
this.id.unref();
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Clears the underlying timeout. This method is idempotent
|
|
58
|
+
*/
|
|
59
|
+
clear() {
|
|
60
|
+
(0, timers_1.clearTimeout)(this.id);
|
|
61
|
+
this.id = undefined;
|
|
62
|
+
}
|
|
63
|
+
static expires(durationMS) {
|
|
64
|
+
return new Timeout(undefined, durationMS);
|
|
65
|
+
}
|
|
66
|
+
static is(timeout) {
|
|
67
|
+
return (typeof timeout === 'object' &&
|
|
68
|
+
timeout != null &&
|
|
69
|
+
Symbol.toStringTag in timeout &&
|
|
70
|
+
timeout[Symbol.toStringTag] === 'MongoDBTimeout' &&
|
|
71
|
+
'then' in timeout &&
|
|
72
|
+
// eslint-disable-next-line github/no-then
|
|
73
|
+
typeof timeout.then === 'function');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.Timeout = Timeout;
|
|
77
|
+
//# sourceMappingURL=timeout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeout.js","sourceRoot":"","sources":["../src/timeout.ts"],"names":[],"mappings":";;;AAAA,mCAAkD;AAElD,mCAAoD;AACpD,mCAA+B;AAE/B,gBAAgB;AAChB,MAAa,YAAa,SAAQ,KAAK;IACrC,IAAa,IAAI;QACf,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,YAAY,OAAe,EAAE,OAA2B;QACtD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,KAAc;QACtB,OAAO,CACL,KAAK,IAAI,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,CAC/F,CAAC;IACJ,CAAC;CACF;AAdD,oCAcC;AAID;;;;;KAKK;AACL,MAAa,OAAQ,SAAQ,OAAc;IACzC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IASD,yDAAyD;IACzD,YAAoB,WAAqB,GAAG,EAAE,CAAC,IAAI,EAAE,QAAgB;QACnE,IAAI,MAAe,CAAC;QAEpB,IAAI,QAAQ,GAAG,CAAC,EAAE;YAChB,MAAM,IAAI,iCAAyB,CAAC,kDAAkD,CAAC,CAAC;SACzF;QAED,KAAK,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE;YACzB,MAAM,GAAG,aAAa,CAAC;YAEvB,QAAQ,CAAC,YAAI,EAAE,aAAa,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QAhBE,UAAK,GAAkB,IAAI,CAAC;QAE5B,aAAQ,GAAG,KAAK,CAAC;QAgBtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QAE3C,IAAI,IAAI,CAAC,QAAQ,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,EAAE,GAAG,IAAA,mBAAU,EAAC,GAAG,EAAE;gBACxB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;gBAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACrB,MAAM,CAAC,IAAI,YAAY,CAAC,iBAAiB,QAAQ,IAAI,CAAC,CAAC,CAAC;YAC1D,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClB,uDAAuD;YACvD,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,UAAU,EAAE;gBACvC,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;aACjB;SACF;IACH,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAA,qBAAY,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACtB,IAAI,CAAC,EAAE,GAAG,SAAS,CAAC;IACtB,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,UAAkB;QACtC,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,OAAgB;QACxB,OAAO,CACL,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,IAAI,IAAI;YACf,MAAM,CAAC,WAAW,IAAI,OAAO;YAC7B,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,gBAAgB;YAChD,MAAM,IAAI,OAAO;YACjB,0CAA0C;YAC1C,OAAO,OAAO,CAAC,IAAI,KAAK,UAAU,CACnC,CAAC;IACJ,CAAC;CACF;AAjED,0BAiEC"}
|