Details
-
Bug
-
Resolution: Unresolved
-
Major
-
7.1.4, 7.1.0, 7.1.1, 7.1.2, 7.2.0, 7.1.3
-
None
-
Untriaged
-
0
-
Unknown
Description
The fix added for MB-50413 has a corner-case issue which was discovered whilst extending this area to support CDC on the default collection.
MB-50413 adds some code to maintain what the default collection's max-visible seqno (MVS) is. The MVS is a concept added in mad-hatter to support DCP clients that don't care for sync-writes prepare/abort. The MVS always represents the vbucket's highest commit (which is visible to all DCP streams).
In 7.0 along came collections, now the vbucket's high-seqno etc... may not be the default collection, yet we may have DCP clients which don't support collections. These clients need their own special MVS, which is what MB-50413 adds.
This bug is the following:
- empty vbucket
- flush a single prepare
- warmup and check default collection MVS (added in
MB-50413)
The MVS should be 0, but after warmup it incorrectly reports 1. This is due to broken logic in Manifest::setDefaultCollectionMaxVisibleSeqnoFromWarmup which interprets an input of 0 to have special meaning, when it needs different checks.
This bug is required to go into 7.2 to help fix the problems around "modify of default collection". A backport of this could in theory also go back to 7.1.x
Attachments
Gerrit Reviews
For Gerrit Dashboard: MB-55451 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
186269,1 | Adding functional test to validate mvs value post warmup | neo | TAF | Status: NEW | 0 | 0 |
186293,1 | MB-55451: Default collection MVS incorrect for single prepare | neo | kv_engine | Status: ABANDONED | 0 | -1 |