[SERVER-26471] Race between chunk metadata commit and an immediate move of a chunk from the donor may leave gaps in the shard metadata Created: 05/Oct/16 Updated: 19/Nov/16 Resolved: 08/Oct/16 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | 3.4.0-rc0 |
| Fix Version/s: | 3.4.0-rc1 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Kaloian Manassiev | Assignee: | Kaloian Manassiev |
| 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: | Sharding 2016-10-10, Sharding 2016-10-31 |
| Participants: |
| Description |
|
During chunk migration the recipient shard is not notified when the metadata reflecting the move is committed. This is not necessary because the recipient will be forced to refresh its metadata the first time it receives the new shard version from a mongos. Because of this property of the protocol, the recipient shard is free in turn to donate some other chunk as soon as the donor has entered the critical section and has requested that the recipient flushes all received documents. If a former recipient manages to donate a new chunk before the original migration commits, due to the incremental metadata refresh, this recipient will never have the originally donated chunk in its metadata and will keep filtering out documents for a chunk which it in fact owns. |
| Comments |
| Comment by Githook User [ 08/Oct/16 ] |
|
Author: {u'username': u'kaloianm', u'name': u'Kaloian Manassiev', u'email': u'kaloian.manassiev@mongodb.com'}Message: Also introduces a failpoint and js test to exercise the race condition. |