db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Knut Anders Hatlen (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-5964) Timestamp comparison failure in AutomaticIndexStatisticsTest.testStatisticsCorrectness
Date Tue, 30 Oct 2012 12:38:12 GMT

    [ https://issues.apache.org/jira/browse/DERBY-5964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13486836#comment-13486836
] 

Knut Anders Hatlen commented on DERBY-5964:
-------------------------------------------

The test checks the value of the CREATIONTIMESTAMP column in SYS.SYSSTATISTICS to find out
if the statistics have been updated. The timestamp in that column is stored in the local timezone.
However, since Derby doesn't store the timezone offset, timestamps in the hour before the
switch from DST to standard time and in the hour after the switch are ambiguous. So when the
test fetches a timestamp, say, 2012-10-28 02:30:00 from SYSSTATISTICS, it doesn't know whether
that represents 2012-10-28 02:30:00 CEST or 2012-10-28 02:30:00 CET, which both are valid
times. The current logic in the Derby engine seems to consistently pick the latter value.
This means that if the test runs during the hour before the switch to standard time, it looks
as if the statistics are updated one hour into the future, and the test fails.
                
> Timestamp comparison failure in AutomaticIndexStatisticsTest.testStatisticsCorrectness
> --------------------------------------------------------------------------------------
>
>                 Key: DERBY-5964
>                 URL: https://issues.apache.org/jira/browse/DERBY-5964
>             Project: Derby
>          Issue Type: Bug
>          Components: Test
>    Affects Versions: 10.10.0.0
>            Reporter: Knut Anders Hatlen
>            Priority: Minor
>
> http://dbtg.foundry.sun.com/derby/test/Daily/jvm1.5/testing/testlog/lin/1402814-suitesAll_diff.txt
> 1) testStatisticsCorrectness(org.apache.derbyTesting.functionTests.tests.store.AutomaticIndexStatisticsTest)junit.framework.AssertionFailedError
> 	at org.apache.derbyTesting.functionTests.tests.store.AutomaticIndexStatisticsTest.testStatisticsCorrectness(AutomaticIndexStatisticsTest.java:324)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at org.apache.derbyTesting.junit.BaseTestCase.runBare(BaseTestCase.java:117)
> 	at org.apache.derbyTesting.junit.BaseJDBCTestCase.runBareOverridable(BaseJDBCTestCase.java:424)
> 	at org.apache.derbyTesting.junit.BaseJDBCTestCase.runBare(BaseJDBCTestCase.java:441)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> 	at junit.extensions.TestSetup.run(TestSetup.java:25)
> 	at org.apache.derbyTesting.junit.BaseTestSetup.run(BaseTestSetup.java:57)
> 	at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
> 	at junit.extensions.TestSetup$1.protect(TestSetup.java:21)
> 	at junit.extensions.TestSetup.run(TestSetup.java:25)
> The failure is caused by this assert:
>             assertTrue(s.created.before(now));
> It might be a coincidence, but it happened the same night as Europe was switching from
DST.
> It may also be related to DERBY-5046, where a similar assert failed because poor clock
resolution made the two timestamps equal.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message