Details
-
Bug
-
Resolution: Fixed
-
Major
-
6.5.0
-
None
-
Triaged
-
No
Description
In the case of a failover, we may set a vBucket that currently exists in a replica state to the active state. In this case there exists the following race condition that is not currently dealt with:
1) Active and replica setup with same manifest
2) Manifest is updated
3) Manifest update is observed by replica, but we ignore it as we expect manifest updates via DCP
4) Active dies before it receives/applies the new manifest
5) ns_server fails over the active and promotes the replica
6) The new active has ignored the latest manifest (it was in replica state) and is now behind
The manifest should be refreshed from the collections manager object when we set the state of the vBucket, in the same way that we do for NEW active vBuckets.
Attachments
For Gerrit Dashboard: MB-32129 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
102095,3 | MB-32129: Update vBucket manifest on failover | master | kv_engine | Status: MERGED | +2 | +1 |