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)
|For Gerrit Dashboard: MB-56181|
|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|