Affects Version/s: 7.0.0-Beta1
Is this a Regression?:Yes
There is a bug which, if triggered, will stop a bucket from successfully evicting ever again (until restart/bucket deletion).
Bug introduced in http://review.couchbase.org/c/kv_engine/+/133197 (6.6.1 pre-GA).
The above change introduced the highlighted early exit; in the event that the item pager is notified to run, but the memory usage has dropped below the low watermark, don't evict. However, this is not safe to do -
Available is an atomic bool used to track if an item pager is currently running. It has been set to false here, but is only reset once the created PagingVisitor is completed. If the visitor creation is skipped, the flag is never reset, so no further item pager runs will occur.
|For Gerrit Dashboard: MB-43055|
|143136,2||MB-43055: Cleanup dead code in ItemPager::run||alice||kv_engine||Status: NEW||-1||-1|
|141367,3||MB-43055: Ensure ItemPager available is not left set to false||mad-hatter||kv_engine||Status: MERGED||+2||+1|
|141431,17||Adding functional test for MB-43055||mad-hatter||TAF||Status: MERGED||+2||+1|
|141567,4||Adding functional test for MB-43055||master||TAF||Status: MERGED||+2||+1|
|142430,1||Merge branch 'mad-hatter' into master||master||kv_engine||Status: MERGED||+2||+1|
|142975,2||MB-43055: [BP] Ensure ItemPager available is not left set to false||6.5.2||kv_engine||Status: MERGED||+2||+1|
|142986,3||MB-43055: [BP] Ensure ItemPager available is not left set to false||alice||kv_engine||Status: MERGED||+2||+1|
|143175,1||Merge branch '6.5.2' into couchbase/mad-hatter||mad-hatter||kv_engine||Status: ABANDONED||0||0|
|143183,5||Merge branch '6.5.2' into couchbase/mad-hatter||mad-hatter||kv_engine||Status: MERGED||+2||+1|
|143811,1||Merge branch 'mad-hatter' into master||master||kv_engine||Status: MERGED||+2||+1|