Details
-
Bug
-
Resolution: Fixed
-
Critical
-
6.6.5, 7.0.0, 7.0.2, 7.0.3, 7.0.4, 7.0.5, 7.1.0, 7.1.1, 7.1.2, 7.1.3
-
0
Description
If using cbepctl to change the max_cas of a vbucket, the process of repair fails to update the max_cas stored on disk, due to the flusher having a conditional update which only writes the largest value to disk.
This means that the 'poisoned' cas repair will revert at warmup.
Note that cbepctl correctly updates the in-memory state and all mutations are timestamped using the fixed value - just warmup reverts.
I suspect we need a special set-vb-state to bypass the conditional and just write the new max_cas to disk.
Conversation with support and this may be required for a 7.1.4 MP (and also a candidate for 7.2? but maybe it can slip to 7.2.1)
Attachments
For Gerrit Dashboard: MB-56181 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
188457,1 | [BP] MB-56181: Improve the reliability of forceMaxCas | 7.1.4 | kv_engine | Status: ABANDONED | 0 | 0 |
188884,3 | MB-56181: Generate a vbstate write when forcing the max_cas | master | kv_engine | Status: ABANDONED | -2 | -1 |
189025,5 | MB-56181: Improve the reliability of forceMaxCas | neo | kv_engine | Status: MERGED | +2 | +1 |
189202,2 | [BP] MB-56181: Improve the reliability of forceMaxCas | 7.1.4 | kv_engine | Status: MERGED | +2 | +1 |
190090,1 | MB-56181: Merge branch 'couchbase/7.1.4' into couchbase/neo | neo | kv_engine | Status: MERGED | +2 | +1 |
193445,3 | Merge neo/61c16e631 into master | master | kv_engine | Status: MERGED | +2 | +1 |
195465,1 | Merge commit '0e3123eae' into 'couchbase/master' | master | kv_engine | Status: MERGED | +2 | +1 |