gpt4 book ai didi

mongodb - 蒙哥错误: Unable to acquire lock

转载 作者:可可西里 更新时间:2023-11-01 10:01:42 26 4
gpt4 key购买 nike

我最近在运行测试时遇到了这个错误。我在本地 MongoDB 服务器 (4.0.5) 上试过了,我也在 Mongo Atlas 上试过了,但遇到了同样的问题。

我尝试增加锁定超时,但没有效果。

我不确定是什么问题。

{ MongoError: Unable to acquire lock '{8576955153473224393: Database, 1659426125832142537}' within a max lock request timeout of '5ms' milliseconds.
at queryCallback (/home/user/workspace/my-project/node_modules/mongodb-core/lib/cursor.js:248:25)
at /home/user/workspace/my-project/node_modules/mongodb-core/lib/connection/pool.js:532:18
at _combinedTickCallback (internal/process/next_tick.js:132:7)
at process._tickDomainCallback (internal/process/next_tick.js:219:9)
errorLabels: [ 'TransientTransactionError' ],
operationTime: Timestamp { _bsontype: 'Timestamp', low_: 29, high_: 1548245676 },
ok: 0,
errmsg: 'Unable to acquire lock \'{8576955153473224393: Database, 1659426125832142537}\' within a max lock request timeout of \'5ms\' milliseconds.',
code: 24,
codeName: 'LockTimeout',
'$clusterTime':
{ clusterTime: Timestamp { _bsontype: 'Timestamp', low_: 29, high_: 1548245676 },
signature: { hash: [Object], keyId: 0 } },
name: 'MongoError',
[Symbol(mongoErrorContextSymbol)]: {} }

最佳答案

不是真正的修复,而是解决方法。由于它只在自动测试期间发生在我的本地机器上,而在生产中不会发生,所以我可以避免这种情况。

Unable to acquire lock可以通过设置 maxTransactionLockRequestTimeoutMillis 来防止错误更高的东西但是因为我也有这个错误Unable to read from a snapshot due to pending collection catalog changes; please retry the operation.同时,我想出了以下方法来修复该错误,这反过来也修复了第一个错误:

我的测试运行器 (AVA) 为每个测试文件创建了一个新数据库,但现在似乎需要一些时间来解决并添加 await timeout(1000)mongoose.connect之后问题消失了。对这个解决方案不是很满意,但对于测试来说已经足够好了。

关于mongodb - 蒙哥错误: Unable to acquire lock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54327147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com