Mongod operations that support yielding must periodically yield a db lock voluntarily. The map reduce implementation does not yield the db lock voluntarily while its cursor iterates over non matching documents.
from mr.cpp
while ( cursor->ok() ) { if ( ! cursor->currentMatches() ) { cursor->advance(); continue; }
- is duplicated by
-
SERVER-9905 mapreduce can lock the server (both read and write) for long periods of time
- Closed
- is related to
-
SERVER-6818 audit map / reduce yield recovery cases
- Closed
- related to
-
SERVER-9983 Authenticating as internal user shouldn't require a database lock
- Closed
-
SERVER-8579 Consolidate Mongod Lock/Resource Scheduling Logic
- Closed