opensearch-project/OpenSearch

[BUG] Configuring cluster.allocator.existing_shards_allocator.batch_enabled via /_cluster/settings returns a 400 error

Open

#14,744 opened on Jul 12, 2024

View on GitHub
 (8 comments) (1 reaction) (1 assignee)Java (1,505 forks)batch import
Cluster ManagerOtherbuggood first issue

Repository metrics

Stars
 (8,123 stars)
PR merge metrics
 (Avg merge 5d 9h) (266 merged PRs in 30d)

Description

Describe the bug

OpenSearch 2.14 introduced a new feature/setting: cluster.allocator.existing_shards_allocator.batch_enabled.

This setting is documented as being able be set dynamically:

https://opensearch.org/docs/latest/install-and-configure/configuring-opensearch/cluster-settings/#cluster-level-routing-and-allocation-settings

All settings in this list are dynamic:

However, when attempting to set using /_cluster/settings API endpoint, an error is returned:

{
    "error": {
        "root_cause": [
            {
                "type": "illegal_argument_exception",
                "reason": "persistent setting [cluster.allocator.existing_shards_allocator.batch_enabled], not dynamically updateable"
            }
        ],
        "type": "illegal_argument_exception",
        "reason": "persistent setting [cluster.allocator.existing_shards_allocator.batch_enabled], not dynamically updateable"
    },
    "status": 400
}

Payload used in PUT request:

{
    "persistent": {
        "cluster.allocator.existing_shards_allocator.batch_enabled": true
    }
}

Related component

Other

To Reproduce

  1. use OpenSearch 2.14 or 2.15
  2. Send a PUT request to /_cluster/settings
{
    "persistent": {
        "cluster.allocator.existing_shards_allocator.batch_enabled": true
    }
}

Expected behavior

Expectation is that if the documentation says this is a dynamic setting, it can be set dynamically. If this must be set via opensearch.yml (which does work), this should be communicated/documented.

Additional Details

Plugins Stock/out of box

Host/Environment (please complete the following information):

  • OS: Ubuntu Server 22.04 LTS
  • OpenSearch Version: 2.15.0

Additional context

First learned about this from the following WARN in opensearch's log:

Falling back to single shard assignment since batch mode disable or multiple custom allocators set

Contributor guide