Cassandra fails to start due to changed permissing rights on cassandra.yaml

Bug #1415862 reported by Denis M.
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack DBaaS (Trove)
Fix Released
Critical
Denis M.

Bug Description

Cassandra fails to start due to changed permissing rights on cassandra.yaml

Recent commit changed access rights on cassandra.yaml from 644 to 600

see https://github.com/openstack/trove/blob/master/trove/guestagent/datastore/cassandra/service.py#L128

What should be:

trove@test-cassandra:/etc/cassandra$ ll
total 52
drwxr-xr-x 3 root root 4096 Jan 29 10:58 ./
drwxr-xr-x 101 root root 4096 Jan 29 10:58 ../
-rw-r--r-- 1 root root 10859 Dec 18 18:59 cassandra-env.sh
-rw-r--r-- 1 root root 1199 Dec 18 18:58 cassandra-rackdc.properties
-rw-r--r-- 1 root root 1358 Dec 18 18:58 cassandra-topology.properties
-rw-r--r-- 1 root root 916 Dec 18 18:59 cassandra-topology.yaml
-rw-r--r-- 1 root root 2598 Jan 29 10:58 cassandra.yaml
-rw-r--r-- 1 root root 2366 Dec 18 18:58 commitlog_archiving.properties
-rw-r--r-- 1 root root 1181 Dec 18 18:58 logback-tools.xml
-rw-r--r-- 1 root root 1946 Dec 18 18:58 logback.xml
drwxr-xr-x 2 root root 4096 Jan 27 17:36 triggers/

What currently is:

trove@test-cassandra:/etc/cassandra$ ll
total 52
drwxr-xr-x 3 root root 4096 Jan 29 10:58 ./
drwxr-xr-x 101 root root 4096 Jan 29 10:58 ../
-rw-r--r-- 1 root root 10859 Dec 18 18:59 cassandra-env.sh
-rw-r--r-- 1 root root 1199 Dec 18 18:58 cassandra-rackdc.properties
-rw-r--r-- 1 root root 1358 Dec 18 18:58 cassandra-topology.properties
-rw-r--r-- 1 root root 916 Dec 18 18:59 cassandra-topology.yaml
-rw------- 1 root root 2598 Jan 29 10:58 cassandra.yaml
-rw-r--r-- 1 root root 2366 Dec 18 18:58 commitlog_archiving.properties
-rw-r--r-- 1 root root 1181 Dec 18 18:58 logback-tools.xml
-rw-r--r-- 1 root root 1946 Dec 18 18:58 logback.xml
drwxr-xr-x 2 root root 4096 Jan 27 17:36 triggers/

Where's what Cassandra log shows

INFO [main] 2015-01-29 11:48:01,365 CassandraDaemon.java:89 - Hostname: test-cassandra.novalocal
INFO [main] 2015-01-29 11:48:02,235 YamlConfigurationLoader.java:92 - Loading settings from file:/etc/cassandra/cassandra.yaml
ERROR [main] 2015-01-29 11:48:02,342 CassandraDaemon.java:465 - Exception encountered during startup
java.lang.AssertionError: java.io.FileNotFoundException: /etc/cassandra/cassandra.yaml (Permission denied)
 at org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:101) ~[apache-cassandra-2.1.2.jar:2.1.2]
 at org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:84) ~[apache-cassandra-2.1.2.jar:2.1.2]
 at org.apache.cassandra.config.DatabaseDescriptor.loadConfig(DatabaseDescriptor.java:158) ~[apache-cassandra-2.1.2.jar:2.1.2]
 at org.apache.cassandra.config.DatabaseDescriptor.<clinit>(DatabaseDescriptor.java:133) ~[apache-cassandra-2.1.2.jar:2.1.2]
 at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:96) [apache-cassandra-2.1.2.jar:2.1.2]
 at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:448) [apache-cassandra-2.1.2.jar:2.1.2]
 at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:537) [apache-cassandra-2.1.2.jar:2.1.2]
Caused by: java.io.FileNotFoundException: /etc/cassandra/cassandra.yaml (Permission denied)
 at java.io.FileInputStream.open(Native Method) ~[na:1.7.0_65]
 at java.io.FileInputStream.<init>(FileInputStream.java:146) ~[na:1.7.0_65]
 at java.io.FileInputStream.<init>(FileInputStream.java:101) ~[na:1.7.0_65]
 at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90) ~[na:1.7.0_65]
 at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188) ~[na:1.7.0_65]
 at java.net.URL.openStream(URL.java:1037) ~[na:1.7.0_65]
 at org.apache.cassandra.config.YamlConfigurationLoader.loadConfig(YamlConfigurationLoader.java:94) ~[apache-cassandra-2.1.2.jar:2.1.2]
 ... 6 common frames omitted

Denis M. (dmakogon)
Changed in trove:
importance: High → Critical
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to trove (master)

Fix proposed to branch: master
Review: https://review.openstack.org/151198

Changed in trove:
status: Confirmed → In Progress
Changed in trove:
milestone: kilo-2 → kilo-3
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on trove (master)

Change abandoned by Denis M. (<email address hidden>) on branch: master
Review: https://review.openstack.org/151198
Reason: in favor of Amrith's fix.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to trove (master)

Reviewed: https://review.openstack.org/151198
Committed: https://git.openstack.org/cgit/openstack/trove/commit/?id=18bb2f0793b5ff0fa17de596708bc722df2a58ae
Submitter: Jenkins
Branch: master

commit 18bb2f0793b5ff0fa17de596708bc722df2a58ae
Author: Denis Makogon <email address hidden>
Date: Thu Jan 29 13:57:58 2015 +0200

    Update cassandra.yaml ownership after write_config operation

    Reasons:
     - Cassandra service fails to start due to changed permissions
       of cassandra.yaml, this was caused because new file was
       created by another user, so it is required to revert
       ownership to conf file to prevent bootstrap failure.

    Changes:
     - adding exec that reverts ownership
       right after config movement.
     - adding exec that sets required permissions

    Change-Id: I6baf86c0070067fae2003f074e3f536a7fad8f5f
    Closes-Bug: #1415862

Changed in trove:
status: In Progress → Fix Committed
Revision history for this message
binou (bintou-16) wrote :

hi,
want to use casandra in trove.i would like a easy way to do it with all the steps (i have searched a lot of tuto but have not found a satisfied one.

Thierry Carrez (ttx)
Changed in trove:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in trove:
milestone: kilo-3 → 2015.1.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.