System exceptions can reach noexcept code in the command execution path

XMLWordPrintableJSON

    • Server Programmability
    • Fully Compatible
    • ALL
    • v5.0
    • 15
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      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:
            Ronald Steinke
            Reporter:
            George Wangensteen (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            10 Start watching this issue

              Created:
              Updated:
              Resolved: