[ 
https://issues.apache.org/jira/browse/HBASE-30166?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ASF GitHub Bot updated HBASE-30166:
-----------------------------------
    Labels: pull-request-available  (was: )

> Attempt to fix flakeyness in TestPrefetchPersistence 
> -----------------------------------------------------
>
>                 Key: HBASE-30166
>                 URL: https://issues.apache.org/jira/browse/HBASE-30166
>             Project: HBase
>          Issue Type: Bug
>            Reporter: Wellington Chevreuil
>            Assignee: Wellington Chevreuil
>            Priority: Major
>              Labels: pull-request-available
>
> TestPrefetchPersistence seems to intermittently fail due to at least two 
> conditions:
> 1)
> TestPrefetchPersistence.testPrefetchPersistence()[1] -- Time elapsed: 8.291 s 
> <<< FAILURE!
> org.opentest4j.AssertionFailedError: expected: <true> but was: <false>
> at 
> org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
> at 
> org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
> at org.junit.jupiter.api.AssertTrue.failNotTrue(AssertTrue.java:63)
> at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:36)
> at org.junit.jupiter.api.AssertTrue.assertTrue(AssertTrue.java:31)
> at org.junit.jupiter.api.Assertions.assertTrue(Assertions.java:183)
> at 
> org.apache.hadoop.hbase.io.hfile.bucket.TestPrefetchPersistence.testPrefetchPersistence(TestPrefetchPersistence.java:128)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at java.util.Optional.ifPresent(Optional.java:159)
> at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
> at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
> at 
> java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:419)
> at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
> at 
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
> at 
> java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
> at 
> java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
> at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485)
> at java.util.ArrayList.forEach(ArrayList.java:1259)
> at java.util.ArrayList.forEach(ArrayList.java:1259)
>  
> 2) org.opentest4j.AssertionFailedError: expected: <0> but was: <353280>
> at 
> org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)
> at 
> org.junit.jupiter.api.AssertionFailureBuilder.buildAndThrow(AssertionFailureBuilder.java:132)
> at org.junit.jupiter.api.AssertEquals.failNotEqual(AssertEquals.java:197)
> at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:166)
> at org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:161)
> at org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:632)
> at 
> org.apache.hadoop.hbase.io.hfile.bucket.TestPrefetchPersistence.testPrefetchPersistence(TestPrefetchPersistence.java:110)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at java.util.Optional.ifPresent(Optional.java:159)
> at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
> at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
> at 
> java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:419)
> at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
> at 
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
> at 
> java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
> at 
> java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
> at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
> at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485)
> at java.util.ArrayList.forEach(ArrayList.java:1259)
> at java.util.ArrayList.forEach(ArrayList.java:1259)
>  
> The condition #1 may happen because we are currently checking only if the 
> prefetch reader has finished, before proceeding with the cache shutdown, 
> however the actual cache writers may have not yet all blocks to the cache, 
> causing the given files to never be actually added to the "fullyCachedFiles" 
> map.
>  
> Condition #2 may happen in subsequent parameterized runs where the created 
> BucketCache instance is reusing cache and persistent file from previous runs. 
> We should add an @AfterEach method for cleaning up the test dirs.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to