Details
-
Bug
-
Resolution: Fixed
-
Critical
-
6.5.1, 6.6.0, 6.6.1, 6.6.2, 6.5.2, 6.5.0, Cheshire-Cat
-
Triaged
-
1
-
No
-
KV-Engine Sprint 2021 June
Description
In 6.5 we added namespace support in KV-engine, a technique used by durability and a stepping stone towards collections.
This means that a key in many places (disk/memory) gets a namespace prefix, all committed keys get the "default" collection prefix of a single empty byte (0) and prepared writes get a a prefix of 2. This means that when the user stores a document with a 3-byte key of "JIM", in memory it gets 4 bytes "0JIM".
When DCP replicates that document, there is no namespace support over the wire and "0JIM" gets replicated as "JIM".
This leads to an issue in buffer-ack when we do DCP commit.
The producer is recording the namepaced length but the consumer is acking for the un-namespaced size - a 1 byte difference.