-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Serverless
-
Fully Compatible
-
Server Serverless 2023-09-18
isResumableChangeStreamError is not currently passing in a serialization context when calling aggregation_request_helper::parseFromBSON which can cause us to deserialize agg fields incorrectly. In order to reach a valid request, we will need to go back up the call stack several layers and pass it down.
AggregateCommandRequest::parse() <-- consumes sc here aggregation_request_helper::parseFromBSON() <-- no sc here ErrorLabelBuilder::isResumableChangeStreamError() ErrorLabelBuilder::build getErrorLabels ParseAndRunCommand::_updateStatsAndApplyErrorLabels <-- request can be pulled from _rec appendErrorLabelsAndTopologyVersion ExecCommandDatabase::_handleFailure <-- OpMsgRequest is available here RunCommandImpl::_epilogue() <-- OpMsgRequest is available here
We may consider pulling the VTS off the opCtx for this fix as a stopgap, but we likely want to pull it from the request where possible. This change is in support of SERVER-73113, and can be tested by enabling the dbName assertions in that ticket.
- is depended on by
-
SERVER-73113 Allow only specific global dbs to be created without a tenantId
- Closed