-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Execution
-
Storage Execution 2025-06-09
-
None
-
3
-
TBD
-
None
-
None
-
None
-
None
-
None
-
None
-
0
This breaks the rule that ExceptionFor<code> must inherit from ExceptionForCat<category> for each category that code belongs to. This means that that exception will not be caught by catch(const ExceptionForCat<ErrorCategory::SystemOverloadedError>&, but isA<ErrorCategory::SystemOverloadedError>() will return true. This is very weird and not how this is supposed to work. I think there are two valid options here:
1. Change the definition of the error code to not include any categories if you do not want to fully participate in the category system.
2. Make TemporarilyUnavailableException inherit from ExceptionForCat<ErrorCategory::SystemOverloadedError>. Since that exception seems to go out of its way to not inherit from AssertionException this will be tricky.
- is related to
-
SERVER-105249 Rename ExceptionForCat<ErrorCategory> to just ExceptionFor<ErrorCategory>
-
- Closed
-
-
SERVER-105743 Introduce new error code for rejecting admission in RateLimiter
-
- Needs Scheduling
-
-
SERVER-105744 Use code other than TemporarilyUnavailable for ConnectionPool request rejection
-
- Needs Scheduling
-
- related to
-
SERVER-78702 Consolidate WriteConflictException and related exceptions into an error category
-
- Open
-