rabt666
rabt666
  • 发布:2026-03-16 22:24
  • 更新:2026-03-16 22:26
  • 阅读:14

【报Bug】简单的注册、登录、退出、查询个人信息方法经常出现慢日志,经常请求失败

分类:uniCloud

产品分类: uniCloud/App

操作步骤:

前端同样的注册、登录请求,有较大概率出现失败

预期结果:

减少请求失败问题,减少简单方法的慢日志问题

实际结果:

前端同样的注册、登录请求,有较大概率出现失败

bug描述:

为什么经常会出现前端请求失败,后台出现慢日志,概率挺高的,都是简单的登录、退出、查询个人信息方法。非常影响用户使用体验!
整体请求频率很低,所以应该没有并发问题,就这种状态都经常出现失败。
慢查询日志:
日志1:
{"op":"query","ns":"db_VKCEYUGU_2955b122-0e37-42a7-a4ee-4ddd503fe6b6.uni-id-users","planSummary":"IDHACK","responseLength":297,"errMsg":"Executor error during find command :: caused by :: operation exceeded time limit","locks":{"ParallelBatchWriterMode":{"acquireCount":{"r":{"$numberLong":"1"}}},"Database":{"acquireCount":{"r":{"$numberLong":"1"}}},"Collection":{"acquireCount":{"r":{"$numberLong":"1"}}},"Mutex":{"acquireCount":{"r":{"$numberLong":"1"}}},"ReplicationStateTransition":{"acquireCount":{"w":{"$numberLong":"1"}}},"Global":{"acquireCount":{"r":{"$numberLong":"1"}}}},"flowControl":{},"command":{"filter":{"_id":{"$oid":"60224b4234dcf30001191841"}},"lsid":{"id":{"$binary":"5dKIDQq8RAmBHwJK8YIjsQ==","$type":"04"}},"$db":"db_VKCEYUGU_2955b122-0e37-42a7-a4ee-4ddd503fe6b6","$clusterTime":{"clusterTime":{"$timestamp":{"t":1773668866,"i":27}},"signature":{"keyId":{"$numberLong":"7565387057120411650"},"hash":{"$binary":"EMPVU+l8rzvVFZamAvfBic67FmA=","$type":"00"}}},"singleBatch":true,"maxTimeMS":{"$numberLong":"5000"},"find":"uni-id-users","limit":1},"protocol":"op_msg","numYield":0,"errCode":50,"replRole":{"stateStr":"PRIMARY","_id":3},"errName":"MaxTimeMSExpired","ok":0,"millis":6062}
日志2:
{"op":"query","ns":"db_VKCEYUGU_2955b122-0e37-42a7-a4ee-4ddd503fe6b6.uni-id-users","planSummary":"IXSCAN { wx_openid.mp-weixin: 1 }","responseLength":297,"errMsg":"Executor error during find command :: caused by :: operation exceeded time limit","locks":{"ParallelBatchWriterMode":{"acquireCount":{"r":{"$numberLong":"1"}}},"Database":{"acquireCount":{"r":{"$numberLong":"1"}}},"Collection":{"acquireCount":{"r":{"$numberLong":"1"}}},"Mutex":{"acquireCount":{"r":{"$numberLong":"1"}}},"ReplicationStateTransition":{"acquireCount":{"w":{"$numberLong":"1"}}},"Global":{"acquireCount":{"r":{"$numberLong":"1"}}}},"flowControl":{},"command":{"filter":{"$or":[{"wx_openid.mp-weixin":"oOuP50EhJ-q-v2vk7youhpqv3qdo"}]},"lsid":{"id":{"$binary":"yqVHK8hWR2ymToQ4gRVjpg==","$type":"04"}},"$db":"db_VKCEYUGU_2955b122-0e37-42a7-a4ee-4ddd503fe6b6","$clusterTime":{"clusterTime":{"$timestamp":{"t":1773666819,"i":3}},"signature":{"keyId":{"$numberLong":"7565387057120411650"},"hash":{"$binary":"WNIAj+Mng/dsLAgncneM3DNieVE=","$type":"00"}}},"maxTimeMS":{"$numberLong":"5000"},"find":"uni-id-users","limit":100},"queryHash":"58E20266","protocol":"op_msg","planCacheKey":"3B503033","numYield":0,"errCode":50,"replRole":{"stateStr":"PRIMARY","_id":3},"errName":"MaxTimeMSExpired","ok":0,"millis":6623}
日志3:
{"op":"query","ns":"db_VKCEYUGU_2955b122-0e37-42a7-a4ee-4ddd503fe6b6.uni-id-users","planSummary":"IXSCAN { username: 1 }","responseLength":297,"errMsg":"Executor error during find command :: caused by :: operation exceeded time limit","locks":{"ParallelBatchWriterMode":{"acquireCount":{"r":{"$numberLong":"1"}}},"Database":{"acquireCount":{"r":{"$numberLong":"1"}}},"Collection":{"acquireCount":{"r":{"$numberLong":"1"}}},"Mutex":{"acquireCount":{"r":{"$numberLong":"1"}}},"ReplicationStateTransition":{"acquireCount":{"w":{"$numberLong":"1"}}},"Global":{"acquireCount":{"r":{"$numberLong":"1"}}}},"flowControl":{},"command":{"filter":{"$or":[{"username":"arteen"}]},"lsid":{"id":{"$binary":"sbGicEcGQMelZC8Lot6DJw==","$type":"04"}},"$db":"db_VKCEYUGU_2955b122-0e37-42a7-a4ee-4ddd503fe6b6","$clusterTime":{"clusterTime":{"$timestamp":{"t":1773648592,"i":23}},"signature":{"keyId":{"$numberLong":"7565387057120411650"},"hash":{"$binary":"JxejhAXet7AdmXeYNq2VlzGbYgI=","$type":"00"}}},"maxTimeMS":{"$numberLong":"5000"},"find":"uni-id-users","limit":1},"queryHash":"379E82C5","protocol":"op_msg","planCacheKey":"BE94A274","numYield":0,"errCode":50,"replRole":{"stateStr":"PRIMARY","_id":3},"errName":"MaxTimeMSExpired","ok":0,"millis":7843}

