Skip to content

Commit e067f65

Browse files
authored
fix: leader election stop deadlock (#1618)
1 parent da8d456 commit e067f65

File tree

2 files changed

+7
-3
lines changed
  • operator-framework-core/src/main/java/io/javaoperatorsdk/operator
  • sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample

2 files changed

+7
-3
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/Operator.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,11 @@ public Operator(KubernetesClient kubernetesClient, ConfigurationService configur
6767

6868
/** Adds a shutdown hook that automatically calls {@link #stop()} when the app shuts down. */
6969
public void installShutdownHook() {
70-
Runtime.getRuntime().addShutdownHook(new Thread(this::stop));
70+
if (!leaderElectionManager.isLeaderElectionEnabled()) {
71+
Runtime.getRuntime().addShutdownHook(new Thread(this::stop));
72+
} else {
73+
log.warn("Leader election is on, shutdown hook will not be installed.");
74+
}
7175
}
7276

7377
public KubernetesClient getKubernetesClient() {
@@ -112,7 +116,6 @@ public void stop() throws OperatorException {
112116
final var configurationService = ConfigurationServiceProvider.instance();
113117
log.info(
114118
"Operator SDK {} is shutting down...", configurationService.getVersion().getSdkVersion());
115-
116119
controllerManager.stop();
117120
ExecutorServiceManager.stop();
118121
leaderElectionManager.stop();

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageOperator.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@
99
import org.takes.http.Exit;
1010
import org.takes.http.FtBasic;
1111

12-
import io.fabric8.kubernetes.client.*;
12+
import io.fabric8.kubernetes.client.KubernetesClient;
13+
import io.fabric8.kubernetes.client.KubernetesClientBuilder;
1314
import io.javaoperatorsdk.operator.Operator;
1415

1516
public class WebPageOperator {

0 commit comments

Comments
 (0)