[jira] [Commented] (CASSANDRA-19453) Enabling remote JMX fails to start

2024-03-04 Thread Stefan Miklosovic (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-19453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17823173#comment-17823173
 ] 

Stefan Miklosovic commented on CASSANDRA-19453:
---

Thanks [~brandon.williams], I reproduced the problem, finally, and verified 
that your suggested patch works.

> Enabling remote JMX fails to start
> --
>
> Key: CASSANDRA-19453
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19453
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Config
>Reporter: Brandon Williams
>Assignee: Brandon Williams
>Priority: Normal
> Fix For: 5.0-rc, 5.x
>
>
> If you set LOCAL_JMX to something other than 'yes' in conf/cassandra-env.sh, 
> you receive:
> {noformat}
> Exception (java.lang.ExceptionInInitializerError) encountered during startup: 
> null
> java.lang.ExceptionInInitializerError
> at 
> org.apache.cassandra.utils.JMXServerUtils.configureJmxAuthentication(JMXServerUtils.java:188)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:106)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:154)
> at 
> org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:172)
> at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:240)
> at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:721)
> at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:855)
> Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: 
> access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
> (unnamed module @51dcb805)
> at 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper.(JMXServerUtils.java:306)
> ... 7 more
> Caused by: java.lang.IllegalAccessException: access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
> (unnamed module @51dcb805)
> at 
> java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:955)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.checkAccess(MethodHandles.java:3882)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.getDirectConstructorCommon(MethodHandles.java:4117)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.getDirectConstructorNoSecurityManager(MethodHandles.java:4111)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.unreflectConstructor(MethodHandles.java:3433)
> at 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper.(JMXServerUtils.java:302)
> ... 7 more
> ERROR [main] 2024-03-01 06:16:00,028 CassandraDaemon.java:877 - Exception 
> encountered during startup
> java.lang.ExceptionInInitializerError: null
> at 
> org.apache.cassandra.utils.JMXServerUtils.configureJmxAuthentication(JMXServerUtils.java:188)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:106)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:154)
> at 
> org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:172)
> at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:240)
> at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:721)
> at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:855)
> Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: 
> access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
> (unnamed module @51dcb805)
> at 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper.(JMXServerUtils.java:306)
> ... 7 common frames omitted
> Caused by: java.lang.IllegalAccessException: access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
> (unnamed module @51dcb805)
> at 
> java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:955)
> at 
> 

[jira] [Commented] (CASSANDRA-19453) Enabling remote JMX fails to start

2024-03-04 Thread Brandon Williams (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-19453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17823154#comment-17823154
 ] 

Brandon Williams commented on CASSANDRA-19453:
--

Looks like we just need to export JMX remote security in j17.

||Branch||CI||
|[5.0|https://github.com/driftx/cassandra/tree/CASSANDRA-19453-5.0]|[j11|https://app.circleci.com/pipelines/github/driftx/cassandra/1489/workflows/0472537f-9cc6-49b7-a910-1dca612f901d],
 
[j17|https://app.circleci.com/pipelines/github/driftx/cassandra/1489/workflows/b6234e38-c93c-4db9-86f9-eb35053deb4b]|
|[trunk|https://github.com/driftx/cassandra/tree/CASSANDRA-19453-trunk]|[j11|https://app.circleci.com/pipelines/github/driftx/cassandra/1490/workflows/33b5d443-abad-40c2-bfc3-bd9fb0a03cb6],
 
[j17|https://app.circleci.com/pipelines/github/driftx/cassandra/1490/workflows/5a46bbb9-992f-42ed-8b6a-fcda1c413245]|


> Enabling remote JMX fails to start
> --
>
> Key: CASSANDRA-19453
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19453
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Config
>Reporter: Brandon Williams
>Assignee: Brandon Williams
>Priority: Normal
> Fix For: 5.0-rc, 5.x
>
>
> If you set LOCAL_JMX to something other than 'yes' in conf/cassandra-env.sh, 
> you receive:
> {noformat}
> Exception (java.lang.ExceptionInInitializerError) encountered during startup: 
> null
> java.lang.ExceptionInInitializerError
> at 
> org.apache.cassandra.utils.JMXServerUtils.configureJmxAuthentication(JMXServerUtils.java:188)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:106)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:154)
> at 
> org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:172)
> at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:240)
> at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:721)
> at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:855)
> Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: 
> access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
> (unnamed module @51dcb805)
> at 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper.(JMXServerUtils.java:306)
> ... 7 more
> Caused by: java.lang.IllegalAccessException: access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
> (unnamed module @51dcb805)
> at 
> java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:955)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.checkAccess(MethodHandles.java:3882)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.getDirectConstructorCommon(MethodHandles.java:4117)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.getDirectConstructorNoSecurityManager(MethodHandles.java:4111)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.unreflectConstructor(MethodHandles.java:3433)
> at 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper.(JMXServerUtils.java:302)
> ... 7 more
> ERROR [main] 2024-03-01 06:16:00,028 CassandraDaemon.java:877 - Exception 
> encountered during startup
> java.lang.ExceptionInInitializerError: null
> at 
> org.apache.cassandra.utils.JMXServerUtils.configureJmxAuthentication(JMXServerUtils.java:188)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:106)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:154)
> at 
> org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:172)
> at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:240)
> at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:721)
> at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:855)
> Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: 
> access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
> (unnamed module @51dcb805)
> at 
> 

