Pavel Pereslegin created IGNITE-25049:
-----------------------------------------

             Summary: Sql. Improve itSqlClientSynchronousApiTest.testTimeZoneId 
test
                 Key: IGNITE-25049
                 URL: https://issues.apache.org/jira/browse/IGNITE-25049
             Project: Ignite
          Issue Type: Bug
          Components: sql, thin client
            Reporter: Pavel Pereslegin


This issue was previously reported in IGNITE-22250.

{{itSqlClientSynchronousApiTest.testTimeZoneId}} has ultra low flaky rate.

But sometimes it fails with something like that
{noformat}
org.opentest4j.AssertionFailedError: expected: <1.74402188E12> but was: 
<1.74402175E12>
  at 
app//org.apache.ignite.internal.sql.api.ItSqlApiBaseTest.testTimeZoneId(ItSqlApiBaseTest.java:908)
{noformat}

This test tries to compare the value of {{CURRENT_TIMESTAMP}} across time 
zones, and a possible reason for this failure is that the timestamp value 
(long) is converted to a float to calculate the difference.
{code:java}
        float tsMillis = 
ts.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
        float nowMillis = 
LocalDateTime.now(zoneId).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
        float deltaMillis = 5000;

        assertEquals(nowMillis, tsMillis, deltaMillis);
{code}

We can easily find lot of timestamps that will not pass such check.

Example:
{code:java}
        Instant ts1 = Instant.parse("2025-04-24T21:01:27.935Z");
        Instant ts2 = ts1.plusMillis(1); // just 1 millisecond difference

        float float1 = ts1.toEpochMilli();
        float float2 = ts2.toEpochMilli();

        System.out.println(Math.abs(float2 - float1)); // 131072.0
{code}

Test should be reworked similarly that we have in 
testCurrentDateTimeTimeStamp.... or at least {{double}} should be used instead 
of {{float}}.




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

Reply via email to