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 2025/09/11 14:54:00 UTC

[jira] [Resolved] (HBASE-29566) TestPrefetch.testPrefetchWithDelay seems flakey

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

Wellington Chevreuil resolved HBASE-29566.
------------------------------------------
    Resolution: Fixed

Merged to branch-2.6 only, since it's the only affected by this flakeyness. Thanks for the contribution, [~diyam]!

> TestPrefetch.testPrefetchWithDelay seems flakey
> -----------------------------------------------
>
>                 Key: HBASE-29566
>                 URL: https://issues.apache.org/jira/browse/HBASE-29566
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 2.6.3
>            Reporter: Wellington Chevreuil
>            Assignee: Diya Maria Abraham
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 2.6.4
>
>
> Noticed this TestPrefetch.testPrefetchWithDelay failing intermittently at branch-2.6 at least. 
> {noformat}
> java.lang.AssertionError: Prefetch delay has not been expired yet
> 	at org.junit.Assert.fail(Assert.java:89)
> 	at org.junit.Assert.assertTrue(Assert.java:42)
> 	at org.apache.hadoop.hbase.io.hfile.TestPrefetch.testPrefetchWithDelay(TestPrefetch.java:330)
> 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> 	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
> 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
> {noformat}
> I believe the problem is in the while condition block:
> {noformat}
> ...
>     while (!reader.prefetchStarted()) {
>       assertTrue("Prefetch delay has not been expired yet",
>         getElapsedTime(startTime) < PrefetchExecutor.getPrefetchDelay());
>     }
> ...
> {noformat}
> We are assuming prefetch will start right away the delay, but this may not be guaranteed.



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