summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEliot Horowitz <eliot@10gen.com>2011-08-29 14:38:31 -0400
committerEliot Horowitz <eliot@10gen.com>2011-08-29 14:39:43 -0400
commitcba958b22301f26c9f29a37a533eb9a31d7c77b8 (patch)
tree20572eb3c29524b97cb5f5c04d80b6149cdeec79
parent75eb7ca39ab4d5180078402bb3c4ed948705c83f (diff)
downloadmongo-cba958b22301f26c9f29a37a533eb9a31d7c77b8.tar.gz
fix yield with disk issue in update.cpp SERVER-3633
-rw-r--r--db/ops/update.cpp7
-rw-r--r--db/record.cpp3
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;
}