Secure the TMP directory

Enterprise security policies often require mounting the /tmp directory with the no execution (noexec) flag.

By default, Cassandra Java Native Access (JNA) is mapped to /tmp, and JNA requires an executable directory to start.

Policies that mount /tmp with noexec can prevent JNA from starting, which also prevents DSE from starting.

If DSE cannot start for this reason, you must remap JNA to an executable directory. Additionally, the user that runs the DSE service must have full read, write, and execute permissions on this directory.

Identify JVM initialization failure

If DSE fails to start, the JNA startup directory might be unavailable.

  1. To verify this, get the last few lines of the system log:

    tail -5 /var/log/cassandra/system.log
  2. Look for messages about JNA failure. For example:

    ERROR main 2024-07-28 09:57:00,879 CassandraDaemon.java:213 - JNA failing to initialize properly. Use -Dcassandra.boot_without_jna=true to bootstrap even so.
    INFO Thread-2 2024-07-28 09:57:00,880 DseDaemon.java:418 - DSE shutting down...
    INFO Thread-2 2024-07-28 09:57:00,881 PluginManager.java:103 - All plugins are stopped.

Map the JNA tmpdir

  1. Create a directory to use as the new JNA startup directory.

  2. Grant the Cassandra (database) user full read, write, and execute permissions on this directory.

  3. Find your DSE installation’s jvm.options file:

    • Package installations: /etc/dse/cassandra/

    • Tarball installations: INSTALLATION_LOCATION/resources/cassandra/conf/

      Replace INSTALLATION_LOCATION with the path where you extracted the DSE tarball.

  4. Map the JNA temporary directory:

    In the jvm-server.options file, add the -Djna.tmpdir flag with the absolute path to the new directory:

    jvm-server.options
    -Djna.tmpdir=JNA_STARTUP_DIRECTORY_PATH

    Alternatively, you can set this option in cassandra-env.sh:

    cassandra-env.sh
    JVM_OPTS="$JVM_OPTS -Djna.tmpdir=JNA_STARTUP_DIRECTORY_PATH"
  5. Restart DSE.

Was this helpful?

Give Feedback

How can we improve the documentation?

© Copyright IBM Corporation 2026 | Privacy policy | Terms of use Manage Privacy Choices

Apache, Apache Cassandra, Cassandra, Apache Tomcat, Tomcat, Apache Lucene, Apache Solr, Apache Hadoop, Hadoop, Apache Pulsar, Pulsar, Apache Spark, Spark, Apache TinkerPop, TinkerPop, Apache Kafka and Kafka are either registered trademarks or trademarks of the Apache Software Foundation or its subsidiaries in Canada, the United States and/or other countries. Kubernetes is the registered trademark of the Linux Foundation.

General Inquiries: Contact IBM