Single-node clusters use non-trivial discovery config when they shouldn't #1644
Labels
:Benchmark Candidate Management
Anything affecting how Rally sets up Elasticsearch
bug
Something's wrong
good first issue
Small, contained changes that are good for newcomers
Rally version (get with
esrally --version
):esrally 2.7.1.dev0 (git revision: 4e1335ee07e16a4af0de1a0b543a86595ca37803)
(currentmaster
branch)Description of the problem including expected versus actual behavior:
When running a benchmark with Rally against a single node cluster, the Elasticsearch logs contain repeated warning messages like the following:
This indicates that the discovery configuration is not correct, see elastic/elasticsearch#85222 for full details.
Steps to reproduce:
esrally race --track=geonames --challenge=append-no-conflicts-index-only --distribution-version=8.5.3
This can be fixed by not rendering the following line in rally-teams when there is only one node:
https://github.com/elastic/rally-teams/blob/74f96e3fab247e0c31d253408e4affd696a50eff/cars/v1/vanilla/templates/config/elasticsearch.yml#L72
However, as we pass the node ips as a pre-rendered string in the provisioner we cannot use Jinja's
length
filter to determine the number of items (would return the string length instead):rally/esrally/mechanic/provisioner.py
Line 320 in 4c7141a
We could instead either provide the node ips as list or instead add an additional variable in the provisioner that contains the node count, which can then be used in the template in rally-teams. The latter is even backwards-compatible if we check for the existence of the template variable before evaluating it.
The text was updated successfully, but these errors were encountered: