Details
-
Bug
-
Resolution: Fixed
-
Critical
-
5.5.0, 5.5.1, 5.5.2, 5.5.3, 5.5.4, 6.0.0, 6.0.1
-
Security Level: Public
-
Untriaged
-
Yes
Description
VBucket::getItemsToPersist can return the range uninitialised (filled with junk from the stack) if we're backfilling or reading the reject queue and enough items are read from those sources to mean we don't attempt to access the checkpoint.
Annotated path through the code
The result is that start and end snapshot data in the persisted metadata can be incorrect leading to further issues following a warmup such as the following exception
WARNING 230: exception occurred in runloop during packet execution. Cookie info: {"packet":{"magic":"ClientRequest","opcode":"DCP_MUTATION","keylen":8,"extlen":31,"datatype":["JSON"],"vbucket":5,"bodylen":128,"opaque":"0x1","cas":1554424178889412040},"connection":"[ 1.2.3.4:38123 - 1.2.3.5:11209 (<ud>@ns_server</ud>) ]"} - closing connection: CheckpointManager::queueDirty: lastBySeqno not in snapshot range. vb:0 state:replica snapshotStart:140252238129664 lastBySeqno:1622306 snapshotEnd:1622506 genSeqno:No checkpointList.size():1
|