Merge pull request #15212 from ywelsch/fix/rejectedexecution-on-shutdown
Ignore RejectedExecutionException in NodesFaultDetection
This commit is contained in:
commit
1905f495bf
|
@ -26,6 +26,7 @@ import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
import org.elasticsearch.common.io.stream.StreamOutput;
|
import org.elasticsearch.common.io.stream.StreamOutput;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.common.unit.TimeValue;
|
import org.elasticsearch.common.unit.TimeValue;
|
||||||
|
import org.elasticsearch.common.util.concurrent.EsRejectedExecutionException;
|
||||||
import org.elasticsearch.threadpool.ThreadPool;
|
import org.elasticsearch.threadpool.ThreadPool;
|
||||||
import org.elasticsearch.transport.*;
|
import org.elasticsearch.transport.*;
|
||||||
|
|
||||||
|
@ -41,7 +42,7 @@ import static org.elasticsearch.common.util.concurrent.ConcurrentCollections.new
|
||||||
public class NodesFaultDetection extends FaultDetection {
|
public class NodesFaultDetection extends FaultDetection {
|
||||||
|
|
||||||
public static final String PING_ACTION_NAME = "internal:discovery/zen/fd/ping";
|
public static final String PING_ACTION_NAME = "internal:discovery/zen/fd/ping";
|
||||||
|
|
||||||
public abstract static class Listener {
|
public abstract static class Listener {
|
||||||
|
|
||||||
public void onNodeFailure(DiscoveryNode node, String reason) {}
|
public void onNodeFailure(DiscoveryNode node, String reason) {}
|
||||||
|
@ -145,14 +146,18 @@ public class NodesFaultDetection extends FaultDetection {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void notifyNodeFailure(final DiscoveryNode node, final String reason) {
|
private void notifyNodeFailure(final DiscoveryNode node, final String reason) {
|
||||||
threadPool.generic().execute(new Runnable() {
|
try {
|
||||||
@Override
|
threadPool.generic().execute(new Runnable() {
|
||||||
public void run() {
|
@Override
|
||||||
for (Listener listener : listeners) {
|
public void run() {
|
||||||
listener.onNodeFailure(node, reason);
|
for (Listener listener : listeners) {
|
||||||
|
listener.onNodeFailure(node, reason);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
});
|
} catch (EsRejectedExecutionException ex) {
|
||||||
|
logger.trace("[node ] [{}] ignoring node failure (reason [{}]). Local node is shutting down", ex, node, reason);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void notifyPingReceived(final PingRequest pingRequest) {
|
private void notifyPingReceived(final PingRequest pingRequest) {
|
||||||
|
|
Loading…
Reference in New Issue