mongodb 7.1.1 → 7.2.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 +11 -0
- package/lib/bson.js +26 -5
- package/lib/bson.js.map +1 -1
- package/lib/change_stream.js +4 -0
- package/lib/change_stream.js.map +1 -1
- package/lib/client-side-encryption/auto_encrypter.js +19 -10
- package/lib/client-side-encryption/auto_encrypter.js.map +1 -1
- package/lib/client-side-encryption/client_encryption.js +1 -3
- package/lib/client-side-encryption/client_encryption.js.map +1 -1
- package/lib/cmap/auth/aws4.js +4 -4
- package/lib/cmap/auth/aws4.js.map +1 -1
- package/lib/cmap/auth/gssapi.js +3 -6
- package/lib/cmap/auth/gssapi.js.map +1 -1
- package/lib/cmap/auth/mongodb_aws.js +3 -2
- package/lib/cmap/auth/mongodb_aws.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js +3 -3
- package/lib/cmap/auth/mongodb_oidc/azure_machine_workflow.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js +3 -3
- package/lib/cmap/auth/mongodb_oidc/gcp_machine_workflow.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js +3 -3
- package/lib/cmap/auth/mongodb_oidc/k8s_machine_workflow.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js +3 -3
- package/lib/cmap/auth/mongodb_oidc/token_machine_workflow.js.map +1 -1
- package/lib/cmap/auth/mongodb_oidc.js +4 -4
- package/lib/cmap/auth/mongodb_oidc.js.map +1 -1
- package/lib/cmap/auth/plain.js +1 -1
- package/lib/cmap/auth/plain.js.map +1 -1
- package/lib/cmap/auth/scram.js +53 -40
- package/lib/cmap/auth/scram.js.map +1 -1
- package/lib/cmap/commands.js +46 -39
- package/lib/cmap/commands.js.map +1 -1
- package/lib/cmap/connect.js +1 -0
- package/lib/cmap/connect.js.map +1 -1
- package/lib/cmap/connection.js +5 -2
- package/lib/cmap/connection.js.map +1 -1
- package/lib/cmap/handshake/client_metadata.js +3 -4
- package/lib/cmap/handshake/client_metadata.js.map +1 -1
- package/lib/cmap/wire_protocol/compression.js +8 -7
- package/lib/cmap/wire_protocol/compression.js.map +1 -1
- package/lib/cmap/wire_protocol/on_data.js.map +1 -1
- package/lib/cmap/wire_protocol/on_demand/document.js +9 -9
- package/lib/cmap/wire_protocol/on_demand/document.js.map +1 -1
- package/lib/connection_string.js +21 -5
- package/lib/connection_string.js.map +1 -1
- package/lib/gridfs/download.js +2 -1
- package/lib/gridfs/download.js.map +1 -1
- package/lib/gridfs/upload.js +7 -7
- package/lib/gridfs/upload.js.map +1 -1
- package/lib/mongo_client.js.map +1 -1
- package/lib/operations/execute_operation.js +114 -41
- package/lib/operations/execute_operation.js.map +1 -1
- package/lib/operations/operation.js +1 -0
- package/lib/operations/operation.js.map +1 -1
- package/lib/runtime_adapters.js +32 -0
- package/lib/runtime_adapters.js.map +1 -0
- package/lib/sdam/srv_polling.js +1 -1
- package/lib/sdam/srv_polling.js.map +1 -1
- package/lib/sdam/topology.js +4 -2
- package/lib/sdam/topology.js.map +1 -1
- package/lib/sessions.js +124 -79
- package/lib/sessions.js.map +1 -1
- package/lib/utils.js +10 -33
- package/lib/utils.js.map +1 -1
- package/mongodb.d.ts +45 -2
- package/package.json +30 -21
- package/src/bson.ts +28 -5
- package/src/change_stream.ts +5 -0
- package/src/client-side-encryption/auto_encrypter.ts +17 -11
- package/src/client-side-encryption/client_encryption.ts +1 -3
- package/src/cmap/auth/auth_provider.ts +1 -1
- package/src/cmap/auth/aws4.ts +5 -5
- package/src/cmap/auth/gssapi.ts +9 -6
- package/src/cmap/auth/mongodb_aws.ts +2 -2
- package/src/cmap/auth/mongodb_oidc/azure_machine_workflow.ts +1 -1
- package/src/cmap/auth/mongodb_oidc/gcp_machine_workflow.ts +1 -1
- package/src/cmap/auth/mongodb_oidc/k8s_machine_workflow.ts +1 -1
- package/src/cmap/auth/mongodb_oidc/token_machine_workflow.ts +1 -1
- package/src/cmap/auth/mongodb_oidc.ts +4 -4
- package/src/cmap/auth/plain.ts +2 -2
- package/src/cmap/auth/scram.ts +82 -55
- package/src/cmap/commands.ts +70 -51
- package/src/cmap/connect.ts +2 -0
- package/src/cmap/connection.ts +11 -4
- package/src/cmap/handshake/client_metadata.ts +6 -6
- package/src/cmap/wire_protocol/compression.ts +18 -14
- package/src/cmap/wire_protocol/on_data.ts +5 -5
- package/src/cmap/wire_protocol/on_demand/document.ts +12 -14
- package/src/connection_string.ts +26 -8
- package/src/deps.ts +4 -4
- package/src/gridfs/download.ts +2 -2
- package/src/gridfs/upload.ts +13 -12
- package/src/index.ts +1 -0
- package/src/mongo_client.ts +24 -0
- package/src/operations/client_bulk_write/command_builder.ts +1 -1
- package/src/operations/execute_operation.ts +146 -45
- package/src/operations/operation.ts +8 -0
- package/src/runtime_adapters.ts +64 -0
- package/src/sdam/srv_polling.ts +1 -1
- package/src/sdam/topology.ts +10 -7
- package/src/sessions.ts +140 -96
- package/src/utils.ts +21 -40
- package/tsconfig.json +1 -1
package/lib/sessions.js
CHANGED
|
@@ -201,7 +201,7 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
|
|
|
201
201
|
if (this.id == null || session.id == null) {
|
|
202
202
|
return false;
|
|
203
203
|
}
|
|
204
|
-
return
|
|
204
|
+
return bson_1.ByteUtils.equals(this.id.id.buffer, session.id.id.buffer);
|
|
205
205
|
}
|
|
206
206
|
/**
|
|
207
207
|
* Increment the transaction number on the internal ServerSession
|
|
@@ -288,7 +288,11 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
|
|
|
288
288
|
else {
|
|
289
289
|
const wcKeys = Object.keys(wc);
|
|
290
290
|
if (wcKeys.length > 2 || (!wcKeys.includes('wtimeoutMS') && !wcKeys.includes('wTimeoutMS')))
|
|
291
|
-
// if the write concern was specified with wTimeoutMS, then we set both wtimeoutMS
|
|
291
|
+
// if the write concern was specified with wTimeoutMS, then we set both wtimeoutMS
|
|
292
|
+
// and wTimeoutMS, guaranteeing at least two keys, so if we have more than two keys,
|
|
293
|
+
// then we can automatically assume that we should add the write concern to the command.
|
|
294
|
+
// If it has 2 or fewer keys, we need to check that those keys aren't the wtimeoutMS
|
|
295
|
+
// or wTimeoutMS options before we add the write concern to the command
|
|
292
296
|
write_concern_1.WriteConcern.apply(command, { ...wc, wtimeoutMS: undefined });
|
|
293
297
|
}
|
|
294
298
|
}
|
|
@@ -311,6 +315,7 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
|
|
|
311
315
|
readPreference: read_preference_1.ReadPreference.primary,
|
|
312
316
|
bypassPinningCheck: true
|
|
313
317
|
});
|
|
318
|
+
operation.maxAttempts = this.clientOptions.maxAdaptiveRetries + 1;
|
|
314
319
|
const timeoutContext = this.timeoutContext ??
|
|
315
320
|
(typeof timeoutMS === 'number'
|
|
316
321
|
? timeout_1.TimeoutContext.create({
|
|
@@ -326,17 +331,23 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
|
|
|
326
331
|
}
|
|
327
332
|
catch (firstCommitError) {
|
|
328
333
|
this.commitAttempted = true;
|
|
334
|
+
const remainingAttempts = this.clientOptions.maxAdaptiveRetries + 1 - operation.attemptsMade;
|
|
335
|
+
if (remainingAttempts <= 0) {
|
|
336
|
+
throw firstCommitError;
|
|
337
|
+
}
|
|
329
338
|
if (firstCommitError instanceof error_1.MongoError && (0, error_1.isRetryableWriteError)(firstCommitError)) {
|
|
330
339
|
// SPEC-1185: apply majority write concern when retrying commitTransaction
|
|
331
340
|
write_concern_1.WriteConcern.apply(command, { wtimeoutMS: 10000, ...wc, w: 'majority' });
|
|
332
341
|
// per txns spec, must unpin session in this case
|
|
333
342
|
this.unpin({ force: true });
|
|
334
343
|
try {
|
|
335
|
-
|
|
344
|
+
const op = new run_command_1.RunCommandOperation(new utils_1.MongoDBNamespace('admin'), command, {
|
|
336
345
|
session: this,
|
|
337
346
|
readPreference: read_preference_1.ReadPreference.primary,
|
|
338
347
|
bypassPinningCheck: true
|
|
339
|
-
})
|
|
348
|
+
});
|
|
349
|
+
op.maxAttempts = remainingAttempts;
|
|
350
|
+
await (0, execute_operation_1.executeOperation)(this.client, op, timeoutContext);
|
|
340
351
|
return;
|
|
341
352
|
}
|
|
342
353
|
catch (retryCommitError) {
|
|
@@ -482,7 +493,7 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
|
|
|
482
493
|
* @returns A raw command response or undefined
|
|
483
494
|
*/
|
|
484
495
|
async withTransaction(fn, options) {
|
|
485
|
-
const MAX_TIMEOUT =
|
|
496
|
+
const MAX_TIMEOUT = 120_000;
|
|
486
497
|
const timeoutMS = options?.timeoutMS ?? this.timeoutMS ?? null;
|
|
487
498
|
this.timeoutContext =
|
|
488
499
|
timeoutMS != null
|
|
@@ -492,133 +503,138 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
|
|
|
492
503
|
socketTimeoutMS: this.clientOptions.socketTimeoutMS
|
|
493
504
|
})
|
|
494
505
|
: null;
|
|
495
|
-
// 1.
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
506
|
+
// 1. Define the following:
|
|
507
|
+
// 1.1 Record the current monotonic time, which will be used to enforce the 120-second / CSOT timeout before later retry attempts.
|
|
508
|
+
// 1.2 Set `transactionAttempt` to `0`.
|
|
509
|
+
// 1.3 Set `TIMEOUT_MS` to be `timeoutMS` if given, otherwise MAX_TIMEOUT (120-seconds).
|
|
510
|
+
// Timeout Error propagation
|
|
511
|
+
// When the previously encountered error needs to be propagated because there is no more time for another attempt,
|
|
512
|
+
// and it is not already a timeout error, then:
|
|
513
|
+
// - A timeout error MUST be propagated instead. It MUST expose the previously encountered error as specified in
|
|
514
|
+
// the "Errors" section of the CSOT specification.
|
|
515
|
+
// - If exposing the previously encountered error from a timeout error is impossible in a driver, then the driver
|
|
516
|
+
// is exempt from the requirement and MUST propagate the previously encountered error as is. The timeout error
|
|
517
|
+
// MUST copy all error labels from the previously encountered error.
|
|
518
|
+
// The spec describes timeout checks as "elapsed time < TIMEOUT_MS" (where elapsed = now - start).
|
|
519
|
+
// We precompute `deadline = now + remainingTimeMS` so each check becomes simply `now < deadline`.
|
|
520
|
+
const csotEnabled = !!this.timeoutContext?.csotEnabled();
|
|
521
|
+
const remainingTimeMS = this.timeoutContext?.csotEnabled()
|
|
522
|
+
? this.timeoutContext.remainingTimeMS
|
|
523
|
+
: MAX_TIMEOUT;
|
|
524
|
+
const deadline = (0, utils_1.processTimeMS)() + remainingTimeMS;
|
|
499
525
|
let committed = false;
|
|
500
526
|
let result;
|
|
501
527
|
let lastError = null;
|
|
502
528
|
try {
|
|
503
|
-
retryTransaction: for (
|
|
504
|
-
// 2. Set `transactionAttempt` to `0`.
|
|
505
|
-
let transactionAttempt = 0, isRetry = false; !committed; ++transactionAttempt, isRetry = transactionAttempt > 0) {
|
|
529
|
+
retryTransaction: for (let transactionAttempt = 0, isRetry = false; !committed; ++transactionAttempt, isRetry = transactionAttempt > 0) {
|
|
506
530
|
// 2. If `transactionAttempt` > 0:
|
|
507
531
|
if (isRetry) {
|
|
508
|
-
// 2.
|
|
509
|
-
//
|
|
510
|
-
//
|
|
511
|
-
//
|
|
512
|
-
//
|
|
513
|
-
//
|
|
514
|
-
//
|
|
532
|
+
// 2.1 Calculate backoffMS to be jitter * min(BACKOFF_INITIAL * 1.5 ** (transactionAttempt - 1), BACKOFF_MAX).
|
|
533
|
+
// If elapsed time + backoffMS > TIMEOUT_MS, then propagate the previously encountered error to the caller of
|
|
534
|
+
// withTransaction as per timeout error propagation and return immediately. Otherwise, sleep for backoffMS.
|
|
535
|
+
// 2.1.1 jitter is a random float between [0, 1), optionally including 1, depending on what is most natural
|
|
536
|
+
// for the given driver language.
|
|
537
|
+
// 2.1.2 transactionAttempt is the variable defined in step 1.
|
|
538
|
+
// 2.1.3 BACKOFF_INITIAL is 5ms
|
|
539
|
+
// 2.1.4 BACKOFF_MAX is 500ms
|
|
515
540
|
const BACKOFF_INITIAL_MS = 5;
|
|
516
541
|
const BACKOFF_MAX_MS = 500;
|
|
517
542
|
const BACKOFF_GROWTH = 1.5;
|
|
518
543
|
const jitter = Math.random();
|
|
519
544
|
const backoffMS = jitter *
|
|
520
545
|
Math.min(BACKOFF_INITIAL_MS * BACKOFF_GROWTH ** (transactionAttempt - 1), BACKOFF_MAX_MS);
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
if (willExceedTransactionDeadline) {
|
|
525
|
-
throw (lastError ??
|
|
526
|
-
new error_1.MongoRuntimeError(`Transaction retry did not record an error: should never occur. Please file a bug.`));
|
|
546
|
+
if ((0, utils_1.processTimeMS)() + backoffMS >= deadline) {
|
|
547
|
+
throw makeTimeoutError(lastError ??
|
|
548
|
+
new error_1.MongoRuntimeError(`Transaction retry did not record an error: should never occur. Please file a bug.`), csotEnabled);
|
|
527
549
|
}
|
|
528
550
|
await (0, promises_1.setTimeout)(backoffMS);
|
|
529
551
|
}
|
|
530
|
-
// 3. Invoke startTransaction on the session
|
|
531
|
-
//
|
|
532
|
-
|
|
552
|
+
// 3. Invoke startTransaction on the session and increment transactionAttempt. If TransactionOptions were
|
|
553
|
+
// specified in the call to withTransaction, those MUST be used for startTransaction. Note that
|
|
554
|
+
// ClientSession.defaultTransactionOptions will be used in the absence of any explicit TransactionOptions.
|
|
555
|
+
// 4. If startTransaction reported an error, propagate that error to the caller of withTransaction as is and
|
|
556
|
+
// return immediately.
|
|
557
|
+
this.startTransaction(options);
|
|
533
558
|
try {
|
|
534
|
-
// 5. Invoke the callback.
|
|
535
|
-
//
|
|
559
|
+
// 5. Invoke the callback. Drivers MUST ensure that the ClientSession can be accessed within the callback
|
|
560
|
+
// (e.g. pass ClientSession as the first parameter, rely on lexical scoping). Drivers MAY pass additional
|
|
561
|
+
// parameters as needed (e.g. user data solicited by withTransaction).
|
|
536
562
|
const promise = fn(this);
|
|
537
563
|
if (!(0, utils_1.isPromiseLike)(promise)) {
|
|
538
564
|
throw new error_1.MongoInvalidArgumentError('Function provided to `withTransaction` must return a Promise');
|
|
539
565
|
}
|
|
566
|
+
// 6. Control returns to withTransaction. Determine the current state of the ClientSession and whether the
|
|
567
|
+
// callback reported an error (e.g. thrown exception, error output parameter).
|
|
540
568
|
result = await promise;
|
|
541
|
-
//
|
|
569
|
+
// 8. If the ClientSession is in the "no transaction", "transaction aborted", or "transaction committed"
|
|
570
|
+
// state, assume the callback intentionally aborted or committed the transaction and return immediately.
|
|
542
571
|
if (this.transaction.state === transactions_1.TxnState.NO_TRANSACTION ||
|
|
543
572
|
this.transaction.state === transactions_1.TxnState.TRANSACTION_COMMITTED ||
|
|
544
573
|
this.transaction.state === transactions_1.TxnState.TRANSACTION_ABORTED) {
|
|
545
|
-
// 8. If the ClientSession is in the "no transaction", "transaction aborted", or "transaction committed" state,
|
|
546
|
-
// assume the callback intentionally aborted or committed the transaction and return immediately.
|
|
547
574
|
return result;
|
|
548
575
|
}
|
|
549
|
-
// 5. (cont.) and whether the callback reported an error
|
|
550
|
-
// 7. If the callback reported an error:
|
|
551
576
|
}
|
|
552
577
|
catch (fnError) {
|
|
578
|
+
// 7. If the callback reported an error
|
|
553
579
|
if (!(fnError instanceof error_1.MongoError) || fnError instanceof error_1.MongoInvalidArgumentError) {
|
|
554
580
|
// This first preemptive abort regardless of TxnState isn't spec,
|
|
555
581
|
// and it's unclear whether it's serving a practical purpose, but this logic is OLD
|
|
556
582
|
await this.abortTransaction();
|
|
557
583
|
throw fnError;
|
|
558
584
|
}
|
|
585
|
+
lastError = fnError;
|
|
586
|
+
// 7.1 If the ClientSession is in the "starting transaction" or "transaction in progress"
|
|
587
|
+
// state, invoke abortTransaction on the session.
|
|
559
588
|
if (this.transaction.state === transactions_1.TxnState.STARTING_TRANSACTION ||
|
|
560
589
|
this.transaction.state === transactions_1.TxnState.TRANSACTION_IN_PROGRESS) {
|
|
561
|
-
// 7.i If the ClientSession is in the "starting transaction" or "transaction in progress" state,
|
|
562
|
-
// invoke abortTransaction on the session
|
|
563
590
|
await this.abortTransaction();
|
|
564
591
|
}
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
592
|
+
// 7.2 If the callback's error includes a "TransientTransactionError" label, jump back to step two.
|
|
593
|
+
if (fnError.hasErrorLabel(error_1.MongoErrorLabel.TransientTransactionError)) {
|
|
594
|
+
if ((0, utils_1.processTimeMS)() >= deadline) {
|
|
595
|
+
throw makeTimeoutError(lastError, csotEnabled);
|
|
596
|
+
}
|
|
570
597
|
continue retryTransaction;
|
|
571
598
|
}
|
|
572
|
-
// 7.
|
|
573
|
-
// propagate the callback's error to the caller of withTransaction
|
|
574
|
-
//
|
|
575
|
-
// 7.
|
|
599
|
+
// 7.3 If the callback's error includes a "UnknownTransactionCommitResult" label, the callback must
|
|
600
|
+
// have manually committed a transaction, propagate the callback's error to the caller of withTransaction
|
|
601
|
+
// as is and return immediately.
|
|
602
|
+
// 7.4 Otherwise, propagate the callback's error to the caller of withTransaction as is and return immediately.
|
|
576
603
|
throw fnError;
|
|
577
604
|
}
|
|
578
605
|
retryCommit: while (!committed) {
|
|
579
606
|
try {
|
|
580
|
-
/*
|
|
581
|
-
* We will rely on ClientSession.commitTransaction() to
|
|
582
|
-
* apply a majority write concern if commitTransaction is
|
|
583
|
-
* being retried (see: DRIVERS-601)
|
|
584
|
-
*/
|
|
585
607
|
// 9. Invoke commitTransaction on the session.
|
|
586
608
|
await this.commitTransaction();
|
|
587
609
|
committed = true;
|
|
588
|
-
// 10. If commitTransaction reported an error:
|
|
589
610
|
}
|
|
590
611
|
catch (commitError) {
|
|
591
|
-
//
|
|
592
|
-
|
|
593
|
-
//
|
|
594
|
-
//
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
* { ok:0, code: 50, codeName: 'MaxTimeMSExpired' }
|
|
602
|
-
* { ok:1, writeConcernError: { code: 50, codeName: 'MaxTimeMSExpired' } }
|
|
603
|
-
*/
|
|
604
|
-
if (!isMaxTimeMSExpiredError(commitError) &&
|
|
605
|
-
commitError.hasErrorLabel(error_1.MongoErrorLabel.UnknownTransactionCommitResult)) {
|
|
606
|
-
// 10.i If the `commitTransaction` error includes a "UnknownTransactionCommitResult" label and the error is not
|
|
607
|
-
// MaxTimeMSExpired and the elapsed time of `withTransaction` is less than 120 seconds, jump back to step eight.
|
|
608
|
-
continue retryCommit;
|
|
609
|
-
}
|
|
610
|
-
if (commitError.hasErrorLabel(error_1.MongoErrorLabel.TransientTransactionError)) {
|
|
611
|
-
// 10.ii If the commitTransaction error includes a "TransientTransactionError" label
|
|
612
|
-
// and the elapsed time of withTransaction is less than 120 seconds, jump back to step two.
|
|
613
|
-
lastError = commitError;
|
|
614
|
-
continue retryTransaction;
|
|
612
|
+
// 10. If commitTransaction reported an error:
|
|
613
|
+
lastError = commitError;
|
|
614
|
+
// 10.1 If the commitTransaction error includes a UnknownTransactionCommitResult label and the error is
|
|
615
|
+
// not MaxTimeMSExpired
|
|
616
|
+
if (commitError.hasErrorLabel(error_1.MongoErrorLabel.UnknownTransactionCommitResult) &&
|
|
617
|
+
!isMaxTimeMSExpiredError(commitError)) {
|
|
618
|
+
// 10.1.1 If the elapsed time of withTransaction exceeded TIMEOUT_MS, propagate the commitTransaction
|
|
619
|
+
// error to the caller of withTransaction as per timeout error propagation and return immediately.
|
|
620
|
+
if ((0, utils_1.processTimeMS)() >= deadline) {
|
|
621
|
+
throw makeTimeoutError(commitError, csotEnabled);
|
|
615
622
|
}
|
|
623
|
+
// 10.1.2 Otherwise, jump back to step nine. We will trust commitTransaction to apply a majority write
|
|
624
|
+
// concern on retry attempts (see: Majority write concern is used when retrying commitTransaction).
|
|
625
|
+
continue retryCommit;
|
|
626
|
+
}
|
|
627
|
+
// 10.2 If the commitTransaction error includes a TransientTransactionError label, jump back to step two.
|
|
628
|
+
if (commitError.hasErrorLabel(error_1.MongoErrorLabel.TransientTransactionError)) {
|
|
629
|
+
continue retryTransaction;
|
|
616
630
|
}
|
|
617
|
-
// 10.
|
|
631
|
+
// 10.3 Otherwise, propagate the commitTransaction error to the caller of withTransaction as is and return
|
|
632
|
+
// immediately.
|
|
618
633
|
throw commitError;
|
|
619
634
|
}
|
|
620
635
|
}
|
|
621
636
|
}
|
|
637
|
+
// 11. The transaction was committed successfully. Return immediately.
|
|
622
638
|
// @ts-expect-error Result is always defined if we reach here, the for-loop above convinces TS it is not.
|
|
623
639
|
return result;
|
|
624
640
|
}
|
|
@@ -628,6 +644,24 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
|
|
|
628
644
|
}
|
|
629
645
|
}
|
|
630
646
|
exports.ClientSession = ClientSession;
|
|
647
|
+
function makeTimeoutError(cause, csotEnabled) {
|
|
648
|
+
// Async APIs know how to cancel themselves and might return CSOT error
|
|
649
|
+
if (cause instanceof error_1.MongoOperationTimeoutError) {
|
|
650
|
+
return cause;
|
|
651
|
+
}
|
|
652
|
+
if (csotEnabled) {
|
|
653
|
+
const timeoutError = new error_1.MongoOperationTimeoutError('Timed out during withTransaction', {
|
|
654
|
+
cause
|
|
655
|
+
});
|
|
656
|
+
if (cause instanceof error_1.MongoError) {
|
|
657
|
+
for (const label of cause.errorLabels) {
|
|
658
|
+
timeoutError.addErrorLabel(label);
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
return timeoutError;
|
|
662
|
+
}
|
|
663
|
+
return cause;
|
|
664
|
+
}
|
|
631
665
|
const NON_DETERMINISTIC_WRITE_CONCERN_ERRORS = new Set([
|
|
632
666
|
'CannotSatisfyWriteConcern',
|
|
633
667
|
'UnknownReplWriteConcern',
|
|
@@ -709,7 +743,7 @@ class ServerSession {
|
|
|
709
743
|
/** @internal */
|
|
710
744
|
constructor(cloned) {
|
|
711
745
|
if (cloned != null) {
|
|
712
|
-
const idBytes =
|
|
746
|
+
const idBytes = bson_1.ByteUtils.allocateUnsafe(16);
|
|
713
747
|
idBytes.set(cloned.id.id.buffer);
|
|
714
748
|
this.id = { id: new bson_1.Binary(idBytes, cloned.id.id.sub_type) };
|
|
715
749
|
this.lastUse = cloned.lastUse;
|
|
@@ -857,7 +891,6 @@ function applySession(session, command, options) {
|
|
|
857
891
|
// `autocommit` must always be false to differentiate from retryable writes
|
|
858
892
|
command.autocommit = false;
|
|
859
893
|
if (session.transaction.state === transactions_1.TxnState.STARTING_TRANSACTION) {
|
|
860
|
-
session.transaction.transition(transactions_1.TxnState.TRANSACTION_IN_PROGRESS);
|
|
861
894
|
command.startTransaction = true;
|
|
862
895
|
const readConcern = session.transaction.options.readConcern || session?.clientOptions?.readConcern;
|
|
863
896
|
if (readConcern) {
|
|
@@ -888,5 +921,17 @@ function updateSessionFromResponse(session, document) {
|
|
|
888
921
|
session.snapshotTime = atClusterTime;
|
|
889
922
|
}
|
|
890
923
|
}
|
|
924
|
+
if (session.transaction.state === transactions_1.TxnState.STARTING_TRANSACTION) {
|
|
925
|
+
if (document.ok === 1) {
|
|
926
|
+
session.transaction.transition(transactions_1.TxnState.TRANSACTION_IN_PROGRESS);
|
|
927
|
+
}
|
|
928
|
+
else {
|
|
929
|
+
const error = new error_1.MongoServerError(document.toObject());
|
|
930
|
+
const isRetryableError = error.hasErrorLabel(error_1.MongoErrorLabel.RetryableError);
|
|
931
|
+
if (!isRetryableError) {
|
|
932
|
+
session.transaction.transition(transactions_1.TxnState.TRANSACTION_IN_PROGRESS);
|
|
933
|
+
}
|
|
934
|
+
}
|
|
935
|
+
}
|
|
891
936
|
}
|
|
892
937
|
//# sourceMappingURL=sessions.js.map
|
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/utils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.kDispose = exports.randomBytes = exports.COSMOS_DB_MSG = exports.DOCUMENT_DB_MSG = exports.COSMOS_DB_CHECK = exports.DOCUMENT_DB_CHECK = exports.MONGODB_WARNING_CODE = exports.DEFAULT_PK_FACTORY = exports.HostAddress = exports.BufferPool = exports.List = exports.MongoDBCollectionNamespace = exports.MongoDBNamespace =
|
|
3
|
+
exports.kDispose = exports.randomBytes = exports.COSMOS_DB_MSG = exports.DOCUMENT_DB_MSG = exports.COSMOS_DB_CHECK = exports.DOCUMENT_DB_CHECK = exports.MONGODB_WARNING_CODE = exports.DEFAULT_PK_FACTORY = exports.HostAddress = exports.BufferPool = exports.List = exports.MongoDBCollectionNamespace = exports.MongoDBNamespace = void 0;
|
|
4
4
|
exports.isUint8Array = isUint8Array;
|
|
5
5
|
exports.hostMatchesWildcards = hostMatchesWildcards;
|
|
6
6
|
exports.normalizeHintField = normalizeHintField;
|
|
@@ -49,7 +49,6 @@ exports.noop = noop;
|
|
|
49
49
|
exports.decorateDecryptionResult = decorateDecryptionResult;
|
|
50
50
|
exports.addAbortListener = addAbortListener;
|
|
51
51
|
exports.abortable = abortable;
|
|
52
|
-
const crypto = require("crypto");
|
|
53
52
|
const fs_1 = require("fs");
|
|
54
53
|
const http = require("http");
|
|
55
54
|
const process = require("process");
|
|
@@ -62,22 +61,6 @@ const read_concern_1 = require("./read_concern");
|
|
|
62
61
|
const read_preference_1 = require("./read_preference");
|
|
63
62
|
const common_1 = require("./sdam/common");
|
|
64
63
|
const write_concern_1 = require("./write_concern");
|
|
65
|
-
exports.ByteUtils = {
|
|
66
|
-
toLocalBufferType(buffer) {
|
|
67
|
-
return Buffer.isBuffer(buffer)
|
|
68
|
-
? buffer
|
|
69
|
-
: Buffer.from(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
70
|
-
},
|
|
71
|
-
equals(seqA, seqB) {
|
|
72
|
-
return exports.ByteUtils.toLocalBufferType(seqA).equals(seqB);
|
|
73
|
-
},
|
|
74
|
-
compare(seqA, seqB) {
|
|
75
|
-
return exports.ByteUtils.toLocalBufferType(seqA).compare(seqB);
|
|
76
|
-
},
|
|
77
|
-
toBase64(uint8array) {
|
|
78
|
-
return exports.ByteUtils.toLocalBufferType(uint8array).toString('base64');
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
64
|
/**
|
|
82
65
|
* Returns true if value is a Uint8Array or a Buffer
|
|
83
66
|
* @param value - any value that may be a Uint8Array
|
|
@@ -300,7 +283,7 @@ function* makeCounter(seed = 0) {
|
|
|
300
283
|
* @internal
|
|
301
284
|
*/
|
|
302
285
|
function uuidV4() {
|
|
303
|
-
const result = crypto.
|
|
286
|
+
const result = crypto.getRandomValues(new Uint8Array(16));
|
|
304
287
|
result[6] = (result[6] & 0x0f) | 0x40;
|
|
305
288
|
result[8] = (result[8] & 0x3f) | 0x80;
|
|
306
289
|
return result;
|
|
@@ -664,12 +647,12 @@ class BufferPool {
|
|
|
664
647
|
}
|
|
665
648
|
const firstBuffer = this.buffers.first();
|
|
666
649
|
if (firstBuffer != null && firstBuffer.byteLength >= 4) {
|
|
667
|
-
return
|
|
650
|
+
return bson_1.NumberUtils.getInt32LE(firstBuffer, 0);
|
|
668
651
|
}
|
|
669
652
|
// Unlikely case: an int32 is split across buffers.
|
|
670
653
|
// Use read and put the returned buffer back on top
|
|
671
654
|
const top4Bytes = this.read(4);
|
|
672
|
-
const value =
|
|
655
|
+
const value = bson_1.NumberUtils.getInt32LE(top4Bytes, 0);
|
|
673
656
|
// Put it back.
|
|
674
657
|
this.totalByteLength += 4;
|
|
675
658
|
this.buffers.unshift(top4Bytes);
|
|
@@ -682,11 +665,11 @@ class BufferPool {
|
|
|
682
665
|
}
|
|
683
666
|
// oversized request returns empty buffer
|
|
684
667
|
if (size > this.totalByteLength) {
|
|
685
|
-
return
|
|
668
|
+
return bson_1.ByteUtils.allocate(0);
|
|
686
669
|
}
|
|
687
670
|
// We know we have enough, we just don't know how it is spread across chunks
|
|
688
671
|
// TODO(NODE-4732): alloc API should change based on raw option
|
|
689
|
-
const result =
|
|
672
|
+
const result = bson_1.ByteUtils.allocateUnsafe(size);
|
|
690
673
|
for (let bytesRead = 0; bytesRead < size;) {
|
|
691
674
|
const buffer = this.buffers.shift();
|
|
692
675
|
if (buffer == null) {
|
|
@@ -903,7 +886,7 @@ function compareObjectId(oid1, oid2) {
|
|
|
903
886
|
if (oid2 == null) {
|
|
904
887
|
return 1;
|
|
905
888
|
}
|
|
906
|
-
return
|
|
889
|
+
return bson_1.ByteUtils.compare(oid1.id, oid2.id);
|
|
907
890
|
}
|
|
908
891
|
function parseInteger(value) {
|
|
909
892
|
if (typeof value === 'number')
|
|
@@ -1015,13 +998,7 @@ function squashError(_error) {
|
|
|
1015
998
|
return;
|
|
1016
999
|
}
|
|
1017
1000
|
const randomBytes = (size) => {
|
|
1018
|
-
return
|
|
1019
|
-
crypto.randomBytes(size, (error, buf) => {
|
|
1020
|
-
if (error)
|
|
1021
|
-
return reject(error);
|
|
1022
|
-
resolve(buf);
|
|
1023
|
-
});
|
|
1024
|
-
});
|
|
1001
|
+
return Promise.resolve(crypto.getRandomValues(new Uint8Array(size)));
|
|
1025
1002
|
};
|
|
1026
1003
|
exports.randomBytes = randomBytes;
|
|
1027
1004
|
/**
|
|
@@ -1091,10 +1068,10 @@ function noop() {
|
|
|
1091
1068
|
function decorateDecryptionResult(decrypted, original, isTopLevelDecorateCall = true) {
|
|
1092
1069
|
if (isTopLevelDecorateCall) {
|
|
1093
1070
|
// The original value could have been either a JS object or a BSON buffer
|
|
1094
|
-
if (
|
|
1071
|
+
if (bson_1.ByteUtils.isUint8Array(original)) {
|
|
1095
1072
|
original = (0, bson_1.deserialize)(original);
|
|
1096
1073
|
}
|
|
1097
|
-
if (
|
|
1074
|
+
if (bson_1.ByteUtils.isUint8Array(decrypted)) {
|
|
1098
1075
|
throw new error_1.MongoRuntimeError('Expected result of decryption to be deserialized BSON object');
|
|
1099
1076
|
}
|
|
1100
1077
|
}
|