[SERVER-20630] Find command on mongod needs to wait until out of critical section on shard version errors Created: 24/Sep/15 Updated: 07/Oct/15 Resolved: 29/Sep/15 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | None |
| Fix Version/s: | 3.1.9 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Spencer Brody (Inactive) | Assignee: | Misha Tyulenev |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Backwards Compatibility: | Fully Compatible |
| Operating System: | ALL |
| Sprint: | QuInt A (10/12/15) |
| Participants: |
| Description |
|
If a find command comes in to a shard while that shard is in the critical section donating its chunk away, it will throw a shard version error because the version that came in from mongos on the find command won't match the in-memory version that was bumped when we entered the critical section. Currently it will return a shard version error, which will cause the mongos to retry, but the retry could end the same way if the shard still hasn't left the critical section. Instead of returning immediately returning a shard version error, it should do what write commands and setShardVersion does and block until the critical section ends before returning the stale version error. |
| Comments |
| Comment by Githook User [ 29/Sep/15 ] |
|
Author: {u'username': u'mikety', u'name': u'Misha Tyulenev', u'email': u'misha@mongodb.com'}Message: |
| Comment by Andy Schwerin [ 25/Sep/15 ] |
|
If it's going to block, it should respect $maxTimeMs. |