Some callers merely warn to the log if the Runner reports errors while others don't even check for errors. Both of these will lead to incorrect results being returned to the user rather than reporting an error. Searching the code for PlanExecutor::ADVANCED should show all loops that iterate a runner.
Incomplete list of things that ignore errors:
- delete (will report success even though some matching docs won't be deleted)
- dbhash (will return the incorrect hash)
- count
- distinct (will return an incomplete list of distinct values, with no indication of incompleteness)
- findAndModify (can upsert even if something already matches)
- geoNear
- mr
- validate
- is duplicated by
-
SERVER-16141 some commands abort silently when index is dropped after returning from yield
- Closed
-
SERVER-16877 dataSize command doesn't report some errors
- Closed
-
SERVER-20278 filemd5 command hides execution error in some cases
- Closed
-
SERVER-13160 dbcommands.cpp::CmdDatasize misleading error message on early break
- Closed
- is related to
-
SERVER-2454 Queries that are killed during a yield should return error to user instead of partial result set
- Closed
-
SERVER-22535 Some index operations (drop index, abort index build, update TTL config) on collection during active migration can cause migration to skip documents
- Closed
-
SERVER-20278 filemd5 command hides execution error in some cases
- Closed
-
SERVER-22844 Aggregate command should return error to user when killed instead of returning partial result set
- Closed
-
SERVER-16920 Better error messages for operations killed during yield
- Closed
- related to
-
SERVER-22871 splitChunk needs to check for a failed index scan
- Closed