-
Type:
Spec Change
-
Resolution: Duplicate
-
Priority:
Unknown
-
None
-
Component/s: Handshake
-
None
Summary
The handshake specification requires that drivers throw if metadata is appended that contains `|`:
**NOTE:** All strings provided as part of the driver info MUST NOT contain the delimiter used for metadata concatention. Drivers MUST throw an error if any of these strings contains that character.
However, there are no tests for this behavior.
Motivation
Who is the affected end user?
Driver users.
How does this affect the end user?
Drivers might not be spec compliant because there is no test that asserts that drivers throw if a DriverInfo contains a `|`.
How likely is it that this problem or use case will occur?
Probably unlikely, but still important to test.
If the problem does occur, what are the consequences and how severe are they?
(See discussion on DRIVERS-3251 as well)
Accepting metadata with `|` characters in each field could result in incorrect client metadata being collected.
Is this issue urgent?
This work should probably be done before / at the same time as DRIVERS-3251.
Is this ticket required by a downstream team?
no.
Is this ticket only for tests?
yes, unless drivers are not spec compliant.
Acceptance Criteria
Add a prose test that demonstrates that if a DriverInfoOptions is appended to a MongoClient and any field contains a `|`, an error is thrown.