Why doesn't Cassandra start up ?

Created by Victor Diaz on Mon, 07/29/2019 - 06:09
Published URL:
https://www.ibm.com/support/pages/node/961316
961316

Question & Answer


Question

After updating RHE Linux, why doesn't Apache Cassandra start up?

Cause

No 'JVM' options are being passed to the 'cassandra-env.sh' script, as the following log stack shows:
WARN  [main] 2019-07-09 13:15:37,751 StartupChecks.java:157 - JMX is not enabled to receive remote connections. Please see cassandra-env.sh for more info.
WARN  [main] 2019-07-09 13:15:37,752 StartupChecks.java:198 - Non-Oracle JVM detected.  Some features, such as immediate unmap of compacted SSTables, may not work as intended
INFO  [main] 2019-07-09 13:15:37,753 SigarLibrary.java:44 - Initializing SIGAR library
WARN  [main] 2019-07-09 13:15:37,762 SigarLibrary.java:174 - Cassandra server running in degraded mode. Is swap disabled? : false,  Address space adequate? : true,  nofile limit adequate? : true, nproc limit adequate? : true
INFO  [main] 2019-07-09 13:15:37,873 QueryProcessor.java:115 - Initialized prepared statement caches with 32 MB (native) and 32 MB (Thrift)
INFO  [main] 2019-07-09 13:15:38,386 ColumnFamilyStore.java:406 - Initializing system.IndexInfo
INFO  [main] 2019-07-09 13:15:39,852 ColumnFamilyStore.java:406 - Initializing system.batches
INFO  [main] 2019-07-09 13:15:39,868 ColumnFamilyStore.java:406 - Initializing system.paxos
INFO  [main] 2019-07-09 13:15:39,885 ColumnFamilyStore.java:406 - Initializing system.local
INFO  [SSTableBatchOpen:1] 2019-07-09 13:15:39,909 BufferPool.java:230 - Global buffer pool is enabled, when pool is exhausted (max is 512.000MiB) it will allocate on heap
ERROR [SSTableBatchOpen:1] 2019-07-09 13:15:40,109 DebuggableThreadPoolExecutor.java:239 - Error in ThreadPoolExecutor
java.lang.NoClassDefFoundError: com.sun.jna.Native (initialization failure)
        at java.lang.J9VMInternals.initializationAlreadyFailed(J9VMInternals.java:91) ~[na:1.8.0-internal]
        at org.apache.cassandra.utils.memory.MemoryUtil.allocate(MemoryUtil.java:94) ~[apache-cassandra-3.10.jar:3.10]
        at org.apache.cassandra.io.util.Memory.<init>(Memory.java:68) ~[apache-cassandra-3.10.jar:3.10]
        at org.apache.cassandra.io.util.Memory.allocate(Memory.java:91) ~[apache-cassandra-3.10.jar:3.10]
        at org.apache.cassandra.io.sstable.IndexSummary$IndexSummarySerializer.deserialize(IndexSummary.java:330) ~[apache-cassandra-3.10.jar:3.10]
        at org.apache.cassandra.io.sstable.format.SSTableReader.loadSummary(SSTableReader.java:885) ~[apache-cassandra-3.10.jar:3.10]
        at org.apache.cassandra.io.sstable.format.SSTableReader.load(SSTableReader.java:764) ~[apache-cassandra-3.10.jar:3.10]
        at org.apache.cassandra.io.sstable.format.SSTableReader.load(SSTableReader.java:732) ~[apache-cassandra-3.10.jar:3.10]

Answer

We need to pass the 'JVM_OPTS' to the 'cassandra-env.sh' script by setting the environment with:
export JVM_OPTS="$JVM_OPTS -Djna.tmpdir=/var/lib/cassandra/tmp"
and defining directory /var/lib/cassandra/tmp

[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSJQQ3","label":"IBM Operations Analytics - Predictive Insights"},"Component":"Apache Cassandra","Platform":[{"code":"PF043","label":"Red Hat"}],"Version":"All Versions","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Historical Number

TS002456844

Document Information

Modified date:
30 July 2019

UID

ibm10961316