Details
-
Bug
-
Resolution: Fixed
-
Major
-
6.6.2, 7.0.0, 7.0.1, 7.0.2, 7.0.3
-
Untriaged
-
1
-
Unknown
Description
From linked CBSE we see this warning many times.
WARNING (bucket) KVBucket::getValue failed get for item vb:843, it.seqno:-4, status:1
|
This code is driven by the expiry pager, it is trying to load the value of a now expired item which is tagged as "xattr":
void KVBucket::deleteExpiredItem(Item& it, |
time_t startTime, |
ExpireBy source) {
|
VBucketPtr vb = getVBucket(it.getVBucketId());
|
|
if (vb) { |
// MB-25931: Empty XATTR items need their value before we can call |
// pre_expiry. These occur because the value has been evicted. |
if (mcbp::datatype::is_xattr(it.getDataType()) && it.getNBytes() == 0) { |
getValue(it);
|
}
|
However "seqno:-4" indicates this is really a state_non_existent_key StoredValue, which occurs due to bgfetch. Each time getValue fails to just find the document, because it genuinely doesn't exist we still increment failure_get
This is a side-effect of the bug described in MB-47952 - having deleted, non-resident documents in memory which (incorrectly) have the XATTR datatype set. As such we attempt to read a document which no longer exists, and hence the above error is seen (and failure stat incremented).