Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-14173

JDK 8u161 breaks JMX integration

    XMLWordPrintableJSON

Details

    Description

      org.apache.cassandra.utils.JMXServerUtils which is used to programatically configure the JMX server and RMI registry (CASSANDRA-2967, CASSANDRA-10091) depends on some JDK internal classes/interfaces. A change to one of these, introduced in Oracle JDK 1.8.0_162 is incompatible, which means we cannot build using that JDK version. Upgrading the JVM on a node running 3.6+ will result in Cassandra being unable to start.

      ERROR [main] 2018-01-18 07:33:18,804 CassandraDaemon.java:706 - Exception encountered during startup
      java.lang.AbstractMethodError: org.apache.cassandra.utils.JMXServerUtils$Exporter.exportObject(Ljava/rmi/Remote;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;Lsun/misc/ObjectInputFilter;)Ljava/rmi/Remote;
              at javax.management.remote.rmi.RMIJRMPServerImpl.export(RMIJRMPServerImpl.java:150) ~[na:1.8.0_162]
              at javax.management.remote.rmi.RMIJRMPServerImpl.export(RMIJRMPServerImpl.java:135) ~[na:1.8.0_162]
              at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:405) ~[na:1.8.0_162]
              at org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:104) ~[apache-cassandra-3.11.2-SNAPSHOT.jar:3.11.2-SNAPSHOT]
              at org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:143) [apache-cassandra-3.11.2-SNAPSHOT.jar:3.11.2-SNAPSHOT]
              at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:188) [apache-cassandra-3.11.2-SNAPSHOT.jar:3.11.2-SNAPSHOT]
              at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:600) [apache-cassandra-3.11.2-SNAPSHOT.jar:3.11.2-SNAPSHOT]
              at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:689) [apache-cassandra-3.11.2-SNAPSHOT.jar:3.11.2-SNAPSHOT]

      This is also a problem for CASSANDRA-9608, as the internals are completely re-organised in JDK9, so a more stable solution that can be applied to both JDK8 & JDK9 is required.

      Attachments

        Issue Links

          Activity

            People

              samt Sam Tunnicliffe
              samt Sam Tunnicliffe
              Sam Tunnicliffe
              Votes:
              11 Vote for this issue
              Watchers:
              25 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: