Logstash data/queue folder appears to have incorrect permissions
- Dominant language
- Java
- Stars
- 14.9k
- Forks
- 3.5k
- Avg merge
- 19h 14m
- Merged PRs (30d)
- 63
Description
I've been struggling with this issue ever since I tried to upgrade to 5.4.0 this morning. Logstash 5.2.0 does not exhibit the same problem.
I've created a data directory for logstash using the following script:
```
sudo mkdir -p /data/logstash || exit 1
sudo chown -R logstash:logstash /data/logstash || exit 1
sudo chmod g+s /data/logstash || exit 1
sudo chmod -R g+rwx /data/logstash || exit 1
```
I've configured logstash.yml to contain /data/logstash as the data directory.
When logstash starts up, it creates a /data/logstash/queue directory, which is fine.
It can't write to it though.
```
[2017-05-24T04:42:02,021][FATAL][logstash.runner ] An unexpected error occurred! {:error=>#, :backtrace=>["/usr/share/logstash/logstash-core/lib/logstash/settings.rb:433:in `validate'", "/usr/share/logstash/logstash-core/lib/logstash/settings.rb:216:in `validate_value'", "/usr/share/logstash/logstash-core/lib/logstash/settings.rb:132:in `validate_all'", "org/jruby/RubyHash.java:1342:in `each'", "/usr/share/logstash/logstash-core/lib/logstash/settings.rb:131:in `validate_all'", "/usr/share/logstash/logstash-core/lib/logstash/runner.rb:217:in `execute'", "/usr/share/logstash/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/command.rb:67:in `run'", "/usr/share/logstash/logstash-core/lib/logstash/runner.rb:185:in `run'", "/usr/share/logstash/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/command.rb:132:in `run'", "/usr/share/logstash/lib/bootstrap/environment.rb:71:in `(root)'"]}
```
This seems to cause it to go into an infinite startup loop, it slams the CPU and generally just keeps doing that until I tell it to stop.
The permissions of /data/logstash are:
```
$ stat /data/logstash
File: ‘/data/logstash’
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: ca01h/51713d Inode: 270682 Links: 3
Access: (2775/drwxrwsr-x) Uid: ( 498/logstash) Gid: ( 497/logstash)
Access: 2017-05-24 04:38:08.560851615 +0000
Modify: 2017-05-24 04:38:25.456851615 +0000
Change: 2017-05-24 04:38:25.456851615 +0000
Birth: -
```
And the permissions of /data/logstash/queue are:
```
$ stat /data/logstash/queue
File: ‘/data/logstash/queue’
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: ca01h/51713d Inode: 270685 Links: 2
Access: (2755/drwxr-sr-x) Uid: ( 0/ root) Gid: ( 497/logstash)
Access: 2017-05-24 04:38:25.456851615 +0000
Modify: 2017-05-24 04:38:25.456851615 +0000
Change: 2017-05-24 04:38:25.456851615 +0000
Birth: -
```
I honestly have no idea whats going on. I don't even know how it managed to create a directory it couldn't access.
I can create the queue directory myself, but I don't feel like that's a particular robust solution, when the configuration only asked for a root directory (which I created and gave to it).
Contributor guide
Assessment
This issue has not been assessed yet.