[SERVER-60707] Relax invariants in SBE save/restore logic Created: 14/Oct/21  Updated: 29/Oct/23  Resolved: 15/Oct/21

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 5.2.0

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

Issue Links:
Depends
Backwards Compatibility: Fully Compatible
Operating System: ALL
Participants:
Linked BF Score: 159

 Description   

There is a recently-added invariant in SBE's PlanStage::saveState() checking that the stage is not already in a "saved" state.

It is possible to get a WCE while restoring() a plan executor. If this happens, the plan will actually be left in a "partially" restored state, with some stages still in a "saved" state. When retrying the save/restore, the invariant in saveState() about the stage not already being in a saved state will trip.

We should delete this invariant and relax others as necessary.



 Comments   
Comment by Githook User [ 14/Oct/21 ]

Author:

{'name': 'Ian Boros', 'email': 'ian.boros@mongodb.com', 'username': 'borosaurus'}

Message: SERVER-60707 Remove invariant from SBE stages.h
Branch: master
https://github.com/mongodb/mongo/commit/61fa4973cae82ba4666514fd9c4ee904993f915c

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