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)