Skip to content

Cassandra home path permission not set correctly during installation if homeDir is different from default #81910

@Zhen-hao

Description

@Zhen-hao

I deployed a Cassandra service via NixOps and got the following error in the Cassandra log:

Mar 06 17:49:04 server1 cassandra[2780]: Exception (org.apache.cassandra.exceptions.ConfigurationException) encountered during startup: Unable to check disk space available to /data1/cassandra/commitlog. Perhaps the Cassandra user does not have the necessary permissions
Mar 06 17:49:04 server1 cassandra[2780]: org.apache.cassandra.exceptions.ConfigurationException: Unable to check disk space available to /data1/cassandra/commitlog. Perhaps the Cassandra user does not have the necessary permissions
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.config.DatabaseDescriptor.applySimpleConfig(DatabaseDescriptor.java:475)
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.config.DatabaseDescriptor.applyAll(DatabaseDescriptor.java:316)
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:148)
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:132)
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.service.CassandraDaemon.applyConfig(CassandraDaemon.java:665)
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:609)
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:732)
Mar 06 17:49:04 server1 cassandra[2780]: Caused by: java.nio.file.AccessDeniedException: /data1/cassandra/commitlog
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.UnixFileStore.devFor(UnixFileStore.java:57)
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.UnixFileStore.<init>(UnixFileStore.java:64)
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.LinuxFileStore.<init>(LinuxFileStore.java:44)
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.LinuxFileSystemProvider.getFileStore(LinuxFileSystemProvider.java:51)
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.LinuxFileSystemProvider.getFileStore(LinuxFileSystemProvider.java:39)
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.UnixFileSystemProvider.getFileStore(UnixFileSystemProvider.java:368)
Mar 06 17:49:04 server1 cassandra[2780]:         at java.nio.file.Files.getFileStore(Files.java:1461)
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.io.util.FileUtils.getFileStore(FileUtils.java:667)
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.config.DatabaseDescriptor.guessFileStore(DatabaseDescriptor.java:1029)
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.config.DatabaseDescriptor.applySimpleConfig(DatabaseDescriptor.java:470)
Mar 06 17:49:04 server1 cassandra[2780]:         ... 6 more
Mar 06 17:49:04 server1 cassandra[2780]: ERROR 16:49:04 Exception encountered during startup
Mar 06 17:49:04 server1 cassandra[2780]: org.apache.cassandra.exceptions.ConfigurationException: Unable to check disk space available to /data1/cassandra/commitlog. Perhaps the Cassandra user does not have the necessary permissions
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.config.DatabaseDescriptor.applySimpleConfig(DatabaseDescriptor.java:475) ~[apache-cassandra-3.11.4.jar:3.11.4]
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.config.DatabaseDescriptor.applyAll(DatabaseDescriptor.java:316) ~[apache-cassandra-3.11.4.jar:3.11.4]
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:148) ~[apache-cassandra-3.11.4.jar:3.11.4]
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:132) ~[apache-cassandra-3.11.4.jar:3.11.4]
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.service.CassandraDaemon.applyConfig(CassandraDaemon.java:665) [apache-cassandra-3.11.4.jar:3.11.4]
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:609) [apache-cassandra-3.11.4.jar:3.11.4]
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:732) [apache-cassandra-3.11.4.jar:3.11.4]
Mar 06 17:49:04 server1 cassandra[2780]: Caused by: java.nio.file.AccessDeniedException: /data1/cassandra/commitlog
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84) ~[na:1.8.0_242]
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) ~[na:1.8.0_242]
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) ~[na:1.8.0_242]
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.UnixFileStore.devFor(UnixFileStore.java:57) ~[na:1.8.0_242]
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.UnixFileStore.<init>(UnixFileStore.java:64) ~[na:1.8.0_242]
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.LinuxFileStore.<init>(LinuxFileStore.java:44) ~[na:1.8.0_242]
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.LinuxFileSystemProvider.getFileStore(LinuxFileSystemProvider.java:51) ~[na:1.8.0_242]
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.LinuxFileSystemProvider.getFileStore(LinuxFileSystemProvider.java:39) ~[na:1.8.0_242]
Mar 06 17:49:04 server1 cassandra[2780]:         at sun.nio.fs.UnixFileSystemProvider.getFileStore(UnixFileSystemProvider.java:368) ~[na:1.8.0_242]
Mar 06 17:49:04 server1 cassandra[2780]:         at java.nio.file.Files.getFileStore(Files.java:1461) ~[na:1.8.0_242]
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.io.util.FileUtils.getFileStore(FileUtils.java:667) ~[apache-cassandra-3.11.4.jar:3.11.4]
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.config.DatabaseDescriptor.guessFileStore(DatabaseDescriptor.java:1029) ~[apache-cassandra-3.11.4.jar:3.11.4]
Mar 06 17:49:04 server1 cassandra[2780]:         at org.apache.cassandra.config.DatabaseDescriptor.applySimpleConfig(DatabaseDescriptor.java:470) ~[apache-cassandra-3.11.4.jar:3.11.4]
Mar 06 17:49:04 server1 cassandra[2780]:         ... 6 common frames omitted
Mar 06 17:49:04 server1 systemd[1]: cassandra.service: Main process exited, code=exited, status=3/NOTIMPLEMENTED
Mar 06 17:49:04 server1 systemd[1]: cassandra.service: Failed with result 'exit-code'.
Mar 06 17:49:04 server1 systemd[1]: cassandra.service: Consumed 2.189s CPU time, no IP traffic.

the cause is that there are no settings on the owner group of /data1

[root@server1:~]# ls -l /
total 60
drwxr-xr-x   2 root root  4096 Mar  6 17:49 bin
drwxr-xr-x   4 root root  4096 Jan  1  1970 boot
drwx------   3 root root  4096 Mar  6 17:49 data1

to reproduce:

{ config, ...}:
let
  commitRev = "82b54d490663b6d87b7b34b9cfc0985df8b49c7d"; # unstable on 06-03-2020
  nixpkgs = builtins.fetchTarball {
    url = "https://github.com/NixOS/nixpkgs-channels/archive/${commitRev}.tar.gz";
    sha256 = "12gpsif48g5b4ys45x36g4vdf0srgal4c96351m7gd2jsgvdllyf"; 
  };
  pkgs = import nixpkgs { config = {}; };
in
{ 
    services.cassandra = {
        enable = true;
        homeDir = "/data1/cassandra";
        extraConfig = {
            start_native_transport = true;
        };
    };
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    0.kind: bugSomething is broken2.status: stalehttps://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md6.topic: nixosIssues or PRs affecting NixOS modules, or package usability issues specific to NixOS
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions