[SERVER-15093] If replSetUpdatePosition command fails due to NodeNotFound, resend a handshake Created: 29/Aug/14 Updated: 25/Oct/14 Resolved: 08/Oct/14 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication |
| Affects Version/s: | None |
| Fix Version/s: | 2.7.8 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Spencer Brody (Inactive) | Assignee: | Spencer Brody (Inactive) |
| 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 | ||||||||
| Participants: | |||||||||
| Description |
|
First we need to get rid of the invariant that fails if we get an updatePosition command for a node we haven't gotten a handshake from yet. It could be a dassert, but in production code we should just return NodeNotFound or some other recognizable error code. Then on the other side, the node that sent the replSetUpdatePosition command should detect that code and resend not just the update position but also first the handshake. |
| Comments |
| Comment by Githook User [ 08/Oct/14 ] |
|
Author: {u'username': u'stbrody', u'name': u'Spencer T Brody', u'email': u'spencer@mongodb.com'}Message: |
| Comment by Spencer Brody (Inactive) [ 08/Oct/14 ] |
|
In 2.6 we don't send a meaningful error code when replSetUpdatePosition fails, so there's no way to know that we're missing the handshake. |