opensearch-java icon indicating copy to clipboard operation
opensearch-java copied to clipboard

[BUG] `OpenSearchNodesClient#info` fails if any `action.*` setting exists, but not `action.destructive_requires_name`

Open dennisoelkers opened this issue 11 months ago • 0 comments

What is the bug?

When OpenSearchClient#nodes#info is called, but any of the nodes in the cluster has any action.* setting (e.g. action.auto_create_index) set, but not action.destructive_requires_name, then the call will fail with:

Caused by: org.opensearch.client.util.MissingRequiredPropertyException: Missing required property 'NodeInfoAction.destructiveRequiresName'
	at org.opensearch.client.util.ApiTypeHelper.requireNonNull(ApiTypeHelper.java:89) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.opensearch.nodes.info.NodeInfoAction.<init>(NodeInfoAction.java:57) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.opensearch.nodes.info.NodeInfoAction.<init>(NodeInfoAction.java:50) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.opensearch.nodes.info.NodeInfoAction$Builder.build(NodeInfoAction.java:114) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.opensearch.nodes.info.NodeInfoAction$Builder.build(NodeInfoAction.java:94) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:92) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:55) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:81) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:185) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:146) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:87) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:91) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:55) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:81) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:185) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:146) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:87) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:91) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:55) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.JsonpDeserializerBase$StringMapDeserializer.deserialize(JsonpDeserializerBase.java:369) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.JsonpDeserializerBase$StringMapDeserializer.deserialize(JsonpDeserializerBase.java:355) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:87) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:81) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:185) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:146) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:87) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:91) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:55) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.transport.rest_client.RestClientTransport.decodeResponse(RestClientTransport.java:317) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.transport.rest_client.RestClientTransport.getHighLevelResponse(RestClientTransport.java:283) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.transport.rest_client.RestClientTransport.performRequest(RestClientTransport.java:143) ~[opensearch-java-2.9.1.jar:?]
	at org.opensearch.client.opensearch.nodes.OpenSearchNodesClient.info(OpenSearchNodesClient.java:145) ~[opensearch-java-2.9.1.jar:?]

How can one reproduce the bug?

Configure nodes to have action.auto_create_index set, but not action.destructive_requires_name. Call OpenSearchClient#nodes#info.

What is the expected behavior?

Returning successful.

What is your host/environment?

Operating system, version.

Do you have any screenshots?

If applicable, add screenshots to help explain your problem.

Do you have any additional context?

Add any other context about the problem.

dennisoelkers avatar Mar 14 '24 13:03 dennisoelkers