Mongodb 在mongo工具上的db.fsyncLock()之后运行db.fsyncUnlock()会导致进程停滞

Mongodb 在mongo工具上的db.fsyncLock()之后运行db.fsyncUnlock()会导致进程停滞,mongodb,mongodump,Mongodb,Mongodump,我使用 mongo admin -u <user> -p <pass> --port <port> 解锁命令长时间处于停滞状态。如果我按CTRL-C键,我将得到以下带有断言失败的跟踪:isasonobj()src/mongo/bson/bson inl.h 1831 2015-05-13T10:08:55.455+0000 Assertion failure isABSONObj() src/mongo/bson/bson-inl.h 183 2015-05

我使用

mongo admin -u <user> -p <pass> --port <port>
解锁命令长时间处于停滞状态。如果我按CTRL-C键,我将得到以下带有断言失败的跟踪:isasonobj()src/mongo/bson/bson inl.h 1831

2015-05-13T10:08:55.455+0000 Assertion failure isABSONObj() src/mongo/bson/bson-inl.h 183
2015-05-13T10:08:55.458+0000 0x868a51 0x816b59 0x7f9cce 0x7e06be 0x61b2e0 0x7fbcb07fec60 0x7fbcb159eab9 0x8266f2 0x826729 0x826775 0x81edfc 0x81fcc6 0x8202b1 0x66d8e5 0x699f9a 0x66359a 0x680574 0x7c4743 0x7a71f9 0x7197bb52579 
mongo(_ZN5mongo15printStackTraceERSo+0x21) [0x868a51]
mongo(_ZN5mongo10logContextEPKc+0x159) [0x816b59]
mongo(_ZN5mongo12verifyFailedEPKcS1_j+0x17e) [0x7f9cce]
mongo(_ZNK5mongo11shell_utils18ConnectionRegistry30killOperationsOnAllConnectionsEb+0x45e) [0x7e06be]
mongo(_Z10quitNicelyi+0x40) [0x61b2e0] /lib64/libc.so.6(+0x33c60) [0x7fbcb07fec60]
/lib64/libpthread.so.0(recv+0x79) [0x7fbcb159eab9]
mongo(_ZN5mongo6Socket5_recvEPci+0x22) [0x8266f2]
mongo(_ZN5mongo6Socket11unsafe_recvEPci+0x9) [0x826729]
mongo(_ZN5mongo6Socket4recvEPci+0x35) [0x826775]
mongo(_ZN5mongo13MessagingPort4recvERNS_7MessageE+0x9c) [0x81edfc]
mongo(_ZN5mongo13MessagingPort4recvERKNS_7MessageERS1_+0x36) [0x81fcc6]
mongo(_ZN5mongo13MessagingPort4callERNS_7MessageES2_+0x31) [0x8202b1]
mongo(_ZN5mongo18DBClientConnection4callERNS_7MessageES2_bPSs+0x55) [0x66d8e5]
mongo(_ZN5mongo14DBClientCursor4initEv+0xba) [0x699f9a]
mongo(_ZN5mongo12DBClientBase5queryERKSsNS_5QueryEiiPKNS_7BSONObjEii+0xea) [0x66359a]
mongo(_ZN5mongo18DBClientConnection5queryERKSsNS_5QueryEiiPKNS_7BSONObjEii+0xa4) [0x680574]
mongo(_ZN5mongo9mongoFindEPNS_7V8ScopeERKN2v89ArgumentsE+0x3d3) [0x7c4743]
mongo(_ZN5mongo7V8Scope10v8CallbackERKN2v89ArgumentsE+0x89) [0x7a71f9][0x7197bb52579]
当我再次登录并运行以下功能以检查是否持有锁时:

serverIsLocked = function () {
                 var co = db.currentOp();
                 if (co && co.fsyncLock) {
                     return true;
                 }
                 return false;
             }
我得到:

rs0:SECONDARY> serverIsLocked()
true
rs0:SECONDARY> db.fsyncUnlock()
db.fsyncUnlock()再次被卡住。不确定发生了什么以及如何解锁数据库。
fsync
的文档包括以下内容:

警告 调用带锁的fsync时,请确保连接保持打开状态,以允许后续调用db.fsyncUnlock()

关闭连接可能会使锁难以松开

我最初尝试使用
--eval
锁定和解锁。这可能是个问题吗?现在解锁数据库的方法是什么

mongo admin --eval "printjson(db.fsyncLock())"
mongo admin --eval "printjson(db.fsyncUnlock())"
所有这些都是我正在编写的mongodump脚本的一部分

更新:我在创建我的脚本时遵循以下帖子:

更新2:与2.2版后的版本类似,
mongodump
不应与
db.fsyncLock()一起使用。我将从脚本中删除它,并将
--oplog
标志添加到
mongodump
。然而,我仍然需要弄清楚如何解锁我的数据库

mongo admin --eval "printjson(db.fsyncLock())"
mongo admin --eval "printjson(db.fsyncUnlock())"