diff options
author | Eliot Horowitz <eliot@10gen.com> | 2011-08-29 14:38:31 -0400 |
---|---|---|
committer | Eliot Horowitz <eliot@10gen.com> | 2011-08-29 14:39:43 -0400 |
commit | cba958b22301f26c9f29a37a533eb9a31d7c77b8 (patch) | |
tree | 20572eb3c29524b97cb5f5c04d80b6149cdeec79 | |
parent | 75eb7ca39ab4d5180078402bb3c4ed948705c83f (diff) | |
download | mongo-cba958b22301f26c9f29a37a533eb9a31d7c77b8.tar.gz |
fix yield with disk issue in update.cpp SERVER-3633
-rw-r--r-- | db/ops/update.cpp | 7 | ||||
-rw-r--r-- | db/record.cpp | 3 |
2 files changed, 9 insertions, 1 deletions
diff --git a/db/ops/update.cpp b/db/ops/update.cpp index fb2b4d5695b..fd9798a8f26 100644 --- a/db/ops/update.cpp +++ b/db/ops/update.cpp @@ -1002,7 +1002,12 @@ namespace mongo { { // we need to re-find in case something changed - + d = nsdetails( ns ); + if ( ! d ) { + // dropped + return UpdateResult(0, 0, 0); + } + nsdt = &NamespaceDetailsTransient::get_w(ns); IndexDetails& i = d->idx(idIdxNo); BSONObj key = i.getKeyFromQuery( patternOrig ); loc = i.idxInterface().findSingle(i, i.head, key); diff --git a/db/record.cpp b/db/record.cpp index 18be9c75fe2..51dc52072dd 100644 --- a/db/record.cpp +++ b/db/record.cpp @@ -190,6 +190,9 @@ namespace mongo { char * end = data + netLength(); for ( ; addr <= end ; addr += 2048 ) { __record_touch_dummy += addr[0]; + + break; // TODO: remove this, pending SERVER-3711 + if ( ! entireRecrd ) break; } |