You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix node discovery logic to properly handle dedicated cluster managers
Fixes dedicated cluster manager detection by implementing proper role constants
and upstream-compatible node filtering logic. Addresses the core issue where
nodes with only cluster management roles were incorrectly being included in
the connection pool for client requests.
Key changes:
- Add proper role constants matching OpenSearch server definitions
- Implement isDedicatedClusterManager with role-based logic matching Java client
- Add IncludeDedicatedClusterManagers configuration option
- Remove client-side role validation (handled server-side)
BEHAVIOR CHANGE: Dedicated cluster manager nodes are now excluded from
client request routing by default to match upstream Java client behavior.
Set IncludeDedicatedClusterManagers: true to preserve legacy behavior.
Fixes: opensearch-project#765
Signed-off-by: Sean Chittenden <sean.chittenden@crowdstrike.com>
- Refactor Client struct to use embedded mutex pattern for improved thread safety ([#775](https://github.com/opensearch-project/opensearch-go/pull/775))
11
12
- Refactor metrics struct to use atomic counters for lock-free request/failure tracking ([#776](https://github.com/opensearch-project/opensearch-go/pull/776))
13
+
-**BREAKING**: Enhanced node discovery to match OpenSearch server behavior ([#765](https://github.com/opensearch-project/opensearch-go/issues/765))
14
+
- Dedicated cluster manager nodes are now excluded from client request routing by default (best practice)
15
+
- Node selection logic now matches Java client `NodeSelector.SKIP_DEDICATED_CLUSTER_MASTERS` behavior
0 commit comments