Skip to content

TransportService should honor handler executor on failure #107439

Open

Description

There are instances where the TransportService may invoke onFailure using a thread other than the one specified in the handler executor.

at org.elasticsearch.action.ActionListenerImplementations.safeAcceptException(ActionListenerImplementations.java:62)
at org.elasticsearch.action.ActionListener$1.onFailure(ActionListener.java:140)
at org.elasticsearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandler.java:53)
at org.elasticsearch.transport.TransportService.handleSendRequestException(TransportService.java:859)
at org.elasticsearch.transport.TransportService.getConnectionOrFail(TransportService.java:781)
at org.elasticsearch.transport.TransportService.sendRequest(TransportService.java:757)
at org.elasticsearch.transport.TransportService.sendRequest(TransportService.java:747)

This also happens with RemoteAwareClient:

at org.elasticsearch.action.ActionListenerImplementations.safeAcceptException(ActionListenerImplementations.java:62)
at org.elasticsearch.action.ActionListenerImplementations.safeOnFailure(ActionListenerImplementations.java:73)
at org.elasticsearch.action.DelegatingActionListener.onFailure(DelegatingActionListener.java:31)
at org.elasticsearch.action.ActionListenerImplementations$ResponseWrappingActionListener.onResponse(ActionListenerImplementations.java:247)
at org.elasticsearch.transport.RemoteClusterAwareClient.maybeEnsureConnected(RemoteClusterAwareClient.java:71)
at org.elasticsearch.transport.RemoteClusterAwareClient.execute(RemoteClusterAwareClient.java:41)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions