Details
-
Bug
-
Resolution: Fixed
-
Major
-
3.1.0, 3.1.1, 4.0.0
-
Security Level: Public
-
None
-
Untriaged
-
Unknown
-
KV: Sep 14 - Oct 2
Description
A Get issued on the destination cluster of an XDCR setup on a key that was written at the source cluster needs to be handled correctly.
When a getMeta is issued by XDCR at the destination, only key and metadata are restored, so it is technically non-resident still. Right after this, if a GET for the same key were to be issued from the front end client - a bgfetch commences because the item is found in memory but is non-resident. As part of the bgfetch, the item is restored only if it is a temp-Initial item in case of full eviction, therefore the item isn't restored but ep-engine notifies SUCCESS to memcached, which visits ep-engine again but sees that the item is still non-resident, and issues the bgfetch again. This operation remains stuck in an infinite, causing a large number of disk reads, and also time outs for the GET operation on the client side.
The fix would be to restore an item if it is either a tempInitial or non-resident, in the case of full eviction.
Attachments
Issue Links
- blocks
-
MB-16413 3.1.2 Minor Release
- Closed