Maksim Zhuravkov created IGNITE-27266:
-----------------------------------------

             Summary: Sql. ItStatisticTest is flaky, 
SqlStatisticManagerImplTest is potentially flaky
                 Key: IGNITE-27266
                 URL: https://issues.apache.org/jira/browse/IGNITE-27266
             Project: Ignite
          Issue Type: Improvement
          Components: sql ai3
            Reporter: Maksim Zhuravkov


(1) Both `ItStatisticTest` and `SqlStatisticManagerImplTest` use  `Awaitility` 
with a fixed timeout with can lead to test failure, even when both the code and 
the code is correct.

(2) In case of `SqlStatisticManagerImplTest`, the time it takes for the test to 
complete is directly proportional to the specified statistics update interval. 
This happens because the test code uses an instance of ScheduledExecutorService 
to submit tasks and then observes side effects of their completion. 

To fix this for `SqlStatisticManagerImplTest` we can check that 
`SqlStatisticsManager` passes the correct value for `ScheduledExecutorService 
scheduleAtFixedRate`, and then run scheduled tasks in the same thread as the 
test code. We do not need to use `Awaitility` at all.  This fixes both (1), 
flakiness of `SqlStatisticManagerImplTest `,  and (2), (long running time). 

In case of `ItStatisticTest`, we can update `Awaitility timeout` to be some 
number larger than statistics update interval, it can simply be N times larger 
than that interval (dropping calculations from 
`calcStatisticUpdateIntervalMillis` as well).







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

Reply via email to