I looked at the code in CLibrary.java and found the following code where an exception is thrown -
catch (UnsatisfiedLinkError e) { logger.warn("JNA link failure, one or more native method will be unavailable."); logger.trace("JNA link failure details: {}", e.getMessage()); }
I restarted cassandra by changing the log level in conf / logback.xml to TRACE to print this extra detail -
<logger name="org.apache.cassandra" level="TRACE"/>
Now I could see the real problem -
/tmp/jna-3506402/jna6068045839690239595.tmp: could not display a segment from a shared object: operation not allowed
This problem occurs due to the noexec flag in the / tmp folder.
Then I decided to change the tmp folder by changing tmpdir using the option:
-Djava.io.tmpdir=/home/cassandra/tmp This -Djava.io.tmpdir=/home/cassandra/tmp problem.
I added the parameters to the cassandra-env.sh file. The following statement is added -
JVM_OPTS="$JVM_OPTS -Djava.io.tmpdir=/home/cassandra/tmp"
hellboy
source share