[jira] [Commented] (CASSANDRA-19453) Enabling remote JMX fails to start

2024-03-04 Thread Angelo Polo (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-19453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17823074#comment-17823074
 ] 

Angelo Polo commented on CASSANDRA-19453:
-

I'm getting the exact same error with 5.0-beta1. This is a fresh install on a 
fresh Amazon Linux 2023 on arm64 instance. JAVA_HOME seems to be correct.

 
{code:java}
$ java -version
openjdk version "17.0.2" 2022-01-18
OpenJDK Runtime Environment (build 17.0.2+8-86)
OpenJDK 64-Bit Server VM (build 17.0.2+8-86, mixed mode, sharing)
$ which java
/usr/local/bin/jdk-17.0.2/bin/java
$ echo $JAVA_HOME
/usr/local/bin/jdk-17.0.2
$ echo $CASSANDRA_CONF
/home/cassandra/c_conf/5.0-beta1_01
$ echo $CASSANDRA_HOME
/usr/local/bin/apache-cassandra-5.0-beta1
{code}
 

("XXX"s indicate redaction.)
{code:java}
$ cd $CASSANDRA_CONF
$ diff cassandra.yaml.bak cassandra.yaml
11c11
< cluster_name: 'Test Cluster'
---
> cluster_name: 'XX'
154c154
<   class_name : org.apache.cassandra.auth.AllowAllAuthenticator
---
>   class_name : org.apache.cassandra.auth.PasswordAuthenticator
169c169
< authorizer: AllowAllAuthorizer
---
> authorizer: CassandraAuthorizer
974c974
< rpc_address: localhost
---
> rpc_address: XXX-XXX-XXX-XXX
$ diff cassandra-env.sh.bak cassandra-env.sh
206c206
< # JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname="
---
> JVM_OPTS="$JVM_OPTS 
> -Djava.rmi.server.hostname=ec2-XXX-XXX-XXX-XXX.compute-1.amazonaws.com"
216a217
> LOCAL_JMX=no
224c225
< JMX_PORT="7199"
---
> JMX_PORT="7488"
{code}
 

Get the same error whether or not I set "java.rmi.server.hostname".

If I do not set "LOCAL_JMX=no" in cassandra-env.sh, it runs fine.

Any ideas what could be wrong?

> Enabling remote JMX fails to start
> --
>
> Key: CASSANDRA-19453
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19453
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Config
>Reporter: Brandon Williams
>Priority: Normal
> Fix For: 5.0-rc, 5.x
>
>
> If you set LOCAL_JMX to something other than 'yes' in conf/cassandra-env.sh, 
> you receive:
> {noformat}
> Exception (java.lang.ExceptionInInitializerError) encountered during startup: 
> null
> java.lang.ExceptionInInitializerError
> at 
> org.apache.cassandra.utils.JMXServerUtils.configureJmxAuthentication(JMXServerUtils.java:188)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:106)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:154)
> at 
> org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:172)
> at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:240)
> at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:721)
> at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:855)
> Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: 
> access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
> (unnamed module @51dcb805)
> at 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper.(JMXServerUtils.java:306)
> ... 7 more
> Caused by: java.lang.IllegalAccessException: access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
> (unnamed module @51dcb805)
> at 
> java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:955)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.checkAccess(MethodHandles.java:3882)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.getDirectConstructorCommon(MethodHandles.java:4117)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.getDirectConstructorNoSecurityManager(MethodHandles.java:4111)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.unreflectConstructor(MethodHandles.java:3433)
> at 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper.(JMXServerUtils.java:302)
> ... 7 more
> ERROR [main] 2024-03-01 06:16:00,028 CassandraDaemon.java:877 - Exception 
> encountered during startup
> java.lang.ExceptionInInitializerError: null
> at 
> org.apache.cassandra.utils.JMXServerUtils.configureJmxAuthentication(JMXServerUtils.java:188)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:106)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:154)
> at 
> 

