mongocxx插入数据后db.currentOp报BSON UTF-8无效错误的技术咨询
MongoDB 6.0 + mongocxx 驱动 UTF-8 验证错误相关问题
问题背景
在Debian 9和Debian 10系统中,使用mongocxx驱动向MongoDB 6.0插入数据后,通过mongosh 1.6执行db.currentOp()进行操作监控时,触发如下错误:
BSONError: Invalid UTF-8 string in BSON document
开启profiling后,通过db.system.profile.find()查看操作日志,发现日志除业务数据外还包含客户端驱动描述信息:
- 部分会话的
$client字段中,driver.name和platform包含类似'Н\x07\x18_\x7F'的字符,不会触发错误; - 部分会话中这些字段出现无效UTF-8字符
��,导致db.system.profile.find()和db.currentOp()报错。
目前db.system.profile.find()可通过设置enableUtf8Validation=false规避错误,但db.currentOp()无法使用该参数,且业务必须依赖db.currentOp()完成监控。
咨询问题
- 相同环境下,C++客户端与MongoDB的不同会话中,driver name数据为何会存在差异?
- 是否有办法为
db.currentOp()禁用UTF-8验证? - 该BSON UTF-8错误的主要诱因是mongocxx驱动、Debian系统还是MongoDB?
内容的提问来源于stack exchange,提问作者Taras Kolomiets
相关产品推荐
相关产品推荐

