mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-06-28 01:22:26 -04:00
Remove dangerous default executor from HandledTransportAction (#100162)
Today subclasses of `HandledTransportAction` can specify the executor on which they run, but the executor is optional and if omitted will use `DIRECT_EXECUTOR_SERVICE`, which means the action runs on a transport thread. This is a dangerous default behaviour because it makes it easy to add new transport actions which implicitly run on a network thread, which is very hard to pick up in reviews. This commit makes the executor explicit in all callers, and marks the dangerous methods for removal.
This commit is contained in:
parent
9f08c33cb0
commit
0a31ce64a9
182 changed files with 869 additions and 197 deletions
|
@ -17,6 +17,7 @@ import org.elasticsearch.action.support.ActionFilters;
|
|||
import org.elasticsearch.action.support.HandledTransportAction;
|
||||
import org.elasticsearch.action.update.UpdateResponse;
|
||||
import org.elasticsearch.common.inject.Inject;
|
||||
import org.elasticsearch.common.util.concurrent.EsExecutors;
|
||||
import org.elasticsearch.index.shard.ShardId;
|
||||
import org.elasticsearch.tasks.Task;
|
||||
import org.elasticsearch.transport.TransportService;
|
||||
|
@ -30,7 +31,7 @@ public class TransportNoopBulkAction extends HandledTransportAction<BulkRequest,
|
|||
|
||||
@Inject
|
||||
public TransportNoopBulkAction(TransportService transportService, ActionFilters actionFilters) {
|
||||
super(NoopBulkAction.NAME, transportService, actionFilters, BulkRequest::new);
|
||||
super(NoopBulkAction.NAME, transportService, actionFilters, BulkRequest::new, EsExecutors.DIRECT_EXECUTOR_SERVICE);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -16,6 +16,7 @@ import org.elasticsearch.action.support.ActionFilters;
|
|||
import org.elasticsearch.action.support.HandledTransportAction;
|
||||
import org.elasticsearch.common.inject.Inject;
|
||||
import org.elasticsearch.common.io.stream.Writeable;
|
||||
import org.elasticsearch.common.util.concurrent.EsExecutors;
|
||||
import org.elasticsearch.search.SearchHit;
|
||||
import org.elasticsearch.search.SearchHits;
|
||||
import org.elasticsearch.search.aggregations.InternalAggregations;
|
||||
|
@ -30,7 +31,13 @@ import java.util.Collections;
|
|||
public class TransportNoopSearchAction extends HandledTransportAction<SearchRequest, SearchResponse> {
|
||||
@Inject
|
||||
public TransportNoopSearchAction(TransportService transportService, ActionFilters actionFilters) {
|
||||
super(NoopSearchAction.NAME, transportService, actionFilters, (Writeable.Reader<SearchRequest>) SearchRequest::new);
|
||||
super(
|
||||
NoopSearchAction.NAME,
|
||||
transportService,
|
||||
actionFilters,
|
||||
(Writeable.Reader<SearchRequest>) SearchRequest::new,
|
||||
EsExecutors.DIRECT_EXECUTOR_SERVICE
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue