[SERVER-20407] findAndModify on mongoS upserts to the wrong shard Created: 14/Sep/15 Updated: 10/Dec/15 Resolved: 16/Sep/15 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Querying, Sharding |
| Affects Version/s: | 3.0.6, 3.1.8 |
| Fix Version/s: | 3.0.8, 3.1.9 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Misha Tyulenev | Assignee: | Kaloian Manassiev |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||
| Operating System: | ALL | ||||||||||||||||||||||||
| Backport Completed: | |||||||||||||||||||||||||
| Steps To Reproduce: | This is simplified jstests/sharding/find_and_modify_after_multi_write.js
The last line should return a record, but it does not because findAndModify updates the wrong shard. The query
finds the record. |
||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||
| Description |
|
findAndModify command is not able to detect stale shard version and as a result can update the wrong shard if the chunk on the shard that it has cached has been moved via a moveChunk command from different mongoS. |
| Comments |
| Comment by Githook User [ 26/Oct/15 ] |
|
Author: {u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'}Message: This is an approximate backport of |
| Comment by Githook User [ 17/Sep/15 ] |
|
Author: {u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'}Message: The fix for |
| Comment by Githook User [ 17/Sep/15 ] |
|
Author: {u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'}Message: The fix for |
| Comment by Githook User [ 16/Sep/15 ] |
|
Author: {u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'}Message: |