[SERVER-20630] Find command on mongod needs to wait until out of critical section on shard version errors Created: 24/Sep/15  Updated: 07/Oct/15  Resolved: 29/Sep/15

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

Type: Bug Priority: Major - P3
Reporter: Spencer Brody (Inactive) Assignee: Misha Tyulenev
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: QuInt A (10/12/15)
Participants:

 Description   

If a find command comes in to a shard while that shard is in the critical section donating its chunk away, it will throw a shard version error because the version that came in from mongos on the find command won't match the in-memory version that was bumped when we entered the critical section.

Currently it will return a shard version error, which will cause the mongos to retry, but the retry could end the same way if the shard still hasn't left the critical section. Instead of returning immediately returning a shard version error, it should do what write commands and setShardVersion does and block until the critical section ends before returning the stale version error.



 Comments   
Comment by Githook User [ 29/Sep/15 ]

Author:

{u'username': u'mikety', u'name': u'Misha Tyulenev', u'email': u'misha@mongodb.com'}

Message: SERVER-20630 find command on mongod needs to wait until out of critical section
Branch: master
https://github.com/mongodb/mongo/commit/30a3e0779904964675928d0b9f87876b721ecfa0

Comment by Andy Schwerin [ 25/Sep/15 ]

If it's going to block, it should respect $maxTimeMs.

Generated at Thu Feb 08 03:54:47 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.