[
https://issues.apache.org/jira/browse/CASSANDRA-14173?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16333282#comment-16333282
]
Michael Shuler commented on CASSANDRA-14173:
--------------------------------------------
Build fails on JDK 1.8u152 - this patch would appear to *require* >= 1.8u161?
{noformat}
(trunk *)mshuler@hana:~/git/cassandra$ git diff
diff --git a/src/java/org/apache/cassandra/utils/JMXServerUtils.java
b/src/java/org/apache/cassandra/utils/JMXServerUtils.java
index e78ed01746..072f237049 100644
--- a/src/java/org/apache/cassandra/utils/JMXServerUtils.java
+++ b/src/java/org/apache/cassandra/utils/JMXServerUtils.java
@@ -46,6 +46,7 @@ import org.slf4j.LoggerFactory;
import com.sun.jmx.remote.internal.RMIExporter;
import com.sun.jmx.remote.security.JMXPluggableAuthenticator;
import org.apache.cassandra.auth.jmx.AuthenticationProxy;
+import sun.misc.ObjectInputFilter;
import sun.rmi.registry.RegistryImpl;
import sun.rmi.server.UnicastServerRef2;
@@ -308,10 +309,10 @@ public class JMXServerUtils
// to our custom Registry too.
private Remote connectorServer;
- public Remote exportObject(Remote obj, int port, RMIClientSocketFactory csf,
RMIServerSocketFactory ssf)
+ public Remote exportObject(Remote obj, int port, RMIClientSocketFactory csf,
RMIServerSocketFactory ssf, ObjectInputFilter filter)
throws RemoteException
{
- Remote remote = new UnicastServerRef2(port, csf, ssf).exportObject(obj, null,
true);
+ Remote remote = new UnicastServerRef2(port, csf, ssf,
filter).exportObject(obj, null, true);
// Keep a reference to the first object exported, the JMXConnectorServer
if (connectorServer == null)
connectorServer = remote;
(trunk *)mshuler@hana:~/git/cassandra$ java -version
java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)
(trunk *)mshuler@hana:~/git/cassandra$ ant
Buildfile: /home/mshuler/git/cassandra/build.xml
Trying to override old definition of task junit
init:
[mkdir] Created dir: /home/mshuler/git/cassandra/build/classes/main
[mkdir] Created dir: /home/mshuler/git/cassandra/build/test/lib
[mkdir] Created dir: /home/mshuler/git/cassandra/build/test/classes
[mkdir] Created dir: /home/mshuler/git/cassandra/build/test/stress-classes
[mkdir] Created dir: /home/mshuler/git/cassandra/src/gen-java
[mkdir] Created dir: /home/mshuler/git/cassandra/build/lib
[mkdir] Created dir: /home/mshuler/git/cassandra/build/jacoco
[mkdir] Created dir: /home/mshuler/git/cassandra/build/jacoco/partials
maven-ant-tasks-localrepo:
[copy] Copying 1 file to /home/mshuler/git/cassandra/build
maven-ant-tasks-download:
maven-ant-tasks-init:
maven-declare-dependencies:
maven-ant-tasks-retrieve-build:
[artifact:dependencies] Building ant file:
/home/mshuler/git/cassandra/build/build-dependencies.xml
[artifact:dependencies] Building ant file:
/home/mshuler/git/cassandra/build/build-dependencies-sources.xml
[copy] Copying 61 files to /home/mshuler/git/cassandra/build/lib/jars
[copy] Copying 15 files to /home/mshuler/git/cassandra/build/lib/sources
[copy] Copying 9 files to /home/mshuler/git/cassandra/build/lib/jars
[unzip] Expanding:
/home/mshuler/git/cassandra/build/lib/jars/org.jacoco.agent-0.7.5.201505241946.jar
into /home/mshuler/git/cassandra/build/lib/jars
check-gen-cql3-grammar:
gen-cql3-grammar:
[echo] Building Grammar /home/mshuler/git/cassandra/src/antlr/Cql.g ...
generate-cql-html:
generate-jflex-java:
[jflex] Generated: StandardTokenizerImpl.java
build-project:
[echo] apache-cassandra: /home/mshuler/git/cassandra/build.xml
[javac] Compiling 1554 source files to
/home/mshuler/git/cassandra/build/classes/main
[javac] Note: Processing compiler hints annotations
[javac] Note: Processing compiler hints annotations
[javac] Note: Writing compiler command file at META-INF/hotspot_compiler
[javac] Note: Done processing compiler hints annotations
[javac]
/home/mshuler/git/cassandra/src/java/org/apache/cassandra/utils/JMXServerUtils.java:305:
error: Exporter is not abstract and does not override abstract method
exportObject(Remote,int,RMIClientSocketFactory,RMIServerSocketFactory) in
RMIExporter
[javac] private static class Exporter implements RMIExporter
[javac] ^
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] Note: Some input files use unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[javac] 1 error
BUILD FAILED
/home/mshuler/git/cassandra/build.xml:762: Compile failed; see the compiler
error output for details.
Total time: 58 seconds{noformat}
> JDK 8u162 breaks JMX integration
> --------------------------------
>
> Key: CASSANDRA-14173
> URL: https://issues.apache.org/jira/browse/CASSANDRA-14173
> Project: Cassandra
> Issue Type: Bug
> Reporter: Sam Tunnicliffe
> Priority: Critical
> Fix For: 3.11.2
>
> Attachments: cassandra-14173.patch
>
>
> {\{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.
> {noformat}
> 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]{noformat}
> 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.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]