[SERVER-31366] profile_getmore.js does not tolerate killCursors command Created: 03/Oct/17  Updated: 30/Oct/23  Resolved: 06/Oct/17

Status: Closed
Project: Core Server
Component/s: Querying
Affects Version/s: None
Fix Version/s: 3.4.10, 3.6.0-rc0

Type: Bug Priority: Major - P3
Reporter: David Storch Assignee: David Storch
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Depends
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Requested:
v3.4
Sprint: Query 2017-10-23
Participants:
Linked BF Score: 0

 Description   

The profile_getmore.js test creates a cursor and assigns its client-side DBQuery representation to a variable called cursor:

https://github.com/mongodb/mongo/blob/f64d3147b938c9dcbd24ff127d5506a029902549/jstests/core/profile_getmore.js#L64

It then leaves this cursor open on the server, while the client assigns a second DBQuery object to the cursor variable:

https://github.com/mongodb/mongo/blob/f64d3147b938c9dcbd24ff127d5506a029902549/jstests/core/profile_getmore.js#L81

The abandoned cursor, however, may now be garbage collected by the shell at any time. When a DBQuery is garbage collected, it issues a killCursors command to the server in order to clean up any server-side state. Therefore, after line 81, a killCursors command may at any arbitrary point during the test's execution be issued against the database under test. The test's assertions are not prepared to handle such a command appearing in the system.profile entry. We must fix the test to either

  1. tolerate the possibility of a killCursors command, or
  2. be careful to close the cursor before abandoning it.


 Comments   
Comment by Githook User [ 09/Oct/17 ]

Author:

{'email': 'david.storch@10gen.com', 'name': 'David Storch', 'username': 'dstorch'}

Message: SERVER-31366 Use filters in getLatestProfilerEntry() to make profile_getmore.js more robust.

(cherry picked from commit aff9c7e6afe0b78e91a724fe5e53ea4717d7d813)

Conflicts:
jstests/core/profile_getmore.js
Branch: v3.4
https://github.com/mongodb/mongo/commit/1b3b9fdec94021c36def1c9d021c4104b3677aa4

Comment by Githook User [ 06/Oct/17 ]

Author:

{'email': 'david.storch@10gen.com', 'name': 'David Storch', 'username': 'dstorch'}

Message: SERVER-31366 Use filters in getLatestProfilerEntry() to make profile_getmore.js more robust.
Branch: master
https://github.com/mongodb/mongo/commit/aff9c7e6afe0b78e91a724fe5e53ea4717d7d813

Generated at Thu Feb 08 04:26:48 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.