मैं हाल ही में इस त्रुटि को स्वयं देख रहा हूं क्योंकि मैं mongod.log
से उत्पन्न प्रति माह 25Gb देख रहा था इसी तरह के संदेश के साथ। हालांकि, मैंने देखा कि लॉग संदेश में एक क्वेरी शामिल थी (मैंने इस पोस्ट में फिट होने के लिए संदेश को स्वरूपित किया है, यह वास्तव में एक पंक्ति पर था):
warning: ClientCursor::yield can't unlock b/c of recursive lock ns: my-database.users top:
{
opid: 1627436260,
active: true,
secs_running: 0,
op: "query",
ns: "my-database",
query:
{
findAndModify: "users",
query: { Registered: false, Completed: 0 },
sort: { Created: 1 },
update: { $set: { NextRefresh: "2014-12-07" } },
new: true
},
client: "10.1.34.175:53582",
desc: "conn10906412",
threadId: "0x7f824f0f9700",
connectionId: 10906412,
locks: { ^: "w", ^my-database: "W" },
waitingForLock: false,
numYields: 0,
lockStats: { timeLockedMicros: {}, timeAcquiringMicros: { r: 0, w: 3 } }
}
कुछ गुगलिंग ने खुलासा किया कि यह संदेश सबसे अधिक तब उठाया जाता है जब क्वेरी किसी इंडेक्स का उपयोग नहीं कर सकती है। मैंने .explain()
. का उपयोग करने का प्रयास किया लॉग में क्वेरी के साथ और निश्चित रूप से यह दर्शाता है कि एक BasicCursor
बिना किसी अनुक्रमणिका के उपयोग किया जा रहा था:
db.users.find( { Registered: false, Completed: 0 } ).sort( { Created: 1 } ).explain()
{
"cursor" : "BasicCursor",
"isMultiKey" : false,
"n" : 0,
"nscannedObjects" : 10453,
"nscanned" : 10453,
"nscannedObjectsAllPlans" : 10453,
"nscannedAllPlans" : 10453,
"scanAndOrder" : true,
"indexOnly" : false,
"nYields" : 1,
"nChunkSkips" : 0,
"millis" : 7,
"indexBounds" : {
},
"server" : "mongodb-live.eu-west-1a.10_1_2_213:27017"
}
क्वेरी में तत्वों के लिए एक अनुक्रमणिका जोड़ने से समस्या ठीक हो गई। लॉग अब उत्पन्न नहीं हुआ था और जब मैंने .explain()
चलाया था फिर से यह दिखाया गया कि एक इंडेक्स का इस्तेमाल किया जा रहा है:
{
"cursor" : "BtreeCursor Registered_1_Completed_1",
"isMultiKey" : false,
"n" : 0,
"nscannedObjects" : 0,
"nscanned" : 0,
"nscannedObjectsAllPlans" : 0,
"nscannedAllPlans" : 1,
"scanAndOrder" : true,
"indexOnly" : false,
"nYields" : 0,
"nChunkSkips" : 0,
"millis" : 0,
"indexBounds" : {
"Registered" : [
[
false,
false
]
],
"Completed" : [
[
0,
0
]
]
},
"server" : "mongodb-live.eu-west-1a.10_1_2_213:27017"
}