New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Java 11 to the testsuite #577
Conversation
Thanks @Fokko, this is a good idea. Tests are failing because of the sanity check in |
Here's a branch that moves the Java 8 check and only enforces it for a release build: rdblue@146c22a That allowed me to run with Java 11, but there are test failures to look into. |
Looks like there are issues with older versions of Datanucleaus (3.x branch) which ships with Hive test artifacts:
We're using them in our testdependencies. https://github.com/apache/incubator-iceberg/blob/master/versions.props#L19-L20 Also Spark 2.x Hive is on Datanucleaus 3.x: https://mvnrepository.com/artifact/org.apache.spark/spark-hive_2.12/2.4.4 We could run an external hive metastore instead of an embedded one? I have PoC here: https://github.com/godatadriven-dockerhub/hive-metastore#run-it-local-using-iceberg-incubating |
@Fokko, that project to bring up a metastore in Docker is great! We should point people to it from the Iceberg docs for people to be able to test tables. I'm not sure that a docker container would work for tests, though. Requiring a docker install to run tests is difficult. Is it possible to update Datanucleus and still have the 1.2.1 HMS work? |
We just had a discussion about Hive metastore versions on the dev list. What I suggested was updating to the version that Spark uses when Spark 3.0 is out. That should pull in a much newer version and hopefully solve these issues. Does that sound reasonable? |
Thanks for the update. I've just subscribed to the devlist as well, just to keep in the loop :) Related, updating Avro in Hive is a bit of the chicken-egg problem, more background here: https://jira.apache.org/jira/browse/HIVE-21737 (at the end) That definitely sounds reasonable. |
If we update to Hive 2.3, does that fix tests? |
Looks like even with the new Hive version, Java 11 is still broken. |
Looks like an internal Hive issue to me:
|
Spark also has the same issue: https://issues.apache.org/jira/browse/SPARK-29245 Will be solved in Hive 2.3.7 as I understand it: https://www.mail-archive.com/dev@hive.apache.org/msg138085.html RC should be there soon: http://mail-archives.apache.org/mod_mbox/hive-dev/202004.mbox/browser |
I have been working with the Hive community to get a Hive 2.3.7 release out which should resolve this issue and allow the usage of Hive libraries on JDK >=9. A release candidate has been created (you can test it out if you want - https://repository.apache.org/content/repositories/orgapachehive-1100/) and here is the discussion on the Hive dev list where a release has been proposed - http://mail-archives.apache.org/mod_mbox/hive-dev/202004.mbox/%3CCANQiJeXh9hVma%3DA88vPLnWtguDfw%2BrZ4%2BoqeoYTMsfDZyxQNgg%40mail.gmail.com%3E. As soon as that is released I would recommend Iceberg change its default Hive version to 2.3.7 instead of 2.3.6. |
Thanks for the update @massdosage. I'll keep an eye out on the Hive RC's so I can test those here as well. |
Hive 2.3.7 was released over the weekend but I think you already noticed! :) |
@massdosage Thank you. I've just updated the PR :) I wanted to run against the RC as well, but the release got through so quickly. |
I added better logging for test failures in #945. I'm going to close and re-open this to trigger a new build. |
Forgot to update the test dependencies, should be fixed now! :) |
Looks like Spark 2.4 doesn't support Java 11, according to this thread about ASM 6/7. I think that's the current problem. Maybe we can try overriding ASM 6 with ASM 7, but we might just have to wait for a version of Spark that can work with Java 11. |
Yes, looks like it: apache/spark@3ed91c9 We can't force it to ASM7, since it part of the package path: |
Does it work to set the JVM target to Java 8 and still run in Java 11? |
I think this is already the case: https://github.com/apache/incubator-iceberg/blob/master/build.gradle#L82-L83 |
I think this is finally unblocked. We now have Spark 2 and Spark 3 modules in master, so we could add tests with Java 11 that disable the Spark 2 modules. |
Thanks for picking this up @rdblue I was stuck in other projects :) |
Add JDK11 to the Travis build matrix.