[jira] [Commented] (CASSANDRA-19453) Enabling remote JMX fails to start

2024-03-01 Thread Brandon Williams (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-19453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17822571#comment-17822571
 ] 

Brandon Williams commented on CASSANDRA-19453:
--

Oh, I am using java 11, which is probably relevant.

> Enabling remote JMX fails to start
> --
>
> Key: CASSANDRA-19453
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19453
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Config
>Reporter: Brandon Williams
>Priority: Normal
> Fix For: 5.0-rc, 5.x
>
>
> If you set LOCAL_JMX to something other than 'yes' in conf/cassandra-env.sh, 
> you receive:
> {noformat}
> Exception (java.lang.ExceptionInInitializerError) encountered during startup: 
> null
> java.lang.ExceptionInInitializerError
> at 
> org.apache.cassandra.utils.JMXServerUtils.configureJmxAuthentication(JMXServerUtils.java:188)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:106)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:154)
> at 
> org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:172)
> at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:240)
> at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:721)
> at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:855)
> Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: 
> access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
> (unnamed module @51dcb805)
> at 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper.(JMXServerUtils.java:306)
> ... 7 more
> Caused by: java.lang.IllegalAccessException: access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
> (unnamed module @51dcb805)
> at 
> java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:955)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.checkAccess(MethodHandles.java:3882)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.getDirectConstructorCommon(MethodHandles.java:4117)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.getDirectConstructorNoSecurityManager(MethodHandles.java:4111)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.unreflectConstructor(MethodHandles.java:3433)
> at 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper.(JMXServerUtils.java:302)
> ... 7 more
> ERROR [main] 2024-03-01 06:16:00,028 CassandraDaemon.java:877 - Exception 
> encountered during startup
> java.lang.ExceptionInInitializerError: null
> at 
> org.apache.cassandra.utils.JMXServerUtils.configureJmxAuthentication(JMXServerUtils.java:188)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:106)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:154)
> at 
> org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:172)
> at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:240)
> at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:721)
> at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:855)
> Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: 
> access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
> (unnamed module @51dcb805)
> at 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper.(JMXServerUtils.java:306)
> ... 7 common frames omitted
> Caused by: java.lang.IllegalAccessException: access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
> (unnamed module @51dcb805)
> at 
> java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:955)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.checkAccess(MethodHandles.java:3882)
> at 
> 

[jira] [Commented] (CASSANDRA-19453) Enabling remote JMX fails to start

2024-03-01 Thread Brandon Williams (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-19453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17822569#comment-17822569
 ] 

Brandon Williams commented on CASSANDRA-19453:
--

I don't know what to tell you

{quote}
ERROR [main] 2024-03-01 07:28:48,437 CassandraDaemon.java:877 - Exception 
encountered during startup
java.lang.ExceptionInInitializerError: null
at 
org.apache.cassandra.utils.JMXServerUtils.configureJmxAuthentication(JMXServerUtils.java:188)
at 
org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:106)
at 
org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:154)
at 
org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:172)
at 
org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:240)
at 
org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:721)
at 
org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:855)
Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: access 
to public member failed: 
com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@588ffeb/invokeSpecial,
 from class 
org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
(unnamed module @4944252c)
at 
org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper.(JMXServerUtils.java:306)
... 7 common frames omitted
Caused by: java.lang.IllegalAccessException: access to public member failed: 
com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@588ffeb/invokeSpecial,
 from class 
