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 >