mongodb 7.0.0-dev.20251219.sha.a4211e77 → 7.0.0-dev.20251220.sha.e70fdc98

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/lib/sessions.js CHANGED
@@ -4,6 +4,7 @@ exports.ServerSessionPool = exports.ServerSession = exports.ClientSession = void
4
4
  exports.maybeClearPinnedConnection = maybeClearPinnedConnection;
5
5
  exports.applySession = applySession;
6
6
  exports.updateSessionFromResponse = updateSessionFromResponse;
7
+ const promises_1 = require("timers/promises");
7
8
  const bson_1 = require("./bson");
8
9
  const metrics_1 = require("./cmap/metrics");
9
10
  const constants_1 = require("./constants");
@@ -497,29 +498,56 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
497
498
  : (0, utils_1.processTimeMS)();
498
499
  let committed = false;
499
500
  let result;
501
+ let lastError = null;
500
502
  try {
501
- while (!committed) {
502
- // 2. Invoke startTransaction on the session
503
- // 3. If `startTransaction` reported an error, propagate that error to the caller of `withTransaction` and return immediately.
503
+ retryTransaction: for (
504
+ // 2. Set `transactionAttempt` to `0`.
505
+ let transactionAttempt = 0, isRetry = false; !committed; ++transactionAttempt, isRetry = transactionAttempt > 0) {
506
+ // 2. If `transactionAttempt` > 0:
507
+ if (isRetry) {
508
+ // 2.i If elapsed time + `backoffMS` > `TIMEOUT_MS`, then raise the previously encountered error. If the elapsed time of
509
+ // `withTransaction` is less than TIMEOUT_MS, calculate the backoffMS to be
510
+ // `jitter * min(BACKOFF_INITIAL * 1.5 ** (transactionAttempt - 1), BACKOFF_MAX)`. sleep for `backoffMS`.
511
+ // 2.i.i jitter is a random float between \[0, 1)
512
+ // 2.i.ii `transactionAttempt` is the variable defined in step 1.
513
+ // 2.i.iii `BACKOFF_INITIAL` is 5ms
514
+ // 2.i.iv `BACKOFF_MAX` is 500ms
515
+ const BACKOFF_INITIAL_MS = 5;
516
+ const BACKOFF_MAX_MS = 500;
517
+ const BACKOFF_GROWTH = 1.5;
518
+ const jitter = Math.random();
519
+ const backoffMS = jitter *
520
+ Math.min(BACKOFF_INITIAL_MS * BACKOFF_GROWTH ** (transactionAttempt - 1), BACKOFF_MAX_MS);
521
+ const willExceedTransactionDeadline = (this.timeoutContext?.csotEnabled() &&
522
+ backoffMS > this.timeoutContext.remainingTimeMS) ||
523
+ (0, utils_1.processTimeMS)() + backoffMS > startTime + MAX_TIMEOUT;
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.`));
527
+ }
528
+ await (0, promises_1.setTimeout)(backoffMS);
529
+ }
530
+ // 3. Invoke startTransaction on the session
531
+ // 4. If `startTransaction` reported an error, propagate that error to the caller of `withTransaction` and return immediately.
504
532
  this.startTransaction(options); // may throw on error
505
533
  try {
506
- // 4. Invoke the callback.
507
- // 5. Control returns to withTransaction. (continued below)
534
+ // 5. Invoke the callback.
535
+ // 6. Control returns to withTransaction. (continued below)
508
536
  const promise = fn(this);
509
537
  if (!(0, utils_1.isPromiseLike)(promise)) {
510
538
  throw new error_1.MongoInvalidArgumentError('Function provided to `withTransaction` must return a Promise');
511
539
  }
512
540
  result = await promise;
513
- // 5. (cont.) Determine the current state of the ClientSession (continued below)
541
+ // 6. (cont.) Determine the current state of the ClientSession (continued below)
514
542
  if (this.transaction.state === transactions_1.TxnState.NO_TRANSACTION ||
515
543
  this.transaction.state === transactions_1.TxnState.TRANSACTION_COMMITTED ||
516
544
  this.transaction.state === transactions_1.TxnState.TRANSACTION_ABORTED) {
517
- // 7. If the ClientSession is in the "no transaction", "transaction aborted", or "transaction committed" state,
545
+ // 8. If the ClientSession is in the "no transaction", "transaction aborted", or "transaction committed" state,
518
546
  // assume the callback intentionally aborted or committed the transaction and return immediately.
519
547
  return result;
520
548
  }
521
549
  // 5. (cont.) and whether the callback reported an error
522
- // 6. If the callback reported an error:
550
+ // 7. If the callback reported an error:
523
551
  }
524
552
  catch (fnError) {
525
553
  if (!(fnError instanceof error_1.MongoError) || fnError instanceof error_1.MongoInvalidArgumentError) {
@@ -530,60 +558,68 @@ class ClientSession extends mongo_types_1.TypedEventEmitter {
530
558
  }
531
559
  if (this.transaction.state === transactions_1.TxnState.STARTING_TRANSACTION ||
532
560
  this.transaction.state === transactions_1.TxnState.TRANSACTION_IN_PROGRESS) {
533
- // 6.i If the ClientSession is in the "starting transaction" or "transaction in progress" state,
561
+ // 7.i If the ClientSession is in the "starting transaction" or "transaction in progress" state,
534
562
  // invoke abortTransaction on the session
535
563
  await this.abortTransaction();
536
564
  }
537
565
  if (fnError.hasErrorLabel(error_1.MongoErrorLabel.TransientTransactionError) &&
538
- (this.timeoutContext != null || (0, utils_1.processTimeMS)() - startTime < MAX_TIMEOUT)) {
539
- // 6.ii If the callback's error includes a "TransientTransactionError" label and the elapsed time of `withTransaction`
566
+ (this.timeoutContext?.csotEnabled() || (0, utils_1.processTimeMS)() - startTime < MAX_TIMEOUT)) {
567
+ // 7.ii If the callback's error includes a "TransientTransactionError" label and the elapsed time of `withTransaction`
540
568
  // is less than 120 seconds, jump back to step two.
541
- continue;
569
+ lastError = fnError;
570
+ continue retryTransaction;
542
571
  }
543
- // 6.iii If the callback's error includes a "UnknownTransactionCommitResult" label, the callback must have manually committed a transaction,
572
+ // 7.iii If the callback's error includes a "UnknownTransactionCommitResult" label, the callback must have manually committed a transaction,
544
573
  // propagate the callback's error to the caller of withTransaction and return immediately.
545
- // The 6.iii check is redundant with 6.iv, so we don't write code for it
546
- // 6.iv Otherwise, propagate the callback's error to the caller of withTransaction and return immediately.
574
+ // The 7.iii check is redundant with 6.iv, so we don't write code for it
575
+ // 7.iv Otherwise, propagate the callback's error to the caller of withTransaction and return immediately.
547
576
  throw fnError;
548
577
  }
549
- while (!committed) {
578
+ retryCommit: while (!committed) {
550
579
  try {
551
580
  /*
552
581
  * We will rely on ClientSession.commitTransaction() to
553
582
  * apply a majority write concern if commitTransaction is
554
583
  * being retried (see: DRIVERS-601)
555
584
  */
556
- // 8. Invoke commitTransaction on the session.
585
+ // 9. Invoke commitTransaction on the session.
557
586
  await this.commitTransaction();
558
587
  committed = true;
559
- // 9. If commitTransaction reported an error:
588
+ // 10. If commitTransaction reported an error:
560
589
  }
561
590
  catch (commitError) {
562
- /*
563
- * Note: a maxTimeMS error will have the MaxTimeMSExpired
564
- * code (50) and can be reported as a top-level error or
565
- * inside writeConcernError, ex.
566
- * { ok:0, code: 50, codeName: 'MaxTimeMSExpired' }
567
- * { ok:1, writeConcernError: { code: 50, codeName: 'MaxTimeMSExpired' } }
568
- */
569
- if (!isMaxTimeMSExpiredError(commitError) &&
570
- commitError.hasErrorLabel(error_1.MongoErrorLabel.UnknownTransactionCommitResult) &&
571
- (this.timeoutContext != null || (0, utils_1.processTimeMS)() - startTime < MAX_TIMEOUT)) {
572
- // 9.i If the `commitTransaction` error includes a "UnknownTransactionCommitResult" label and the error is not
573
- // MaxTimeMSExpired and the elapsed time of `withTransaction` is less than 120 seconds, jump back to step eight.
574
- continue;
575
- }
576
- if (commitError.hasErrorLabel(error_1.MongoErrorLabel.TransientTransactionError) &&
577
- (this.timeoutContext != null || (0, utils_1.processTimeMS)() - startTime < MAX_TIMEOUT)) {
578
- // 9.ii If the commitTransaction error includes a "TransientTransactionError" label
579
- // and the elapsed time of withTransaction is less than 120 seconds, jump back to step two.
580
- break;
591
+ // If CSOT is enabled, we repeatedly retry until timeoutMS expires. This is enforced by providing a
592
+ // timeoutContext to each async API, which know how to cancel themselves (i.e., the next retry will
593
+ // abort the withTransaction call).
594
+ // If CSOT is not enabled, do we still have time remaining or have we timed out?
595
+ const hasTimedOut = !this.timeoutContext?.csotEnabled() && (0, utils_1.processTimeMS)() - startTime >= MAX_TIMEOUT;
596
+ if (!hasTimedOut) {
597
+ /*
598
+ * Note: a maxTimeMS error will have the MaxTimeMSExpired
599
+ * code (50) and can be reported as a top-level error or
600
+ * inside writeConcernError, ex.
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;
615
+ }
581
616
  }
582
- // 9.iii Otherwise, propagate the commitTransaction error to the caller of withTransaction and return immediately.
617
+ // 10.iii Otherwise, propagate the commitTransaction error to the caller of withTransaction and return immediately.
583
618
  throw commitError;
584
619
  }
585
620
  }
586
621
  }
622
+ // @ts-expect-error Result is always defined if we reach here, the for-loop above convinces TS it is not.
587
623
  return result;
588
624
  }
589
625
  finally {
@@ -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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mongodb",
3
- "version": "7.0.0-dev.20251219.sha.a4211e77",
3
+ "version": "7.0.0-dev.20251220.sha.e70fdc98",
4
4
  "description": "The official MongoDB driver for Node.js",
5
5
  "main": "lib/index.js",
6
6
  "files": [
package/src/sessions.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import { setTimeout } from 'timers/promises';
2
+
1
3
  import { Binary, type Document, Long, type Timestamp } from './bson';
2
4
  import type { CommandOptions, Connection } from './cmap/connection';
3
5
  import { ConnectionPoolMetrics } from './cmap/metrics';
@@ -732,17 +734,61 @@ export class ClientSession
732
734
  : processTimeMS();
733
735
 
734
736
  let committed = false;
735
- let result: any;
737
+ let result: T;
738
+
739
+ let lastError: Error | null = null;
736
740
 
737
741
  try {
738
- while (!committed) {
739
- // 2. Invoke startTransaction on the session
740
- // 3. If `startTransaction` reported an error, propagate that error to the caller of `withTransaction` and return immediately.
742
+ retryTransaction: for (
743
+ // 2. Set `transactionAttempt` to `0`.
744
+ let transactionAttempt = 0, isRetry = false;
745
+ !committed;
746
+ ++transactionAttempt, isRetry = transactionAttempt > 0
747
+ ) {
748
+ // 2. If `transactionAttempt` > 0:
749
+ if (isRetry) {
750
+ // 2.i If elapsed time + `backoffMS` > `TIMEOUT_MS`, then raise the previously encountered error. If the elapsed time of
751
+ // `withTransaction` is less than TIMEOUT_MS, calculate the backoffMS to be
752
+ // `jitter * min(BACKOFF_INITIAL * 1.5 ** (transactionAttempt - 1), BACKOFF_MAX)`. sleep for `backoffMS`.
753
+ // 2.i.i jitter is a random float between \[0, 1)
754
+ // 2.i.ii `transactionAttempt` is the variable defined in step 1.
755
+ // 2.i.iii `BACKOFF_INITIAL` is 5ms
756
+ // 2.i.iv `BACKOFF_MAX` is 500ms
757
+ const BACKOFF_INITIAL_MS = 5;
758
+ const BACKOFF_MAX_MS = 500;
759
+ const BACKOFF_GROWTH = 1.5;
760
+ const jitter = Math.random();
761
+ const backoffMS =
762
+ jitter *
763
+ Math.min(
764
+ BACKOFF_INITIAL_MS * BACKOFF_GROWTH ** (transactionAttempt - 1),
765
+ BACKOFF_MAX_MS
766
+ );
767
+
768
+ const willExceedTransactionDeadline =
769
+ (this.timeoutContext?.csotEnabled() &&
770
+ backoffMS > this.timeoutContext.remainingTimeMS) ||
771
+ processTimeMS() + backoffMS > startTime + MAX_TIMEOUT;
772
+
773
+ if (willExceedTransactionDeadline) {
774
+ throw (
775
+ lastError ??
776
+ new MongoRuntimeError(
777
+ `Transaction retry did not record an error: should never occur. Please file a bug.`
778
+ )
779
+ );
780
+ }
781
+
782
+ await setTimeout(backoffMS);
783
+ }
784
+
785
+ // 3. Invoke startTransaction on the session
786
+ // 4. If `startTransaction` reported an error, propagate that error to the caller of `withTransaction` and return immediately.
741
787
  this.startTransaction(options); // may throw on error
742
788
 
743
789
  try {
744
- // 4. Invoke the callback.
745
- // 5. Control returns to withTransaction. (continued below)
790
+ // 5. Invoke the callback.
791
+ // 6. Control returns to withTransaction. (continued below)
746
792
  const promise = fn(this);
747
793
  if (!isPromiseLike(promise)) {
748
794
  throw new MongoInvalidArgumentError(
@@ -752,18 +798,18 @@ export class ClientSession
752
798
 
753
799
  result = await promise;
754
800
 
755
- // 5. (cont.) Determine the current state of the ClientSession (continued below)
801
+ // 6. (cont.) Determine the current state of the ClientSession (continued below)
756
802
  if (
757
803
  this.transaction.state === TxnState.NO_TRANSACTION ||
758
804
  this.transaction.state === TxnState.TRANSACTION_COMMITTED ||
759
805
  this.transaction.state === TxnState.TRANSACTION_ABORTED
760
806
  ) {
761
- // 7. If the ClientSession is in the "no transaction", "transaction aborted", or "transaction committed" state,
807
+ // 8. If the ClientSession is in the "no transaction", "transaction aborted", or "transaction committed" state,
762
808
  // assume the callback intentionally aborted or committed the transaction and return immediately.
763
809
  return result;
764
810
  }
765
811
  // 5. (cont.) and whether the callback reported an error
766
- // 6. If the callback reported an error:
812
+ // 7. If the callback reported an error:
767
813
  } catch (fnError) {
768
814
  if (!(fnError instanceof MongoError) || fnError instanceof MongoInvalidArgumentError) {
769
815
  // This first preemptive abort regardless of TxnState isn't spec,
@@ -776,70 +822,80 @@ export class ClientSession
776
822
  this.transaction.state === TxnState.STARTING_TRANSACTION ||
777
823
  this.transaction.state === TxnState.TRANSACTION_IN_PROGRESS
778
824
  ) {
779
- // 6.i If the ClientSession is in the "starting transaction" or "transaction in progress" state,
825
+ // 7.i If the ClientSession is in the "starting transaction" or "transaction in progress" state,
780
826
  // invoke abortTransaction on the session
781
827
  await this.abortTransaction();
782
828
  }
783
829
 
784
830
  if (
785
831
  fnError.hasErrorLabel(MongoErrorLabel.TransientTransactionError) &&
786
- (this.timeoutContext != null || processTimeMS() - startTime < MAX_TIMEOUT)
832
+ (this.timeoutContext?.csotEnabled() || processTimeMS() - startTime < MAX_TIMEOUT)
787
833
  ) {
788
- // 6.ii If the callback's error includes a "TransientTransactionError" label and the elapsed time of `withTransaction`
834
+ // 7.ii If the callback's error includes a "TransientTransactionError" label and the elapsed time of `withTransaction`
789
835
  // is less than 120 seconds, jump back to step two.
790
- continue;
836
+ lastError = fnError;
837
+ continue retryTransaction;
791
838
  }
792
839
 
793
- // 6.iii If the callback's error includes a "UnknownTransactionCommitResult" label, the callback must have manually committed a transaction,
840
+ // 7.iii If the callback's error includes a "UnknownTransactionCommitResult" label, the callback must have manually committed a transaction,
794
841
  // propagate the callback's error to the caller of withTransaction and return immediately.
795
- // The 6.iii check is redundant with 6.iv, so we don't write code for it
796
- // 6.iv Otherwise, propagate the callback's error to the caller of withTransaction and return immediately.
842
+ // The 7.iii check is redundant with 6.iv, so we don't write code for it
843
+ // 7.iv Otherwise, propagate the callback's error to the caller of withTransaction and return immediately.
797
844
  throw fnError;
798
845
  }
799
846
 
800
- while (!committed) {
847
+ retryCommit: while (!committed) {
801
848
  try {
802
849
  /*
803
850
  * We will rely on ClientSession.commitTransaction() to
804
851
  * apply a majority write concern if commitTransaction is
805
852
  * being retried (see: DRIVERS-601)
806
853
  */
807
- // 8. Invoke commitTransaction on the session.
854
+ // 9. Invoke commitTransaction on the session.
808
855
  await this.commitTransaction();
809
856
  committed = true;
810
- // 9. If commitTransaction reported an error:
857
+ // 10. If commitTransaction reported an error:
811
858
  } catch (commitError) {
812
- /*
813
- * Note: a maxTimeMS error will have the MaxTimeMSExpired
814
- * code (50) and can be reported as a top-level error or
815
- * inside writeConcernError, ex.
816
- * { ok:0, code: 50, codeName: 'MaxTimeMSExpired' }
817
- * { ok:1, writeConcernError: { code: 50, codeName: 'MaxTimeMSExpired' } }
818
- */
819
- if (
820
- !isMaxTimeMSExpiredError(commitError) &&
821
- commitError.hasErrorLabel(MongoErrorLabel.UnknownTransactionCommitResult) &&
822
- (this.timeoutContext != null || processTimeMS() - startTime < MAX_TIMEOUT)
823
- ) {
824
- // 9.i If the `commitTransaction` error includes a "UnknownTransactionCommitResult" label and the error is not
825
- // MaxTimeMSExpired and the elapsed time of `withTransaction` is less than 120 seconds, jump back to step eight.
826
- continue;
859
+ // If CSOT is enabled, we repeatedly retry until timeoutMS expires. This is enforced by providing a
860
+ // timeoutContext to each async API, which know how to cancel themselves (i.e., the next retry will
861
+ // abort the withTransaction call).
862
+ // If CSOT is not enabled, do we still have time remaining or have we timed out?
863
+ const hasTimedOut =
864
+ !this.timeoutContext?.csotEnabled() && processTimeMS() - startTime >= MAX_TIMEOUT;
865
+
866
+ if (!hasTimedOut) {
867
+ /*
868
+ * Note: a maxTimeMS error will have the MaxTimeMSExpired
869
+ * code (50) and can be reported as a top-level error or
870
+ * inside writeConcernError, ex.
871
+ * { ok:0, code: 50, codeName: 'MaxTimeMSExpired' }
872
+ * { ok:1, writeConcernError: { code: 50, codeName: 'MaxTimeMSExpired' } }
873
+ */
874
+ if (
875
+ !isMaxTimeMSExpiredError(commitError) &&
876
+ commitError.hasErrorLabel(MongoErrorLabel.UnknownTransactionCommitResult)
877
+ ) {
878
+ // 10.i If the `commitTransaction` error includes a "UnknownTransactionCommitResult" label and the error is not
879
+ // MaxTimeMSExpired and the elapsed time of `withTransaction` is less than 120 seconds, jump back to step eight.
880
+ continue retryCommit;
881
+ }
882
+
883
+ if (commitError.hasErrorLabel(MongoErrorLabel.TransientTransactionError)) {
884
+ // 10.ii If the commitTransaction error includes a "TransientTransactionError" label
885
+ // and the elapsed time of withTransaction is less than 120 seconds, jump back to step two.
886
+ lastError = commitError;
887
+
888
+ continue retryTransaction;
889
+ }
827
890
  }
828
891
 
829
- if (
830
- commitError.hasErrorLabel(MongoErrorLabel.TransientTransactionError) &&
831
- (this.timeoutContext != null || processTimeMS() - startTime < MAX_TIMEOUT)
832
- ) {
833
- // 9.ii If the commitTransaction error includes a "TransientTransactionError" label
834
- // and the elapsed time of withTransaction is less than 120 seconds, jump back to step two.
835
- break;
836
- }
837
-
838
- // 9.iii Otherwise, propagate the commitTransaction error to the caller of withTransaction and return immediately.
892
+ // 10.iii Otherwise, propagate the commitTransaction error to the caller of withTransaction and return immediately.
839
893
  throw commitError;
840
894
  }
841
895
  }
842
896
  }
897
+
898
+ // @ts-expect-error Result is always defined if we reach here, the for-loop above convinces TS it is not.
843
899
  return result;
844
900
  } finally {
845
901
  this.timeoutContext = null;