Details
-
Bug
-
Status: Resolved
-
Low
-
Resolution: Fixed
Description
Running under java11, GCInspector throws the following exception:
DEBUG [main] 2018-09-18 05:18:25,905 GCInspector.java:78 - Error accessing field of java.nio.Bits java.lang.NoSuchFieldException: totalCapacity at java.base/java.lang.Class.getDeclaredField(Class.java:2412) at org.apache.cassandra.service.GCInspector.<clinit>(GCInspector.java:72) at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:308) at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:590) at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:679)
This is because GCInspector uses reflection to read the totalCapacity from java.nio.Bits. This field was renamed to TOTAL_CAPACITY somewhere between java8 and java11.
Note: this is a rather harmless error, as we only look at Bits.totalCapacity for metrics collection on how much direct memory is being used by {{ByteBuffer}}s. If we fail to read the field, we simply return -1 for the metric value.
Attachments
Issue Links
- relates to
-
CASSANDRA-9608 Support Java 11
- Resolved
- links to