elastic/elasticsearch

Some cluster settings don't take effect if set from elasticsearch.yml, but work fine if set via API

Open

#40.803 geöffnet am 3. Apr. 2019

Auf GitHub ansehen
 (14 Kommentare) (18 Reaktionen) (0 zugewiesene Personen)Java (25.882 Forks)batch import
:Core/Infra/Settings>bugTeam:Core/Infrahelp wantedteam-discusstriaged

Repository-Metriken

Stars
 (76.700 Stars)
PR-Merge-Metriken
 (Durchschn. Merge 2T) (1.000 gemergte PRs in 30 T)

Beschreibung

Some cluster-level settings don't take effect unless they're set via the Cluster Settings API, and values specified in elasticsearch.yml are ignored. They'll show up in GET _cluster/settings?include_defaults=true but will be otherwise ignored.

This is caused by reading settings only from the cluster state - in order to be initialized in elasticsearch.yml, a variable needs to be set in memory and initialized from a different Settings object during startup and updated in a cluster state listener rather than being read directly from the cluster state.

So far, I've found these settings which don't respect values set in elasticsearch.yml: cluster.blocks.read_only cluster.max_shards_per_node fixed in https://github.com/elastic/elasticsearch/pull/57234.

/cc @joegallo who pointed this out

Contributor Guide