summaryrefslogtreecommitdiff
path: root/src/mongo/s/s_only.cpp
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2015-09-15 18:31:56 -0400
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2015-09-16 16:49:16 -0400
commit4821a88f0f92ea1f4ec3f46e71d5913ebd815fe5 (patch)
tree782a199adc4dbb468f2bc143c6b7d54dfa6ba323 /src/mongo/s/s_only.cpp
parente7fe0e33f2f8472c858251192770deafe6d05fef (diff)
downloadmongo-4821a88f0f92ea1f4ec3f46e71d5913ebd815fe5.tar.gz
SERVER-20407 Sharded findAndModify should retry on shard version mismatch
Diffstat (limited to 'src/mongo/s/s_only.cpp')
-rw-r--r--src/mongo/s/s_only.cpp9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/mongo/s/s_only.cpp b/src/mongo/s/s_only.cpp
index 275ca7ae3d2..d62107a76d5 100644
--- a/src/mongo/s/s_only.cpp
+++ b/src/mongo/s/s_only.cpp
@@ -123,13 +123,14 @@ void Command::execCommandClientBasic(OperationContext* txn,
}
std::string errmsg;
- bool ok;
+ bool ok = false;
try {
ok = c->run(txn, dbname, cmdObj, queryOptions, errmsg, result);
} catch (const DBException& e) {
- ok = false;
- int code = e.getCode();
- if (code == RecvStaleConfigCode) { // code for StaleConfigException
+ const int code = e.getCode();
+
+ // Codes for StaleConfigException
+ if (code == RecvStaleConfigCode || code == SendStaleConfigCode) {
throw;
}