org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
(unnamed module @4944252c)
at 
java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:955)
at 
java.base/java.lang.invoke.MethodHandles$Lookup.checkAccess(MethodHandles.java:3882)
at 
java.base/java.lang.invoke.MethodHandles$Lookup.getDirectConstructorCommon(MethodHandles.java:4117)
at 
java.base/java.lang.invoke.MethodHandles$Lookup.getDirectConstructorNoSecurityManager(MethodHandles.java:4111)
at 
java.base/java.lang.invoke.MethodHandles$Lookup.unreflectConstructor(MethodHandles.java:3433)
at 
org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper.(JMXServerUtils.java:302)
... 7 common frames omitted
drift@focal2:~/cassandra/5.0$ git diff
diff --git a/conf/cassandra-env.sh b/conf/cassandra-env.sh
index ba9f9d4596..d29ac83bc0 100644
--- a/conf/cassandra-env.sh
+++ b/conf/cassandra-env.sh
@@ -215,7 +215,7 @@ JVM_ON_OUT_OF_MEMORY_ERROR_OPT="-XX:OnOutOfMemoryError=kill 
-9 %p"
 # with authentication and/or ssl enabled. See 
https://wiki.apache.org/cassandra/JmxSecurity 
 #
 if [ "x$LOCAL_JMX" = "x" ]; then
-LOCAL_JMX=yes
+LOCAL_JMX=baz
 fi
 
 # Specifies the default port over which Cassandra will be available for
drift@focal2:~/cassandra/5.0$ 
{quote}

> Enabling remote JMX fails to start
> --
>
> Key: CASSANDRA-19453
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19453
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Config
>Reporter: Brandon Williams
>Priority: Normal
> Fix For: 5.0-rc, 5.x
>
>
> If you set LOCAL_JMX to something other than 'yes' in conf/cassandra-env.sh, 
> you receive:
> {noformat}
> Exception (java.lang.ExceptionInInitializerError) encountered during startup: 
> null
> java.lang.ExceptionInInitializerError
> at 
> org.apache.cassandra.utils.JMXServerUtils.configureJmxAuthentication(JMXServerUtils.java:188)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:106)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:154)
> at 
> org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:172)
> at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:240)
> at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:721)
> at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:855)
> Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: 
> access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
> (unnamed module @51dcb805)
> at 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper.(JMXServerUtils.java:306)
> ... 7 more
> Caused by: java.lang.IllegalAccessException: access to public member failed: 
> 

[jira] [Commented] (CASSANDRA-19453) Enabling remote JMX fails to start

2024-03-01 Thread Stefan Miklosovic (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-19453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17822567#comment-17822567
 ] 

Stefan Miklosovic commented on CASSANDRA-19453:
---

If I have fully setup ssl like this (checkout LOCAL_JMX=baz) it will just jump 
to else branch again and all will be just started fine.

{noformat}
LOCAL_JMX="baz"

if [ "x$LOCAL_JMX" = "x" ]; then
LOCAL_JMX=yes
fi

# Specifies the default port over which Cassandra will be available for
# JMX connections.
# For security reasons, you should not expose this port to the internet.  
Firewall it if needed.
JMX_PORT="7199"

if [ "$LOCAL_JMX" = "yes" ]; then
  JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.local.port=$JMX_PORT"
  JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
else
  JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.remote.port=$JMX_PORT"
  # if ssl is enabled the same port cannot be used for both jmx and rmi so 
either
  # pick another value for this property or comment out to use a random port 
(though see CASSANDRA-7087 for origins)
  JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.rmi.port=7750"

  # turn on JMX authentication. See below for further options
  JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"

  # jmx ssl options
  JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=true"
  JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl.need.client.auth=false"
  JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.registry.ssl=true"
  JVM_OPTS="$JVM_OPTS 
-Dcom.sun.management.jmxremote.ssl.enabled.protocols=TLSv1.2"
  JVM_OPTS="$JVM_OPTS 
-Dcom.sun.management.jmxremote.ssl.enabled.cipher.suites=TLS_RSA_WITH_AES_256_CBC_SHA"
  JVM_OPTS="$JVM_OPTS 
-Djavax.net.ssl.keyStore=/submit/cassandra/ssl/$(hostname)-server-keystore.p12"
  JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword=cassandra"
  JVM_OPTS="$JVM_OPTS 
-Djavax.net.ssl.trustStore=/submit/cassandra/ssl/server-truststore.jks"
  JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.trustStorePassword=cassandra"
fi
{noformat}

