[SERVER-4941] collection rename may not replicate / clone properly during initial sync Created: 12/Feb/12 Updated: 29/Apr/20 Resolved: 21/Sep/17 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Storage |
| Affects Version/s: | None |
| Fix Version/s: | 3.6.0-rc0 |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Aaron Staple | Assignee: | Geert Bosch |
| 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 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Sprint: | Storage 2017-07-10, Storage 2017-07-31, Storage 2017-09-11, Storage 2017-10-02 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Case: | (copied to CRM) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Linked BF Score: | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Description |
|
Issue Status as of Sep 25, 2017 ISSUE DESCRIPTION AND IMPACT In addition to the renameCollection command, operations such as aggregations using $out and MapReduce with output to a collection may implicitly use renameCollection operations to create their output collections. Users who attempt to resync a node and, before the process is complete, run any of the of the operations above, may see their initial sync process abort and restart. In extreme cases (e.g.: if users are constantly running aggregations to new collections) initial sync operations may never complete. DIAGNOSIS AND AFFECTED VERSIONS
RATIONALE
At this point the test.aggResults collection on the primary/sync source contains the documents A, B, C and D. On the newly added node however, that collection only contains the documents C and D, and while it believes itself consistent with the primary and caught up, reads from that node will return incomplete results. Additionally, if the user now does any writes to documents A or B this may cause the newly added node to crash as it won’t have any record of A or B. REMEDIATION AND WORKAROUNDS Users mapReduce() may also pause their mapReduce() operations. Alternatively, they may use Output to a collection with an action as a workaround, as this avoids the renameCollection operation performed internally by the out option of mapReduce. For example:
FIX VERSION |
| Comments |
| Comment by Githook User [ 21/Sep/17 ] |
|
Author: {'email': 'geert@mongodb.com', 'name': 'Geert Bosch', 'username': 'GeertBosch'}Message: |
| Comment by Githook User [ 21/Sep/17 ] |
|
Author: {'email': 'geert@mongodb.com', 'name': 'Geert Bosch', 'username': 'GeertBosch'}Message: |
| Comment by Eric Milkie [ 02/May/17 ] |
|
Once UUIDs are present and used by replication to apply ops (instead of using the namespace name), this problem will be solved. |
| Comment by Eric Milkie [ 02/May/16 ] |
|
|
| Comment by auto [ 13/Feb/12 ] |
|
Author: {u'login': u'astaple', u'name': u'Aaron', u'email': u'aaron@10gen.com'}Message: |