Closed
Description
Three interrelated issues here:
-
TransportBroadcastByNodeAction
derivatives are typically executed viaNodeClient
which bypasses theTransportService
and therefore does not respect (or even know about) theexecutor
parameter which would fork. This means that the coordination work, including grouping all the shards by node, happens on the calling thread. When executed from the REST layer, that's a transport worker. This isNodeClient
executes transport actions without forking #97916, but until that's fixed we need a workaround. -
The node-level responses are deserialised and processed on the receiving transport worker too.
-
Several of these actions use
SAME
for their executor, bypassing the forking that does exist today.
Relates #77466