提交 0ae6c42e 编写于 作者: J Jesse Glick 提交者: Oleg Nenashev

[JENKINS-35190] Do not even consult PingFailureAnalyzer if ping fails on the agent side. (#2377)

上级 3403a3e1
......@@ -88,7 +88,7 @@ public class ChannelPinger extends ComputerListener {
// set up ping from both directions, so that in case of a router dropping a connection,
// both sides can notice it and take compensation actions.
setUpPingForChannel(channel, pingInterval);
setUpPingForChannel(channel, pingInterval, true);
}
private static class SetUpRemotePing extends MasterToSlaveCallable<Void, IOException> {
......@@ -99,18 +99,20 @@ public class ChannelPinger extends ComputerListener {
}
public Void call() throws IOException {
setUpPingForChannel(Channel.current(), pingInterval);
setUpPingForChannel(Channel.current(), pingInterval, false);
return null;
}
}
private static void setUpPingForChannel(final Channel channel, int interval) {
private static void setUpPingForChannel(final Channel channel, int interval, final boolean analysis) {
LOGGER.log(FINE, "setting up ping on {0} at interval {1}m", new Object[] {channel.getName(), interval});
final AtomicBoolean isInClosed = new AtomicBoolean(false);
final PingThread t = new PingThread(channel, interval * 60 * 1000) {
@Override
protected void onDead(Throwable cause) {
try {
for (PingFailureAnalyzer pfa : PingFailureAnalyzer.all()) {
pfa.onPingFailure(channel,cause);
if (analysis) {
analyze(cause);
}
if (isInClosed.get()) {
LOGGER.log(FINE,"Ping failed after the channel "+channel.getName()+" is already partially closed.",cause);
......@@ -122,6 +124,14 @@ public class ChannelPinger extends ComputerListener {
LOGGER.log(SEVERE,"Failed to terminate the channel "+channel.getName(),e);
}
}
/** Keep in a separate method so we do not even try to do class loading on {@link PingFailureAnalyzer} from an agent JVM. */
private void analyze(Throwable cause) throws IOException {
for (PingFailureAnalyzer pfa : PingFailureAnalyzer.all()) {
pfa.onPingFailure(channel,cause);
}
}
@Deprecated
@Override
protected void onDead() {
onDead(null);
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册