elastic / elastic/logstash

Logstash data/queue folder appears to have incorrect permissions

Open
#7,190 3 comments 1 reaction 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.