Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Removes the TODO and switchifEmpty stage #1454

Closed
wants to merge 175 commits into from
Closed

Conversation

rozza
Copy link
Member

@rozza rozza commented Jul 19, 2024

As clientSessionHelper.withClientSession will always produce a session, there is no need for the switchIfEmpty branch.

rozza and others added 30 commits August 22, 2023 14:43
Initial client side operation timeout (CSOT) work.
The CSOT class is passed to all operations and currently encapsulate the following timeouts:

  - `timeoutMS` the new optional client side operation timeout
  - `maxTimeMS` the legacy maxTimeMS operation value. Ignored if CSOT is set.
  - `maxCommitTimeMS` the legacy commit timeout. Ignored if CSOT is set.
  - `maxAwaitTimeMS` the getMore await timeout.

This initial work allows for the CSOT to be available to all operations and later
work will pass / apply this timeout where required by the Spec.

JAVA-4086
# Conflicts:
#	driver-core/src/main/com/mongodb/ConnectionString.java
#	driver-core/src/test/unit/com/mongodb/MongoClientSettingsSpecification.groovy
An immutable class that contains all user configured timeouts.
This will eventaually allow access to user configuration down the
stack into Bindings / Cluster.selectServer and Connection.command.

JAVA-5169
In preparation for adding all contexts to OperationContext

JAVA-5170
This will allow the timeout settings to be available to the Binding
and this will allow the binding to create the TimeoutContext for the
operation.

JAVA-5170
Now contains RequestContext, SessionContext and TimeoutContext

JAVA-5170
Operations now supply TimeoutSettings

JAVA-5170
Pass OperationContext as a whole instead of RequestContext,
SessionContext, TimeoutContext and ServerAPI

JAVA-5170
Adds support for Explainable operations

JAVA-5172
# Conflicts:
#	driver-core/src/main/com/mongodb/internal/connection/BaseCluster.java
#	driver-core/src/main/com/mongodb/internal/connection/LoadBalancedCluster.java
#	driver-core/src/test/functional/com/mongodb/ClusterFixture.java
#	driver-core/src/test/unit/com/mongodb/internal/connection/BaseClusterSpecification.groovy
#	driver-reactive-streams/src/main/com/mongodb/reactivestreams/client/internal/ClientSessionBinding.java
#	driver-reactive-streams/src/test/unit/com/mongodb/reactivestreams/client/internal/ClientSessionBindingSpecification.groovy
#	driver-sync/src/test/unit/com/mongodb/client/internal/ClientSessionBindingSpecification.groovy
vbabanin and others added 26 commits April 17, 2024 17:03
- Resolve regression where CSOT exception is exposed despite CSOT being disabled.
- Correct premature decrease in connect timeout before connection initiation.
- Encapsulate logic within TimeoutContext.

JAVA-5439
JAVA-5402

Co-authored-by: Valentin Kovalenko <valentin.male.kovalenko@gmail.com>
Co-authored-by: Valentin Kovalenko <valentin.kovalenko@mongodb.com>
Co-authored-by: Maxim Katcharov <maxim.katcharov@mongodb.com>
Co-authored-by: Jeff Yemin <jeff.yemin@mongodb.com>
Co-authored-by: ashni <105304831+ashni-mongodb@users.noreply.github.com>
# Conflicts:
#	THIRD-PARTY-NOTICES
#	config/spotbugs/exclude.xml
#	driver-core/src/main/com/mongodb/internal/connection/Authenticator.java
#	driver-core/src/main/com/mongodb/internal/connection/DefaultAuthenticator.java
#	driver-core/src/main/com/mongodb/internal/connection/InternalConnection.java
#	driver-core/src/main/com/mongodb/internal/connection/InternalStreamConnection.java
#	driver-core/src/main/com/mongodb/internal/connection/InternalStreamConnectionInitializer.java
#	driver-core/src/main/com/mongodb/internal/connection/OidcAuthenticator.java
#	driver-core/src/main/com/mongodb/internal/connection/SaslAuthenticator.java
#	driver-core/src/test/functional/com/mongodb/ClusterFixture.java
#	driver-core/src/test/unit/com/mongodb/internal/connection/AbstractConnectionPoolTest.java
#	driver-reactive-streams/src/test/functional/com/mongodb/reactivestreams/client/syncadapter/SyncMongoClient.java
#	driver-sync/src/test/functional/com/mongodb/client/csot/ClientSideOperationsEncryptionTimeoutProseTest.java
#	driver-sync/src/test/functional/com/mongodb/client/unified/Entities.java
# Conflicts:
#	driver-sync/src/main/com/mongodb/client/gridfs/GridFSDownloadStreamImpl.java
#	driver-sync/src/main/com/mongodb/client/gridfs/GridFSUploadStreamImpl.java
- Mark session as dirty when MongoSocketException occurs.
- Skip killCursors command execution when getMore fails in LOAD_BALANCER mode.

JAVA-5474
JAVA-5476
- Re-enable tests that were previously disabled.
- Add additional assertions to enhance test reliability.
- Implement ignoreExtraEvents override to address flakiness in tests with race conditions.
- Fix issue where timeoutContext is null in subsequent commit transactions.
- Reduce timeouts in serverless tests to ensure they pass.

JAVA-5104
JAVA-5379

* Remove usages of hasExpired

* Replace RetryState's timeout with retryUntilTimeoutThrowsException
# Conflicts:
#	driver-reactive-streams/src/test/functional/com/mongodb/reactivestreams/client/unified/UnifiedServerDiscoveryAndMonitoringTest.java
#	driver-sync/src/test/functional/com/mongodb/client/unified/UnifiedTest.java
Copy link

There is an existing patch(es) for this commit SHA:

Please note that the status that is posted is not in the context of this PR but rather the (latest) existing patch and that may affect some tests that may depend on the particular PR. If your tests do not rely on any PR-specific values (like base or head branch name) then your tests will report the same status. If you would like a patch to run in the context of this PR and abort the other(s), comment 'evergreen retry'.

@rozza rozza closed this Jul 19, 2024
@rozza rozza deleted the CSOT-TODO branch July 22, 2024 08:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants