diff options
author | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2015-09-15 18:31:56 -0400 |
---|---|---|
committer | Kaloian Manassiev <kaloian.manassiev@mongodb.com> | 2015-09-16 16:49:16 -0400 |
commit | 4821a88f0f92ea1f4ec3f46e71d5913ebd815fe5 (patch) | |
tree | 782a199adc4dbb468f2bc143c6b7d54dfa6ba323 /src/mongo/s/s_only.cpp | |
parent | e7fe0e33f2f8472c858251192770deafe6d05fef (diff) | |
download | mongo-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.cpp | 9 |
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; } |