Wellington Chevreuil created HBASE-28976: --------------------------------------------
Summary: Fix UT flakeyness in TestBucketCache.testBlockAdditionWaitWhenCache and TestVerifyBucketCacheFile.testRetrieveFromFile Key: HBASE-28976 URL: https://issues.apache.org/jira/browse/HBASE-28976 Project: HBase Issue Type: Bug Reporter: Wellington Chevreuil Assignee: Wellington Chevreuil Noticed these two tests failing intermittently on some of the pre-commit runs. 1) TestVerifyBucketCacheFile.testRetrieveFromFile: The test calls BucketCache.cacheBlock() passing true to the waitWhenCache parameter, assuming the cache call will wait for a success cache, however this is only true if the BucketCache.QUEUE_ADDITION_WAIT_TIME property is also defined, so I believe this may be causing the intermittent failures when the pre-commit runs on slower vms. 2) TestVerifyBucketCacheFile.testRetrieveFromFile: One of the checks performed by this test is to delete the bucket cache file, shutdown the current BucketCache instance, then create a new BucketCache instance that would load the persistent file but should fail to recover the cache, as the cache file has been deleted. The way this recover works, internally, is async. We first read the contents of the persistent file, which includes the last serialized backingMap and a checksum of the cache file at that time. It then compares this recovered checksum against the current cache file checksum. If this verification fails, it starts a background thread to traverse all backingMap entries and check if those entries are still available in the cache. At this point, the test is ready to check the BucketCache allocator size, expecting it to be 0, but if the background verification has not finished yet, this assert will fail. -- This message was sent by Atlassian Jira (v8.20.10#820010)