diff options
-rw-r--r-- | src/mongo/db/query/idhack_runner.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/mongo/db/query/idhack_runner.cpp b/src/mongo/db/query/idhack_runner.cpp index d587323d5f0..af365e0b37c 100644 --- a/src/mongo/db/query/idhack_runner.cpp +++ b/src/mongo/db/query/idhack_runner.cpp @@ -146,6 +146,14 @@ namespace { _done = true; return Runner::RUNNER_DEAD; } + + // Even if we're not dead due to something like a db or collection drop, the + // document we're looking for may have already been deleted out from under + // us. + if (_locFetching.isNull()) { + _done = true; + return Runner::RUNNER_EOF; + } } } @@ -233,7 +241,6 @@ namespace { if (_done || _killed) { return; } if (_locFetching == dl && (type == INVALIDATION_DELETION)) { _locFetching = DiskLoc(); - _killed = true; } } |