In pre-stop hook first send SIGTERM and then create thread dump This ensures we first trigger graceful shutdown of the Gerrit application before triggering a thread dump which might fail if available system resources are low. Ignore the return code of the involved commands to prevent that a failing jstack would skip running the tail command which would have the effect that kubernetes would forcefully shutdown the pod. Change-Id: I63da60cabed9b971cd936ceb6d99b73d93c4598e
diff --git a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/dependent/GerritStatefulSet.java b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/dependent/GerritStatefulSet.java index 9032f7b..4e5fe9b 100644 --- a/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/dependent/GerritStatefulSet.java +++ b/operator/src/main/java/com/google/gerrit/k8s/operator/gerrit/dependent/GerritStatefulSet.java
@@ -183,7 +183,7 @@ .withCommand( "/bin/ash", "-c", - "jstack $(pidof java) > /var/gerrit/logs/td_$(date +%Y-%m-%dT%H:%M); kill -2 $(pidof java) && tail --pid=$(pidof java) -f /dev/null") + "kill -s SIGTERM $(pidof java); jstack $(pidof java) > /var/gerrit/logs/td_$(date +%Y-%m-%dT%H:%M); tail --pid=$(pidof java) -f /dev/null") .endExec() .endPreStop() .endLifecycle()
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/statefulset_es_primary.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/statefulset_es_primary.yaml index aea01fa..b1b5da8 100644 --- a/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/statefulset_es_primary.yaml +++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/statefulset_es_primary.yaml
@@ -48,7 +48,7 @@ command: - /bin/ash - -c - - jstack $(pidof java) > /var/gerrit/logs/td_$(date +%Y-%m-%dT%H:%M); kill -2 $(pidof java) && tail --pid=$(pidof java) -f /dev/null + - kill -s SIGTERM $(pidof java); jstack $(pidof java) > /var/gerrit/logs/td_$(date +%Y-%m-%dT%H:%M); tail --pid=$(pidof java) -f /dev/null livenessProbe: httpGet: path: /config/server/healthcheck~status
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/statefulset_ha_primary.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/statefulset_ha_primary.yaml index e8c2e25..28b366b 100644 --- a/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/statefulset_ha_primary.yaml +++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/statefulset_ha_primary.yaml
@@ -48,7 +48,7 @@ command: - /bin/ash - -c - - jstack $(pidof java) > /var/gerrit/logs/td_$(date +%Y-%m-%dT%H:%M); kill -2 $(pidof java) && tail --pid=$(pidof java) -f /dev/null + - kill -s SIGTERM $(pidof java); jstack $(pidof java) > /var/gerrit/logs/td_$(date +%Y-%m-%dT%H:%M); tail --pid=$(pidof java) -f /dev/null livenessProbe: httpGet: path: /config/server/healthcheck~status
diff --git a/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/statefulset_single_primary.yaml b/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/statefulset_single_primary.yaml index 7e9674b..7086159 100644 --- a/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/statefulset_single_primary.yaml +++ b/operator/src/test/resources/com/google/gerrit/k8s/operator/gerrit/dependent/statefulset_single_primary.yaml
@@ -46,7 +46,7 @@ command: - /bin/ash - -c - - jstack $(pidof java) > /var/gerrit/logs/td_$(date +%Y-%m-%dT%H:%M); kill -2 $(pidof java) && tail --pid=$(pidof java) -f /dev/null + - kill -s SIGTERM $(pidof java); jstack $(pidof java) > /var/gerrit/logs/td_$(date +%Y-%m-%dT%H:%M); tail --pid=$(pidof java) -f /dev/null livenessProbe: httpGet: path: /config/server/healthcheck~status