[SERVER-58986] System exceptions can reach noexcept code in the command execution path Created: 30/Jul/21  Updated: 24/May/23

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

Type: Bug Priority: Major - P3
Reporter: George Wangensteen Assignee: Backlog - Service Architecture
Resolution: Unresolved Votes: 0
Labels: sa-remove-fv-backlog-22
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Depends
Assigned Teams:
Service Arch
Operating System: ALL
Backport Requested:
v5.0
Sprint: Service Arch Prioritized List
Participants:
Linked BF Score: 15

 Description   

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. 


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