Resolve Nodetool/JMX Issue Post k8ssandra-operator Upgrade -- 2

Job ID: 39746313

Budget: $30 – $250 USD

Need help fixing nodetool/JMX after k8ssandra-operator upgrade

I upgraded k8ssandra-operator from 1.11.1 → 1.26.0 (Helm chart deployed via Flux).
Operator pods are healthy, Cassandra pods restarted cleanly, and cqlsh works (no data loss).

Problem: nodetool no longer works inside the pod after the upgrade.


kubectl -n cassandra exec -ti cassandra-dc1-rack-1-sts-2 -- \
nodetool -u $CASS_UN -pw $CASS_PS status

Defaulted container "cassandra" out of: cassandra, server-system-logger, server-config-init-base (init), server-config-init (init)
nodetool: Failed to connect to '127.0.0.1:7199' - IOException: '/opt/cassandra/conf/cassandra-jaas.config (No such file or directory)'.


Environment & clues

Cassandra serverVersion: 4.1.3.

Namespace: cassandra. Deployed via HelmRelease in Flux.

Looks like a JMX/JAAS config change with the newer operator/image (file path or auth settings), since data/queries are OK but JMX on 127.0.0.1:7199 fails.

What I need

Quickly restore nodetool access (e.g., status, info, ring) and document the fix (JMX/JAAS settings, env vars, or image/config changes required after the upgrade).


update I trieed rollback and got

INFO [main] 2025-08-30 09:03:04,339 DatabaseDescriptor.java:460 - DiskAccessMode 'auto' determined to be mmap, indexAccessMode is mmap
INFO [main] 2025-08-30 09:03:04,339 DatabaseDescriptor.java:514 - Global memtable on-heap threshold is enabled at 512MiB
INFO [main] 2025-08-30 09:03:04,339 DatabaseDescriptor.java:518 - Global memtable off-heap threshold is enabled at 512MiB
INFO [main] 2025-08-30 09:03:04,339 DatabaseDescriptor.java:585 - Native transport rate-limiting disabled.
INFO [main] 2025-08-30 09:03:04,772 GossipingPropertyFileSnitch.java:67 - Unable to load cassandra-topology.properties; compatibility mode disabled
WARN [main] 2025-08-30 09:03:04,839 K8SeedProvider41x.java:47 - Seed provider couldn't lookup host cassandra-dc1-additional-seed-service
INFO [main] 2025-08-30 09:03:04,883 AuthCache.java:340 - (Re)initializing CredentialsCache (validity period/update interval/max entries/active update) (2000/2000/1000/false)
ERROR [main] 2025-08-30 09:03:05,015 CassandraDaemon.java:897 - Exception encountered during startup
org.apache.cassandra.exceptions.ConfigurationException: Unable to find JMX authz proxy class ''
at org.apache.cassandra.utils.FBUtilities.classForName(FBUtilities.java:697)
at org.apache.cassandra.utils.FBUtilities.construct(FBUtilities.java:730)
at org.apache.cassandra.utils.JMXServerUtils.configureJmxAuthorization(JMXServerUtils.java:202)
at org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:108)
at org.apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.java:151)
at org.apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.java:176)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:244)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:751)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:875)
Caused by: java.lang.ClassNotFoundException:
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Class.java:315)
at org.apache.cassandra.utils.FBUtilities.classForName(FBUtilities.java:693)
... 8 common frames omitted


Please don’t bid unless you have real Cassandra/K8ssandra JMX experience.
I’m happy to jump on a call—this should be a quick fix for someone who’s done it before.