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

fix(NODE-6242): close becomes true after calling close when documents still remain #4161

Merged
merged 4 commits into from
Jun 27, 2024

Conversation

nbbeeken
Copy link
Contributor

@nbbeeken nbbeeken commented Jun 27, 2024

Description

What is changing?

Fix a change in behavior to close introduced in a recent cursor refactor. The expectation was that close became true when no more documents remain locally.

Is there new documentation needed for these changes?

Yes, API docs updated.

What is the motivation for this change?

The closed flag is used to determine if there are docs remaing in mongosh

Release Highlight

Clarified cursor state properties

The cursor has a few properties that represent the current state from the perspective of the driver and server. This PR corrects an issue that never made it to a release but we would like to take the opportunity to re-highlight what each of these properties mean.

  • cursor.closed - cursor.close() has been called, and there are no more documents stored in the cursor.
  • cursor.killed - cursor.close() was called while the cursor still had a non-zero id, and the driver sent a killCursors command to free server-side resources
  • cursor.id == null - The cursor has yet to send it's first command (ex. find, aggregate)
  • cursor.id.isZero() - The server sent the driver a cursor id of 0 indicating a cursor no longer exists on the server side because all data has been returned to the driver.
  • cursor.bufferedCount() - The amount of documents stored locally in the cursor.

Double check the following

  • Ran npm run check:lint script
  • Self-review completed using the steps outlined here
  • PR title follows the correct format: type(NODE-xxxx)[!]: description
    • Example: feat(NODE-1234)!: rewriting everything in coffeescript
  • Changes are covered by tests
  • New TODOs have a related JIRA ticket

@durran durran self-assigned this Jun 27, 2024
@durran durran added the Primary Review In Review with primary reviewer, not yet ready for team's eyes label Jun 27, 2024
@durran durran merged commit e3d70c3 into main Jun 27, 2024
29 checks passed
@durran durran deleted the NODE-6242-cursor-close branch June 27, 2024 16:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Primary Review In Review with primary reviewer, not yet ready for team's eyes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants