Skip to content

Commit 5558f4f

Browse files
authored
Merge pull request #966 from Vlatombe/concurrency-limits-desync
Limits: fix some cases where unregistration doesn't happen
2 parents 33d379a + 3864fab commit 5558f4f

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

src/main/java/org/csanchez/jenkins/plugins/kubernetes/KubernetesCloud.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -568,10 +568,6 @@ public Collection<NodeProvisioner.PlannedNode> provision(@NonNull final Cloud.Cl
568568
return Collections.emptyList();
569569
}
570570

571-
public void onTerminate(@NonNull KubernetesSlave slave) {
572-
KubernetesProvisioningLimits.get().unregister(slave.getKubernetesCloud(), slave.getTemplate(), slave.getNumExecutors());
573-
}
574-
575571
@Override
576572
public boolean canProvision(@NonNull Cloud.CloudState state) {
577573
return getTemplate(state.getLabel()) != null;

src/main/java/org/csanchez/jenkins/plugins/kubernetes/KubernetesProvisioningLimits.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
import hudson.ExtensionList;
77
import hudson.init.InitMilestone;
88
import hudson.init.Initializer;
9+
import hudson.model.Node;
910
import hudson.model.Queue;
1011
import jenkins.metrics.api.Metrics;
1112
import jenkins.model.Jenkins;
13+
import jenkins.model.NodeListener;
1214

1315
import javax.annotation.Nonnull;
1416
import java.util.Collections;
@@ -130,4 +132,15 @@ AtomicInteger getPodTemplateCount(String id) {
130132
return podTemplateCounts.computeIfAbsent(id, k -> new AtomicInteger());
131133
}
132134

135+
@Extension
136+
public static class NodeListenerImpl extends NodeListener {
137+
@Override
138+
protected void onDeleted(@Nonnull Node node) {
139+
if (node instanceof KubernetesSlave) {
140+
KubernetesSlave kubernetesNode = (KubernetesSlave) node;
141+
KubernetesProvisioningLimits.get().unregister(kubernetesNode.getKubernetesCloud(), kubernetesNode.getTemplate(), node.getNumExecutors());
142+
}
143+
}
144+
}
145+
133146
}

src/main/java/org/csanchez/jenkins/plugins/kubernetes/KubernetesSlave.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,6 @@ protected void _terminate(TaskListener listener) throws IOException, Interrupted
293293
LOGGER.log(Level.SEVERE, String.format("Unable to terminate agent %s. Cloud may have been removed. There may be leftover resources on the Kubernetes cluster.", name));
294294
return;
295295
}
296-
cloud.onTerminate(this);
297296

298297
KubernetesClient client;
299298
try {

0 commit comments

Comments
 (0)