> Enabling remote JMX fails to start
> --
>
> Key: CASSANDRA-19453
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19453
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Config
>Reporter: Brandon Williams
>Assignee: Stefan Miklosovic
>Priority: Normal
> Fix For: 5.0-rc, 5.x
>
>
> If you set LOCAL_JMX to something other than 'yes' in conf/cassandra-env.sh, 
> you receive:
> {noformat}
> Exception (java.lang.ExceptionInInitializerError) encountered during startup: 
> null
> java.lang.ExceptionInInitializerError
> at 
> org.apache.cassandra.utils.JMXServerUtils.configureJmxAuthentication(JMXServerUtils.java:188)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:106)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:154)
> at 
> org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:172)
> at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:240)
> at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:721)
> at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:855)
> Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: 
> access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
> (unnamed module @51dcb805)
> at 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper.(JMXServerUtils.java:306)
> ... 7 more
> Caused by: java.lang.IllegalAccessException: access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
> (unnamed module @51dcb805)
> at 
> java.base/java.lang.invoke.MemberName.makeAccessException(MemberName.java:955)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.checkAccess(MethodHandles.java:3882)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.getDirectConstructorCommon(MethodHandles.java:4117)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.getDirectConstructorNoSecurityManager(MethodHandles.java:4111)
> at 
> java.base/java.lang.invoke.MethodHandles$Lookup.unreflectConstructor(MethodHandles.java:3433)
> at 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper.(JMXServerUtils.java:302)
> ... 7 more
> ERROR [main] 2024-03-01 06:16:00,028 CassandraDaemon.java:877 - 

[jira] [Commented] (CASSANDRA-19453) Enabling remote JMX fails to start

2024-03-01 Thread Stefan Miklosovic (Jira)


[ 
https://issues.apache.org/jira/browse/CASSANDRA-19453?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17822563#comment-17822563
 ] 

Stefan Miklosovic commented on CASSANDRA-19453:
---

I just can't reproduce it.

When I set "LOCAL_JMX=baz" in cassandra-env.sh before "if [ "x$LOCAL_JMX" = "x" 
]; then", then it will not be set to "yes" because it is not empty. Then if it 
is not "yes" but "baz" it will go to else branch in the next if-else.

Node starts fine, then doing "nodetool status" will do

{noformat}
$ ./bin/nodetool status
error: Authentication failed! Credentials required
-- StackTrace --
java.lang.SecurityException: Authentication failed! Credentials required
at 
java.management/com.sun.jmx.remote.security.JMXPluggableAuthenticator.authenticationFailure(JMXPluggableAuthenticator.java:212)
at 
java.management/com.sun.jmx.remote.security.JMXPluggableAuthenticator.authenticate(JMXPluggableAuthenticator.java:164)
at 
org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper.authenticate(JMXServerUtils.java:321)
at 
java.management.rmi/javax.management.remote.rmi.RMIServerImpl.doNewClient(RMIServerImpl.java:231)
at 
java.management.rmi/javax.management.remote.rmi.RMIServerImpl.newClient(RMIServerImpl.java:198)
at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at 
java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
at 
java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562)
at 
java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796)
at 
java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at 
java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676)
at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)

{noformat}

> Enabling remote JMX fails to start
> --
>
> Key: CASSANDRA-19453
> URL: https://issues.apache.org/jira/browse/CASSANDRA-19453
> Project: Cassandra
>  Issue Type: Bug
>  Components: Local/Config
>Reporter: Brandon Williams
>Assignee: Stefan Miklosovic
>Priority: Normal
> Fix For: 5.0-rc, 5.x
>
>
> If you set LOCAL_JMX to something other than 'yes' in conf/cassandra-env.sh, 
> you receive:
> {noformat}
> Exception (java.lang.ExceptionInInitializerError) encountered during startup: 
> null
> java.lang.ExceptionInInitializerError
> at 
> org.apache.cassandra.utils.JMXServerUtils.configureJmxAuthentication(JMXServerUtils.java:188)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:106)
> at 
> org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:154)
> at 
> org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:172)
> at 
> org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:240)
> at 
> org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:721)
> at 
> org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:855)
> Caused by: java.lang.RuntimeException: java.lang.IllegalAccessException: 
> access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper 
> (unnamed module @51dcb805)
> at 
> org.apache.cassandra.utils.JMXServerUtils$JMXPluggableAuthenticatorWrapper.(JMXServerUtils.java:306)
> ... 7 more
> Caused by: java.lang.IllegalAccessException: access to public member failed: 
> com.sun.jmx.remote.security.JMXPluggableAuthenticator.[Ljava.lang.Object;@afb5821/invokeSpecial,
>  from class 
>