-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Field Level Encryption, Queryable Encryption
-
None
-
Server Security
-
Fully Compatible
-
Security 2023-04-03, Security 2023-04-17
-
None
-
None
-
None
-
None
-
None
-
None
-
None
I've got a C# .NET application (driver 2.19.0) and I'm querying a DB using IAggregateFluent with a match, a lookup, and a projection. This is the pretty-print of the query - it's nothing terribly fancy:
[
{
"$match": {
"Timestamp": {
"$gte": "ISODate(2023-02-20T14:40:00Z)"
}
}
},
{
"$lookup": {
"from": "RemoteCommandResults",
"localField": "_id",
"foreignField": "CommandId",
"as": "Results"
}
},
{
"$project": {
"_id": "$_id",
"Command": "$Command",
"CommandType": "$CommandType",
"Timestamp": "$Timestamp",
"ClientIpAddress": "$ClientIpAddress",
"Location": "$Location",
"SubmittedByUser": "$SubmittedByUser",
"CompletedEndpoints": {
"$map": {
"input": {
"$filter": {
"input": "$Results",
"as": "r",
"cond": {
"$ne": [
"$$r.WhenCompleted",
null
]
}
}
},
"as": "r",
"in": "$$r.EndpointId"
}
},
"PendingEndpoints": {
"$map": {
"input": {
"$filter": {
"input": "$Results",
"as": "r",
"cond": {
"$not": {
"$ne": [
"$$r.WhenCompleted",
null
]
}
}
}
},
"as": "r",
"in": "$$r.EndpointId"
}
}
}
}
]
I'm using CSFLE with mongo_crypt_v1.dll and running on Windows.
If I don't enable encryption, i.e., leave the AutoEncryptionOptions out of the MongoClientSettings, everything works as expected.
If encryption is enabled however, either libmongocrypt.dll or mongo_crypt_v1.dll prints an assertion failure to the console window and aborts the application:
{"t":{"$date":"2023-03-09T21:04:56.738Z"},"s":"F", "c":"ASSERT", "id":23079, "ctx":"thread13","msg":"Invariant failure","attr":{"expr":"isVersionInitialized()","file":"Z:\\data\\mci\\badd693c2380d3476d7367abd345c3b9\\src\\src\\mongo/db/server_options.h","line":156}}
{"t":{"$date":"2023-03-09T21:04:56.738Z"},"s":"F", "c":"ASSERT", "id":23080, "ctx":"thread13","msg":"\n\n***aborting after invariant() failure\n\n"}
The query seems to be well formed, as evidenced by the fact that it works when the encryption libraries aren't in use, so I suspect there may be a bug in the encryption libraries and how they handle aggregation pipelines.
- related to
-
SERVER-71003 Enable featureFlagFLE2Range in mongo_crypt
-
- Closed
-