I just merged the fix. Thanks for catching this! On Wed, Nov 16, 2022 at 5:29 AM Gabor Kaszab <gaborkas...@apache.org> wrote:
> This is going to fix it: https://github.com/apache/iceberg/pull/6200 > The question is do we want to create another release candidate that > contains this fix. I think we should. Adding the above patch to the 1.1.0 > Milestone <https://github.com/apache/iceberg/milestone/24>. > > Gabor > > On Wed, Nov 16, 2022 at 2:04 PM Gabor Kaszab <gaborkas...@apache.org> > wrote: > >> I managed to repro this: Currently I'm in Central Europe and the current >> date is 16th Nov, but if I set the system timezone to "Pacific/Auckland" >> then LocalDate.now() gives me 17th Nov. This won't match with the current >> UTC time created by ExpressionUtil.ExpressionSanitizer.today that is UTC. >> >> I have to examine the use of 'ExpressionUtil.ExpressionSanitizer.today' >> and 'now' a bit further but it seems that these are compared with predicate >> literals that in turn I hink are in UTC. So the code using UTC seems fine, >> just the test has to also use UTC for getting the current day/time. >> >> On Wed, Nov 16, 2022 at 11:53 AM Gabor Kaszab <gaborkas...@apache.org> >> wrote: >> >>> I believe the issue is that ExpressionUtil takes the current time as UTC >>> <https://github.com/apache/iceberg/blob/c7365f0302048d5437a75ee30a5215d8d32aaef3/api/src/main/java/org/apache/iceberg/expressions/ExpressionUtil.java#L130> >>> while these tests use LocalDate.now() >>> <https://github.com/apache/iceberg/blob/c7365f0302048d5437a75ee30a5215d8d32aaef3/api/src/test/java/org/apache/iceberg/expressions/TestExpressionUtil.java#L541> >>> that uses the "default" timezone >>> <https://www.geeksforgeeks.org/localdate-now-method-in-java-with-examples/> >>> that apparently is not UTC in your case. >>> I think this is a test issue. >>> >>> Gabor >>> >>> On Wed, Nov 16, 2022 at 9:37 AM Gabor Kaszab <gaborkas...@apache.org> >>> wrote: >>> >>>> Thanks for the verification Steven! >>>> I also ran the iceberg-api tests multiple times but I haven't run into >>>> this issue. Is it possible that this is due to some local configs in your >>>> environment? It seems suspicious that all these 3 failing tests use >>>> LocalDate.now() and these are the only tests that use this. >>>> >>>> Cheers, >>>> Gabor >>>> >>>> >>>> On Wed, Nov 16, 2022 at 7:33 AM Steven Wu <stevenz...@gmail.com> wrote: >>>> >>>>> -1 (non-binding) >>>>> >>>>> >>>>> >>>>> 1. Downloaded the source tarball. >>>>> 1. Verified signature and checksum. >>>>> 2. Untar the source archive. >>>>> 3. ./gradlew build. There are unit test failures (details in >>>>> the end). >>>>> 2. Flink SQL testing (both 1.15 and 1.16) >>>>> 1. Downloaded Iceberg-flink-runtime jars (1.15 and 1.16) from >>>>> Nexus staging repository. >>>>> 2. Batch write worked >>>>> 3. FLIP-27 source batch read worked >>>>> 4. FLIP-27 source streaming read worked >>>>> 5. There is a regression in Flink 1.16.0 (not related to >>>>> Iceberg release). Filed ticket. FLINK-30035. >>>>> >>>>> >>>>> Thanks, >>>>> >>>>> Steven >>>>> >>>>> >>>>> > Task :iceberg-api:test >>>>> >>>>> >>>>> org.apache.iceberg.expressions.TestExpressionUtil > >>>>> testSanitizeDateNextWeek FAILED >>>>> >>>>> java.lang.AssertionError: Literals should match >>>>> expected:<["(date-7-days-from-now)"]> but was:<["(date-6-days-from-now)"]> >>>>> >>>>> at org.junit.Assert.fail(Assert.java:89) >>>>> >>>>> at org.junit.Assert.failNotEquals(Assert.java:835) >>>>> >>>>> at org.junit.Assert.assertEquals(Assert.java:120) >>>>> >>>>> at >>>>> org.apache.iceberg.expressions.TestExpressionUtil.assertEquals(TestExpressionUtil.java:825) >>>>> >>>>> at >>>>> org.apache.iceberg.expressions.TestExpressionUtil.assertEquals(TestExpressionUtil.java:819) >>>>> >>>>> at >>>>> org.apache.iceberg.expressions.TestExpressionUtil.testSanitizeDateNextWeek(TestExpressionUtil.java:583) >>>>> >>>>> >>>>> org.apache.iceberg.expressions.TestExpressionUtil > >>>>> testSanitizeDateLastWeek FAILED >>>>> >>>>> java.lang.AssertionError: Literals should match >>>>> expected:<["(date-7-days-ago)"]> but was:<["(date-8-days-ago)"]> >>>>> >>>>> at org.junit.Assert.fail(Assert.java:89) >>>>> >>>>> at org.junit.Assert.failNotEquals(Assert.java:835) >>>>> >>>>> at org.junit.Assert.assertEquals(Assert.java:120) >>>>> >>>>> at >>>>> org.apache.iceberg.expressions.TestExpressionUtil.assertEquals(TestExpressionUtil.java:825) >>>>> >>>>> at >>>>> org.apache.iceberg.expressions.TestExpressionUtil.assertEquals(TestExpressionUtil.java:819) >>>>> >>>>> at >>>>> org.apache.iceberg.expressions.TestExpressionUtil.testSanitizeDateLastWeek(TestExpressionUtil.java:563) >>>>> >>>>> >>>>> org.apache.iceberg.expressions.TestExpressionUtil > >>>>> testSanitizeDateToday FAILED >>>>> >>>>> java.lang.AssertionError: Literals should match >>>>> expected:<["(date-today)"]> but was:<["(date-1-days-ago)"]> >>>>> >>>>> at org.junit.Assert.fail(Assert.java:89) >>>>> >>>>> at org.junit.Assert.failNotEquals(Assert.java:835) >>>>> >>>>> at org.junit.Assert.assertEquals(Assert.java:120) >>>>> >>>>> at >>>>> org.apache.iceberg.expressions.TestExpressionUtil.assertEquals(TestExpressionUtil.java:825) >>>>> >>>>> at >>>>> org.apache.iceberg.expressions.TestExpressionUtil.assertEquals(TestExpressionUtil.java:819) >>>>> >>>>> at >>>>> org.apache.iceberg.expressions.TestExpressionUtil.testSanitizeDateToday(TestExpressionUtil.java:543) >>>>> >>>>> On Tue, Nov 15, 2022 at 8:42 PM Jean-Baptiste Onofré <j...@nanthrax.net> >>>>> wrote: >>>>> >>>>>> +1 (non binding) >>>>>> >>>>>> Quickly check build and "Apache legal related", not deep dive tests as >>>>>> I'm still learning Iceberg ;) >>>>>> >>>>>> Regards >>>>>> JB >>>>>> >>>>>> On Tue, Nov 15, 2022 at 12:28 PM Gabor Kaszab <gaborkas...@apache.org> >>>>>> wrote: >>>>>> > >>>>>> > Hi Everyone, >>>>>> > >>>>>> > I propose that we release the following RC as the official Apache >>>>>> Iceberg 1.1.0 release. >>>>>> > >>>>>> > The commit ID is 1d10c53906847893b45c6acb0137dcb55a15353d >>>>>> > * This corresponds to the tag: apache-iceberg-1.1.0-rc1 >>>>>> > * >>>>>> https://github.com/apache/iceberg/commits/apache-iceberg-1.1.0-rc1 >>>>>> > * >>>>>> https://github.com/apache/iceberg/tree/1d10c53906847893b45c6acb0137dcb55a15353d >>>>>> > >>>>>> > The release tarball, signature, and checksums are here: >>>>>> > * >>>>>> https://dist.apache.org/repos/dist/dev/iceberg/apache-iceberg-1.1.0-rc1 >>>>>> > >>>>>> > You can find the KEYS file here: >>>>>> > * https://dist.apache.org/repos/dist/dev/iceberg/KEYS >>>>>> > >>>>>> > Convenience binary artifacts are staged on Nexus. The Maven >>>>>> repository URL is: >>>>>> > * >>>>>> https://repository.apache.org/content/repositories/orgapacheiceberg-1109/ >>>>>> > >>>>>> > Please download, verify, and test. >>>>>> > >>>>>> > Please vote in the next 72 hours. >>>>>> > >>>>>> > [ ] +1 Release this as Apache Iceberg 1.1.0 >>>>>> > [ ] +0 >>>>>> > [ ] -1 Do not release this because... >>>>>> > >>>>>> > PS.: Thanks Fokko for helping me out with the steps requiring >>>>>> committer privileges! >>>>>> >>>>> -- Ryan Blue Tabular