2026-03-16 22:24 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uniCloud 官方技术交流群 ) 咨询,群中有相关专业的管理员和群友。

这个bug反馈整体较为清晰,提供了关键的慢查询日志,但缺少必要的代码上下文和复现细节。

关于反馈完整性的评价:

反馈中提供了3条详细的MongoDB慢查询日志,这是非常有价值的信息。从日志可以看到,查询uni-id-users集合时,即使使用了索引(如IDHACKIXSCAN { wx_openid.mp-weixin: 1 }IXSCAN { username: 1 }),执行时间仍然超过了5秒的限制(maxTimeMS: 5000),实际耗时在6062ms到7843ms之间,触发MaxTimeMSExpired错误(errCode: 50)。

但是,反馈缺少以下关键信息:

  • 没有提供具体的云函数代码或客户端调用代码,无法判断是uni-id内置方法还是自定义查询
  • 复现步骤过于简略,仅描述为"前端同样的注册、登录请求",没有说明请求频率、数据量、并发情况等
  • 缺少服务空间类型(阿里云/腾讯云/支付宝云)、uni-id版本、数据量大小等环境信息

关于bug是否成立的判断:

根据知识库中的记录,这属于阿里云服务空间出现的慢查询限流问题。知识库中明确提到:"这是阿里云服务空间才会出现的慢查询限流,现根据文档优化下索引试试 https://doc.dcloud.net.cn/unicloud/db-performance.html#slow"。

同时,知识库中也有类似案例,官方人员建议:"unicloud 故障类问题,点击 unicloud web 控制台右上角 报障"。

从日志分析,虽然查询使用了索引,但仍然超时,这通常表明:

  1. 集合数据量较大但索引未完全优化
  2. 存在锁竞争或资源争抢(日志中显示有locks获取记录)
  3. 可能是阿里云MongoDB实例层面的性能问题

建议补充的内容:

建议反馈者补充以下信息以便进一步定位:

  1. 服务空间ID和类型(确认是阿里云)
  2. uni-id-users集合的大致数据量
  3. 出问题时的并发请求量(虽然反馈者说频率低,但需要确认)
  4. 相关云函数的完整代码(特别是涉及uni-id调用的部分)
  5. 是否配置了数据库索引(特别是wx_openid.mp-weixin和username字段的索引)

处理建议:

基于现有信息,建议先按照慢查询优化文档检查索引配置。如果索引已配置且数据量不大(如反馈者所说"简单方法"),这属于服务空间层面的性能故障,建议直接在uniCloud Web控制台右上角点击"报障"联系官方技术支持处理。

内容为 AI 生成,仅供参考

要回复问题请先登录注册