After getExecutor() was enhanced to return an actual Status instead of a bool, not all callers were changed to capture and return this new status. For example, today, the geoNear command can still return this:
{ waitedMS: 0, ok: 0.0, errmsg: ”can’t get query executor” }
I believe the mapReduce command has similar issues.