[SERVER-45892] Index operations from 4.2 mongos shouldn't abort migrations Created: 30/Jan/20  Updated: 29/Oct/23  Resolved: 12/Feb/20

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: None
Fix Version/s: 4.3.4

Type: Bug 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

Issue Links:
Depends
Related
Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Sharding 2020-02-10, Sharding 2020-02-24
Participants:
Linked BF Score: 30

 Description   

As of SERVER-44911, an index operation (e.g. dropIndexes, createIndexes) will interrupt concurrent outgoing migrations. If a migration is interrupted in the critical section, it can lead to an fassert when the shard is running in FCV 4.2 (as described in SERVER-45752). This isn't a problem for index operations sent from a 4.4 binary mongos, because they will have a shard version and will wait for the critical section to complete. Operations from a 4.2 binary mongos (possible in a mixed version cluster) instead use the old protocol and are sent to all shards without a shard version, so they can bypass the critical section, interrupt a committing migration, and lead to the fassert.

Instead, only index operations sent from a 4.4 mongos should abort migrations, which can be differentiated by checking if the command was sent with a shard version using OperationShardingState::isOperationVersioned().



 Comments   
Comment by Githook User [ 12/Feb/20 ]

Author:

{'name': 'Jack Mulrow', 'username': 'jsmulrow', 'email': 'jack.mulrow@mongodb.com'}

Message: SERVER-45892 Index operations from 4.2 mongos shouldn't abort migrations
Branch: master
https://github.com/mongodb/mongo/commit/37d1ef0d02582ac95a2adf835a341e0ead12abb3

Generated at Thu Feb 08 05:09:58 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.