[SERVER-57722] Test-only "sbe" command must hold an AutoGet object Created: 15/Jun/21  Updated: 29/Oct/23  Resolved: 28/Jun/21

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 5.1.0-rc0

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

Issue Links:
Backports
Depends
Related
is related to SERVER-55658 Out-of-order destruction of AutoGet* ... Closed
is related to SERVER-57096 [SBE] Nested (non-lock free) AutoGets... Closed
Backwards Compatibility: Fully Compatible
Operating System: ALL
Backport Requested:
v5.0
Sprint: Query Execution 2021-06-28, Query Execution 2021-07-12
Participants:
Linked BF Score: 20

 Description   

The test-only "sbe" command is a way to directly execute an SBE plan. The query is described using a string language of the SBE plan, which is parsed in order to construct the SBE tree. Use of this command requires that the enableTestCommands setParameter is set to true.

This command has been implemented incorrectly ever since we changed the SBE engine to use the external locking policy in SERVER-55658. Prior to this change, callers using a PlanExecutor for an SBE plan did not need to hold an AutoGet object. After this change, the caller is responsible for acquiring the AutoGet. However, the SBE command does not do so.

This could theoretically lead to a host of symptoms. The jstestfuzz suite, however, has picked up on this by running an SBE command around the same time that a collection used by the SBE command is being dropped. This can result in the failure of this tassert().



 Comments   
Comment by Vivian Ge (Inactive) [ 06/Oct/21 ]

Updating the fixversion since branching activities occurred yesterday. This ticket will be in rc0 when it’s been triggered. For more active release information, please keep an eye on #server-release. Thank you!

Comment by Githook User [ 28/Jun/21 ]

Author:

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

Message: SERVER-57722 Make SBE test command take an AutoGetDbForReadLockFree
Branch: master
https://github.com/mongodb/mongo/commit/e5621e0961cf65f99a19615023f3226284229257

Generated at Thu Feb 08 05:42:37 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.