Issue adding master only node -- path.repo not set?



I would like to add 3 dedicated master only nodes to my cluster. I'd like to transition my existing master/data nodes to be data node only. However, the first step I took was to try adding a master only node to my cluster (master : true , data : false). I'm seeing the node start and join the cluster as expected, but when the node is initializing I keep seeing the warning shown below in the logs. It references the path.repo setting which we haven't set on any of the other nodes. I don't see this error on the other nodes when I restart them so I'm just wondering what this is? Can this be ignored if we don't care about snapshots? We are running ES 2.4.1.

[2018-02-14 01:22:19,678][WARN ][repositories.fs          ] [es4] The specified location [/snapshots] should start with a repository path specified by the path.repo setting, but the path.repo setting was not set on this node
[2018-02-14 01:22:19,684][WARN ][repositories             ] [es4] failed to create repository [fs][test_backup]
org.elasticsearch.common.inject.CreationException: Guice creation errors:

1) Error injecting constructor, RepositoryException[[test_backup] location [/snapshots] doesn't match any of the locations specified by path.repo because this setting is empty]
  at org.elasticsearch.repositories.fs.FsRepository.<init>(Unknown Source)
  while locating org.elasticsearch.repositories.fs.FsRepository
  while locating org.elasticsearch.repositories.Repository

    1 error
            at org.elasticsearch.common.inject.internal.Errors.throwCreationExceptionIfErrorsExist(
            at org.elasticsearch.common.inject.InjectorBuilder.injectDynamically(
            at org.elasticsearch.common.inject.InjectorImpl.createChildInjector(
            at org.elasticsearch.common.inject.ModulesBuilder.createChildInjector(
        at org.elasticsearch.repositories.RepositoriesService.createRepositoryHolder(
        at org.elasticsearch.repositories.RepositoriesService.clusterChanged(
        at org.elasticsearch.cluster.service.InternalClusterService.runTasksForExecutor(
        at org.elasticsearch.cluster.service.InternalClusterService$
        at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(
        at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$
        at java.util.concurrent.ThreadPoolExecutor.runWorker(
        at java.util.concurrent.ThreadPoolExecutor$


Ok just an update, I restarted one of my other existing master/data nodes and I do see this warning. Ugh sorry, :slight_smile: guess I didn't notice this before. That said, I'm guessing I can ignore this since if I'm not concerned about snapshots?

(David Pilato) #3

Please format your code using </> icon as explained in this guide and not the citation button. It will make your post more readable.

Or use markdown style like:


Please edit your post.

You should better remove the settings you added in your elasticsearch.yml file IMO.


Thanks I reformatted the stack trace. I was reading here:

It shows the path.repo setting is empty by default. Since I'm not explicitly setting this value, I think that is why I'm seeing this warning then correct? I'm just wondering if that is ok or if this path.repo should have a default value. Sounds like you are suggesting to set this value? Overall, I don't think I noticed this warning before so it just has me a little more curious now. Thanks again!

(David Pilato) #5

path.repo should not be set if not used.
It does not have a default value AFAIK:


Thank you!!