You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Wellington Chevreuil (Jira)" <ji...@apache.org> on 2024/11/13 11:40:00 UTC

[jira] [Created] (HBASE-28976) Fix UT flakeyness in TestBucketCache.testBlockAdditionWaitWhenCache and TestVerifyBucketCacheFile.testRetrieveFromFile

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)