~CursorStage() is called every time when
- there is an exception in exec::agg::buildPipeline(qoPipeline) and
- qoPipeline contains DocumentSourceCursor stage.
Since the QE pipeline is created only at the end of exec::agg::buildPipeline(qoPipeline), the already-created stages like CursorStage are not auto-disposed, so the tassert() in ~CursorStage will always fail causing the process termination.
One way to resolve this is to add auto-dispose to the individual stages.
- related to
-
SERVER-109935 Auto-dispose QE aggregation stages in stage destructor
-
- Needs Scheduling
-