-
Type:
Bug
-
Resolution: Works as Designed
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Query Integration
-
ALL
-
None
-
None
-
None
-
None
-
None
-
None
-
None
SERVER-108117 validates that $_internalIsHybridSearch in $lookup and $unionWith, uasserts when a non-internal client supplies it. SERVER-126247 added a serializeForReparse option that ensures pipelines the server serializes and then immediately re-parses locally don't carry internal-only fields into a parse done under the external client.
This is a problem because pipeline_resolver serializes the whole user pipeline with serializeForReparse after a mongos view kickback, and the retry loop in cluster_aggregate re-parses that BSON on the same OperationContext — still the external client. Although the explain serialization path suppresses emitting $_internalIsHybridSearch, the aforementioned serializeForReparse path does not. Thus, we appear to emit a field we then reject ourselves.
This issue was fixed on v8.3 but still applies to v9.0/master.
- is related to
-
SERVER-126247 $search.mergingPipeline is not properly validated
-
- Closed
-