I agree with Guillaume and lean towards a -1.
IMHO we should not produce a release with incorrect bytecode (even if this
is only detectable by other tools like ASM).

Of course, we should try to find the root cause (although it seems quite
elusive); but if there is a simple workaround to generate a RC avoiding
this issue, I think we should go for it.
Personally, I did not create a Jira ticket at the time because apparently
there is nothing wrong on our side: it seemed either an ASM bug (disproved
in [1]), or some kind of problem with the environment of the 1.36 release
manager (OS? JDK?). I honestly thought it would be a one-time-only problem,
but now we have a new release by a different RM with the same issue, so it
seems a bit more serious than I originally expected.

Best,
Ruben

[1] https://gitlab.ow2.org/asm/asm/-/issues/318008


On Tue, Apr 30, 2024 at 10:41 AM Francis Chuang <francischu...@apache.org>
wrote:

> My vote is: +1 (binding)
>
> - Verified GPG signature - OK
> - Verified SHA512 - OK
> - Diffed source release and git repository - OK
> - Checked release notes on tag
> (
> https://github.com/apache/calcite/blob/calcite-1.37.0-rc4/site/_docs/history.md)
>
> - OK
> - Checked year and versions in NOTICE, README and HOWTO - OK
> - Ran tests (gradle check) - OK
> - Spot checked Nexus artifacts - OK
>
> Environments:
> Eclipse-temurin:8 docker container in WSL2 (Ubuntu 22.04.4) on Windows
> 11 23h2
>
> Eclipse-temurin:19 docker container in WSL2 (Ubuntu 22.04.4) on Windows
> 11 23h2
>
> $ docker version
> Client:
>   Cloud integration: v1.0.35+desktop.13
>   Version:           26.0.0
>   API version:       1.45
>   Go version:        go1.21.8
>   Git commit:        2ae903e
>   Built:             Wed Mar 20 15:16:45 2024
>   OS/Arch:           linux/amd64
>   Context:           default
>
> Server: Docker Desktop
>   Engine:
>    Version:          26.0.0
>    API version:      1.45 (minimum version 1.24)
>    Go version:       go1.21.8
>    Git commit:       8b79278
>    Built:            Wed Mar 20 15:18:01 2024
>    OS/Arch:          linux/amd64
>    Experimental:     false
>   containerd:
>    Version:          1.6.28
>    GitCommit:        ae07eda36dd25f8a1b98dfbf587313b99c0190bb
>   runc:
>    Version:          1.1.12
>    GitCommit:        v1.1.12-0-g51d5e94
>   docker-init:
>    Version:          0.19.0
>    GitCommit:        de40ad0
>
> $ gradle -v
>
> ------------------------------------------------------------
> Gradle 7.6.1
> ------------------------------------------------------------
>
> Build time:   2023-02-24 13:54:42 UTC
> Revision:     3905fe8ac072bbd925c70ddbddddf4463341f4b4
>
> Kotlin:       1.7.10
> Groovy:       3.0.13
> Ant:          Apache Ant(TM) version 1.10.11 compiled on July 10 2021
> JVM:          19.0.2 (Eclipse Adoptium 19.0.2+7)
> OS:           Linux 5.15.146.1-microsoft-standard-WSL2 amd64
>
> $ java -version
> openjdk version "1.8.0_402"
> OpenJDK Runtime Environment (Temurin)(build 1.8.0_402-b06)
> OpenJDK 64-Bit Server VM (Temurin)(build 25.402-b06, mixed mode)
>
> $ java -version
> openjdk version "19.0.2" 2023-01-17
> OpenJDK Runtime Environment Temurin-19.0.2+7 (build 19.0.2+7)
> OpenJDK 64-Bit Server VM Temurin-19.0.2+7 (build 19.0.2+7, mixed mode,
> sharing)
>
> Francis
>
> On 30/04/2024 6:35 pm, Stamatis Zampetakis wrote:
> > Ubuntu 20.04.6 LTS, jdk1.8.0_261, Gradle wrapper, Gradle 7.6.1
> >
> >   * Checked signatures and checksums OK
> >   * Checked diff between repo and artifacts OK
> >   * Checked README, NOTICE, LICENSE OK
> >   * All source files have ASF headers OK ( grep -RiL "Licensed to the
> > Apache Software Foundation")
> >   * No unexpected binary files OK (find . -type f -exec file {} \; |
> > grep -v text)
> >   * Checked structure of staged maven repo for calcite-core [1] OK
> >   * Checked LICENSE, NOTICE, signature, and checksum for
> > calcite-core-1.37.0.jar from staged maven repo [1] OK
> >   * Built from git tag and run tests (./gradlew build) OK
> >   * Built from source artifacts and run tests (gradle build) OK
> >
> > +1 (binding)
> >
> > For the ASM problem, I would suggest opening a JIRA ticket and
> > continuing the discussion there. I found the previous discussion [2]
> > but not a ticket for this. We should try to keep vote threads as clean
> > as possible and keep technical exchanges on separate threads/tickets.
> > The main deliverable of this vote is the source package distribution
> > so I don't consider this a blocker for the release especially since
> > this has popped up before and was left untreated.
> >
> > Best,
> > Stamatis
> >
> > [1]
> https://repository.apache.org/content/repositories/orgapachecalcite-1230/org/apache/calcite/calcite-core/1.37.0/
> > [2] https://lists.apache.org/thread/o736wz4qnr4l285bj5gv073cy0qll9t0
> >
> > On Tue, Apr 30, 2024 at 9:50 AM Ruben Q L <rube...@gmail.com> wrote:
> >>
> >> Thanks Guillaume for checking this!
> >> When I looked at this issue on 1.36, I had the impression that
> assertions
> >> might have a role to play in the error, but I could not confirm this
> >> hypothesis.
> >> IMO this smells like a JDK bug (or at least it looks like other resolved
> >> issues); note that it seems we had some similar problems in the past
> with
> >> older Java8 versions [1].
> >>
> >> Independently of the root cause, would it unblock the release process
> if we
> >> just remove the problematic asserts, or if we substitute them with an
> >> equivalent `if (...) throw new IllegalStateException("...");` ?
> >>
> >> Best,
> >> Ruben
> >>
> >> [1]
> >>
> https://github.com/apache/calcite/blob/1506857f404037b63dfd8a11880393b767bd1544/build.gradle.kts#L98
> >>
> >>
> >>
> >> On Mon, Apr 29, 2024 at 11:26 PM Sergey Nuyanzin <snuyan...@gmail.com>
> >> wrote:
> >>
> >>> Hi Guilluame,
> >>>
> >>> I played a bit more and I realised that if from commit above I just
> remove
> >>> one line with assert (assert map != null)
> >>> then ArrayIndexOutOfBoundsException disappears
> >>>
> >>> same for current main branch, if I remove all lines from SqlFunctions
> with
> >>> assert (now there are 3 such lines) then
> >>> ArrayIndexOutOfBoundsException disappears
> >>>
> >>> Thus,  it does not look like a Calcite issue, more like a problem on
> ASM
> >>> side
> >>> please correct me if I'm wrong
> >>>
> >>> On Mon, Apr 29, 2024 at 10:33 PM Sergey Nuyanzin <snuyan...@gmail.com>
> >>> wrote:
> >>>
> >>>> i follow the procedure described here
> >>>> https://calcite.apache.org/docs/howto.html#making-a-release-candidate
> >>>> started
> >>>> btw I played a bit with git bisect and it shows that the issue
> >>>>
> >>>>      java.lang.ArrayIndexOutOfBoundsException: Index 65536 out of
> bounds
> >>> for length 297        at
> >>> org.objectweb.asm.ClassReader.readLabel(ClassReader.java:2695)
> at
> >>> org.objectweb.asm.ClassReader.createLabel(ClassReader.java:2711)
> >>>>
> >>>> started appearing after this commit
> >>>>
> >>>>
> >>>
> https://github.com/apache/calcite/commit/bcf6bd8577b25c563b1c597c70704594a18ca1a3
> >>>>
> >>>> On Mon, Apr 29, 2024 at 10:01 PM Guillaume Masse
> >>>> <masse.guilla...@narrative.io.invalid> wrote:
> >>>>
> >>>>> Hi Sergey,
> >>>>>
> >>>>> thanks for trying that update
> >>>>>
> >>>>> I confirm I have the same issue with your release at
> >>>>>
> >>>>>
> >>>
> https://repository.apache.org/content/repositories/orgapachecalcite-1231/org/apache/calcite/
> >>>>>
> >>>>>
> >>>>>
> >>>
> https://github.com/MasseGuillaume/asm-remapper-bug/commit/852e4cd246d278db8acf5e997a54619bc4f85fc7
> >>>>>
> >>>>> This rules out one of my hypothesis on the java build version.
> >>>>>
> >>>>> Can you point me to the release procedure you are using? I saw
> >>>>> https://calcite.apache.org/develop/#contributing is there more
> precise
> >>>>> steps?
> >>>>>
> >>>>>
> >>>>>
> >>>>> On Mon, Apr 29, 2024 at 3:27 PM Sergey Nuyanzin <snuyan...@gmail.com
> >
> >>>>> wrote:
> >>>>>
> >>>>>> I repeated same procedure with jdk1.8u412
> >>>>>> here you can find the jars
> >>>>>>
> >>>>>>
> >>>>>
> >>>
> https://repository.apache.org/content/repositories/orgapachecalcite-1231/org/apache/calcite/
> >>>>>> it looks like asm-remapper gives the same result...
> >>>>>>
> >>>>>> On Mon, Apr 29, 2024 at 8:41 PM Guillaume Masse
> >>>>>> <masse.guilla...@narrative.io.invalid> wrote:
> >>>>>>
> >>>>>>> If you take a look at
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>
> https://www.openlogic.com/openjdk-downloads?field_java_parent_version_target_id=416&field_operating_system_target_id=426&field_architecture_target_id=391&field_java_package_target_id=All
> >>>>>>>
> >>>>>>> The most recent release is 8u412-b08
> >>>>>>>
> >>>>>>> If it follows more or less the openjdk schedule:
> >>>>>>>
> >>>>>>> https://wiki.openjdk.org/display/jdk8u/Main
> >>>>>>>
> >>>>>>> *Most recent and past release details:*
> >>>>>>>
> >>>>>>>     - 8u412-b08 (GA), April 16th 2024 [Release <
> >>>>>> https://bit.ly/openjdk8u412
> >>>>>>>> ]
> >>>>>>>     [Tag <
> https://github.com/openjdk/jdk8u/releases/tag/jdk8u412-ga
> >>>> ]
> >>>>> [
> >>>>>>>     Binaries
> >>>>>>>     <
> >>>>>>>
> >>>>>
> https://github.com/adoptium/temurin8-binaries/releases/tag/jdk8u412-b08
> >>>>
> >>>>>>>     ]
> >>>>>>>     - 8u402-b06 (GA), January 16th 2024 [Release
> >>>>>>>     <https://bit.ly/openjdk8u402>] [Tag
> >>>>>>>     <https://github.com/openjdk/jdk8u/releases/tag/jdk8u402-ga>]
> >>>>>> [Binaries
> >>>>>>>     <
> >>>>>>>
> >>>>>
> https://github.com/adoptium/temurin8-binaries/releases/tag/jdk8u402-b06
> >>>>
> >>>>>>>     ]
> >>>>>>>     - 8u392-b08 (GA), October 17th 2023 [Release
> >>>>>>>     <https://bit.ly/openjdk8u392>] [Tag
> >>>>>>>     <https://github.com/openjdk/jdk8u/releases/tag/jdk8u392-ga>]
> >>>>>> [Binaries
> >>>>>>>     <
> >>>>>>>
> >>>>>
> https://github.com/adoptium/temurin8-binaries/releases/tag/jdk8u392-b08
> >>>>
> >>>>>>>     ]
> >>>>>>>     - 8u382-b05 (GA), July 18th 2023 [Release <
> >>>>>> https://bit.ly/openjdk8u382
> >>>>>>>> ]
> >>>>>>>     [Tag <
> https://github.com/openjdk/jdk8u/releases/tag/jdk8u382-ga
> >>>> ]
> >>>>> [
> >>>>>>>     Binaries
> >>>>>>>     <
> >>>>>>>
> >>>>>
> https://github.com/adoptium/temurin8-binaries/releases/tag/jdk8u382-b05
> >>>>
> >>>>>>>     ]
> >>>>>>>     - 8u372-b07 (GA), April 18th 2023 [Release <
> >>>>>> https://bit.ly/openjdk8u372
> >>>>>>>> ]
> >>>>>>>     [Tag <
> https://github.com/openjdk/jdk8u/releases/tag/jdk8u372-ga
> >>>> ]
> >>>>> [
> >>>>>>>     Binaries
> >>>>>>>     <
> >>>>>>>
> >>>>>
> https://github.com/adoptium/temurin8-binaries/releases/tag/jdk8u372-b07
> >>>>
> >>>>>>>     ]
> >>>>>>>
> >>>>>>>
> >>>>>>> This means your java version is from April 2023. Can you try to
> >>> update
> >>>>>> your
> >>>>>>> system to the latest build 8u412-b08 and publish the jarfile
> >>>>> somewhere I
> >>>>>>> can test ?
> >>>>>>>
> >>>>>>>
> >>>>>>> On Mon, Apr 29, 2024 at 2:25 PM Sergey Nuyanzin <
> >>> snuyan...@gmail.com>
> >>>>>>> wrote:
> >>>>>>>
> >>>>>>>> Thanks for testing Guillaume
> >>>>>>>>
> >>>>>>>>> Sergey can you give me all the details about your build
> >>> environment
> >>>>>> so I
> >>>>>>>>> can reproduce that bytecode?
> >>>>>>>>> OS / java --version
> >>>>>>>> yep, sure
> >>>>>>>> Ubuntu 22.04.4 LTS,
> >>>>>>>> 1.8.0_372-372 (OpenLogic-OpenJDK 25.372-b07)
> >>>>>>>>
> >>>>>>>> I will also try to look at it with my set up and the info  you've
> >>>>>>> provided
> >>>>>>>>
> >>>>>>>> On Mon, Apr 29, 2024 at 8:03 PM Guillaume Masse
> >>>>>>>> <masse.guilla...@narrative.io.invalid> wrote:
> >>>>>>>>
> >>>>>>>>> -1 (not binding)
> >>>>>>>>>
> >>>>>>>>> The bytecode of classfile
> >>>>>> org/apache/calcite/runtime/SqlFunctions.class
> >>>>>>>> is
> >>>>>>>>> invalid (and only this classfile)
> >>>>>>>>>
> >>>>>>>>> I tested all class files from the following artifacts:
> >>>>>>>>> calcite-core-1.37.0.jar
> >>>>>>>>> calcite-linq4j-1.37.0.jar
> >>>>>>>>> avatica-core-1.25.0.jar
> >>>>>>>>> avatica-metrics-1.25.0.jar
> >>>>>>>>>
> >>>>>>>>> This will prevent bytecode tools like asm (https://asm.ow2.io/)
> >>>>> from
> >>>>>>>>> transforming calcite bytecode (for example shading a
> >>> dependency).
> >>>>>>>>>
> >>>>>>>>> See
> >>>>>>>>> https://gitlab.ow2.org/asm/asm/-/issues/318008
> >>>>>>>>>
> >>> https://lists.apache.org/thread/nrt4ysoc14p20sq23z744jyfqh1bznyh
> >>>>>>>>>
> >>>>>>>>> To reproduce
> >>>>>>>>> https://github.com/MasseGuillaume/asm-remapper-bug
> >>>>>>>>>
> >>>>>>>>> Sergey can you give me all the details about your build
> >>>>> environment
> >>>>>> so
> >>>>>>> I
> >>>>>>>>> can reproduce that bytecode?
> >>>>>>>>> OS / java --version
> >>>>>>>>>
> >>>>>>>>> I do not have the root cause of the issue.
> >>>>>>>>> I suspect it's related to import
> >>>>>>>>> org.checkerframework.checker.nullness.qual.Nullable
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>> On Mon, Apr 29, 2024 at 10:56 AM Sergey Nuyanzin <
> >>>>>> snuyan...@gmail.com>
> >>>>>>>>> wrote:
> >>>>>>>>>
> >>>>>>>>>> Hi all,
> >>>>>>>>>>
> >>>>>>>>>> The issue CALCITE-6390 with failing of Arrow Adapter tests on
> >>>>>> Windows
> >>>>>>>>> while
> >>>>>>>>>> building from source is fixed.
> >>>>>>>>>> Thanks  a lot to Caican Can for highlighting the issue
> >>>>>>>>>> Stamatis for quick PR
> >>>>>>>>>> and Ruben and Alessandro for the review!
> >>>>>>>>>>
> >>>>>>>>>> I have created a build for Apache Calcite 1.37.0, release
> >>>>>>>>>> candidate 4.
> >>>>>>>>>>
> >>>>>>>>>> Thanks to everyone who has contributed to this release.
> >>>>>>>>>>
> >>>>>>>>>> You can read the release notes here:
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>
> https://github.com/apache/calcite/blob/calcite-1.37.0-rc4/site/_docs/history.md
> >>>>>>>>>>
> >>>>>>>>>> The commit to be voted upon:
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>
> https://gitbox.apache.org/repos/asf?p=calcite.git;a=commit;h=044db3d72ee53c1a82ce68b0c2a9b4f0bed81f18
> >>>>>>>>>>
> >>>>>>>>>> Its hash is 044db3d72ee53c1a82ce68b0c2a9b4f0bed81f18
> >>>>>>>>>>
> >>>>>>>>>> Tag:
> >>>>>>>>>> https://github.com/apache/calcite/tree/calcite-1.37.0-rc4
> >>>>>>>>>>
> >>>>>>>>>> The artifacts to be voted on are located here:
> >>>>>>>>>>
> >>>>>>>>
> >>>>>>
> >>>>>
> >>>
> https://dist.apache.org/repos/dist/dev/calcite/apache-calcite-1.37.0-rc4
> >>>>>>>>>> (revision 68857)
> >>>>>>>>>>
> >>>>>>>>>> The hashes of the artifacts are as follows:
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>
> a6ae7ea1ebbab3e5b723122c9517412d74b6bccba9fb41d360f7c2262ed7f26e5a4cc861a711d4813d27d72a0ffd086ae3a9175abc3c874b079137c84d13f83a
> >>>>>>>>>> *apache-calcite-1.37.0-src.tar.gz
> >>>>>>>>>>
> >>>>>>>>>> A staged Maven repository is available for review at:
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>
> https://repository.apache.org/content/repositories/orgapachecalcite-1230/org/apache/calcite/
> >>>>>>>>>>
> >>>>>>>>>> Release artifacts are signed with the following key:
> >>>>>>>>>> https://people.apache.org/keys/committer/snuyanzin.asc
> >>>>>>>>>> https://www.apache.org/dist/calcite/KEYS
> >>>>>>>>>>
> >>>>>>>>>> To create the jars and test Apache Calcite: "gradle build"
> >>>>>>>>>> (requires an appropriate Gradle/JDK installation)
> >>>>>>>>>>
> >>>>>>>>>> Please vote on releasing this package as Apache Calcite
> >>> 1.37.0.
> >>>>>>>>>>
> >>>>>>>>>> The vote is open for the next 72 hours and passes if a
> >>> majority
> >>>>> of
> >>>>>> at
> >>>>>>>>>> least three +1 PMC votes are cast.
> >>>>>>>>>>
> >>>>>>>>>> [ ] +1 Release this package as Apache Calcite 1.37.0
> >>>>>>>>>> [ ]  0 I don't feel strongly about it, but I'm okay with the
> >>>>>> release
> >>>>>>>>>> [ ] -1 Do not release this package because...
> >>>>>>>>>>
> >>>>>>>>>> Here is my vote:
> >>>>>>>>>>
> >>>>>>>>>> +1 (binding)
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>> --
> >>>>>>>>>> Best regards,
> >>>>>>>>>> Sergey
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> --
> >>>>>>>> Best regards,
> >>>>>>>> Sergey
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>>
> >>>>>> --
> >>>>>> Best regards,
> >>>>>> Sergey
> >>>>>>
> >>>>>
> >>>>
> >>>>
> >>>> --
> >>>> Best regards,
> >>>> Sergey
> >>>>
> >>>
> >>>
> >>> --
> >>> Best regards,
> >>> Sergey
> >>>
>

Reply via email to