Dispose stages if execution pipeline is not created due to exception

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Fixed
    • Priority: Major - P3
    • 8.3.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • Query Execution
    • Fully Compatible
    • QE 2025-09-01
    • 200
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      ~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.

            Assignee:
            Daniel Tabacaru
            Reporter:
            Romans Kasperovics
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: