HotswapProjects / openjdk-jdk11u-dcevm

Dcevm11 sources, binaries are available at https://travis-ci.org/TravaOpenJDK/trava-jdk-11-dcevm
GNU General Public License v2.0
31 stars 11 forks source link

Symbol JVM_InitClassName not defined in file libjvm.so with OpenJDK 11.0.3+1 #2

Closed ebourg closed 5 years ago

ebourg commented 5 years ago

Hi,

I get the following error when using DCEVM 11.0.1+8 with OpenJDK 11.0.3 in Debian:

$ java -dcevm -version
Error occurred during initialization of VM
Unable to load native library: /usr/lib/jvm/java-11-openjdk-amd64/lib/libjava.so: symbol JVM_InitClassName version SUNWprivate_1.1 not defined in file libjvm.so with link time reference

with OpenJDK 11.0.2 it worked properly:

$ java -dcevm -version
openjdk version "11.0.2" 2019-01-15
OpenJDK Runtime Environment (build 11.0.2+9-Debian-3)
Dynamic Code Evolution 64-Bit Server VM (build 11.0.1.6-internal+0-adhoc.buildd.openjdk-11-jre-dcevm-11.0.18, mixed mode)
skybber commented 5 years ago

Hi, thanks for report. We are following https://github.com/AdoptOpenJDK/openjdk-jdk11u/commits/master as upstream repo. The 11.0.3 tag is missing there, despite the claim in commit:

https://github.com/AdoptOpenJDK/openjdk-jdk11u/commit/41cc5c841e55b6494c6501c56e81227ae8b55c64

According AdoptOpenJDK slack info the official Oracle release date is 16.4.2019 https://www.oracle.com/technetwork/topics/security/alerts-086861.html . Let me know if it is critical for you (and Ubuntu users), then I could create some pre-release from appropriate commit (but it is not actually in the AdoptOpenJDK repository ...) .

ebourg commented 5 years ago

Thank you for the help. It looks like the AdoptOpenJDK repository is missing the latest tag. The version 11.0.3+1 is visible in the upstream Mercurial repository. The related AdoptOpenJDK commit seems to be https://github.com/AdoptOpenJDK/openjdk-jdk11u/commit/e74da286b38f6d8be351f922a8cb0e3d63de5e80.

If you know how to fix it I can apply a patch to the Debian/Ubuntu package, no need to prepare a new release on your side.

skybber commented 5 years ago

I've run dcevm11 tests with new version, SerialGC is OK, but -XX:+UseConcMarkSweepGC is broken now. I'll look on this.

skybber commented 5 years ago

I've created new branch for dcevm11-jdk-11.0.3+1:

https://github.com/HotswapProjects/openjdk-jdk11u-dcevm/tree/dcevm11-jdk-11.0.3+1

it is forked from dcevm11 branch and then master branch up to 74da286b38f6d8be351f922a8cb0e3d63de5e80. is merged to it. Dcevm11 tests passed (with HA disabled). Are you doing own build or using Trava builds?

ebourg commented 5 years ago

Thank you for the branch I'll give it a try.

I'm rebuilding from sources to create the DCEVM package in Debian/Ubuntu:

https://salsa.debian.org/java-team/openjdk-11-jre-dcevm/blob/master/debian/rules

skybber commented 5 years ago

Otherwise tests are failing if HA is turned ON simultaneously with redefinition agent from dcevm tests. It looks there is bug in dcevm in class unloading. It should be forbidden to unload redefined class, probably the code is missing in DCEVM. The only workaround of it is -XX:-ClassUnloading, looks it is not very frequentant bug since nobody has been complating on this yet.

ebourg commented 5 years ago

I've rebuilt DCEVM from your 11.0.3+1 branch and I no longer have the initialization error. Many thanks for the help!