Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-58986

System exceptions can reach noexcept code in the command execution path

    • Type: Icon: Bug Bug
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Service Arch
    • ALL
    • v5.0
    • Service Arch Prioritized List
    • 15

      Commands are invoked as continuations chained via the "thenWithState" future utility; see here. "thenWithState" is noexcept annotated, and invokes the provided continuation inline via makeReadyFutureWith; see here. makeReadyFutureWith catches any DBExceptions thrown by the continuation and converts them to Statuses; see  here, but does not catch other (i.e. system/std) exceptions. That means if a non-db exception (i.e. from an STL container or type) is thrown and uncaught anywhere in the command execution process, during stack unwinding it could bubble up to the noexcept-annotated thenWithState, which will result in process termination with minimal diagnostics available. 

       

      Acceptance criteria: Investigate how we want to solve this and bring a proposal back to the team. 

            Assignee:
            backlog-server-servicearch [DO NOT USE] Backlog - Service Architecture
            Reporter:
            george.wangensteen@mongodb.com George Wangensteen
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated: