[SERVER-30508] Fail rollback via refetch if UUID of transactions collection is different on sync source Created: 03/Aug/17 Updated: 30/Oct/23 Resolved: 23/Aug/17 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | None |
| Fix Version/s: | 3.5.13 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Jack Mulrow | Assignee: | Jack Mulrow |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Backwards Compatibility: | Fully Compatible |
| Sprint: | Sharding 2017-08-21, Sharding 2017-09-11 |
| Participants: |
| Description |
|
Unreplicated drops or renames on either node involved in a rollback can cause the UUID of the transactions collection to be inconsistent between them, which can lead to transactions records being fetched incorrectly. Since this shouldn't happen often (only on non-WiredTiger storage engines and the config database has existing access control), if when refetching transaction table documents, the namespace returned for the query using the local node's transaction table UUID is not "config.transactions," rollback should fail, forcing initial sync. The namespace is already returned for the find command used in rollbackViaRefetch with UUIDs, so it just needs to be checked if the UUID used in the find matches the UUID of the transactions table. |
| Comments |
| Comment by Ramon Fernandez Marina [ 24/Aug/17 ] |
|
Author: {'username': u'jsmulrow', 'name': u'Jack Mulrow', 'email': u'jack.mulrow@mongodb.com'}Message: |