Details
-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
.master
-
Security Level: Public
-
None
-
Untriaged
-
No
Description
If a vbucket is created and quickly deleted we're not setting the VbucketMap creation flag to false. The flusher can get into a position where it returns RETRY for the deleted VBucket because it first performs VBucketMap::isBucketCreation(vbid) which returns true.
It's difficult to demonstrate and unit test against as it was spotted only when examining some custom build with many printfs.
Fix is to ensure the creation flag is cleared as part of the VBucket being deleted. This will mean flusher returns 0 (not RETRY) and we'll re-gather the vbuckets ignoring the now deleted one forever, rather than requesting many flushes (all bounced with RETRY).