From f0095fec2f976e11a8c3872077422dcbd4971a90 Mon Sep 17 00:00:00 2001 From: Jose Diaz-Gonzalez Date: Wed, 2 Mar 2022 01:18:41 -0500 Subject: [PATCH] fix: ensure we use the correct variable for WAIT A previous refactor ended up disabling waits completely, potentially causing app downtime during deploys. --- .../scheduler-docker-local/bin/scheduler-deploy-process | 2 +- .../bin/scheduler-deploy-process-container | 7 +++---- plugins/scheduler-docker-local/scheduler-deploy | 6 +++--- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/plugins/scheduler-docker-local/bin/scheduler-deploy-process b/plugins/scheduler-docker-local/bin/scheduler-deploy-process index bc14ee901..208b337ff 100755 --- a/plugins/scheduler-docker-local/bin/scheduler-deploy-process +++ b/plugins/scheduler-docker-local/bin/scheduler-deploy-process @@ -17,7 +17,7 @@ main() { dokku_log_verbose "Stopping $cid ($PROC_TYPE)" # Retire the containers to ensure they get removed - plugn trigger scheduler-register-retired "$APP" "$cid" "$WAIT" + plugn trigger scheduler-register-retired "$APP" "$cid" "$DOKKU_WAIT_TO_RETIRE" # Disable the container restart policy "$DOCKER_BIN" container update --restart=no "$cid" &>/dev/null || true diff --git a/plugins/scheduler-docker-local/bin/scheduler-deploy-process-container b/plugins/scheduler-docker-local/bin/scheduler-deploy-process-container index affd2fbf0..2804678c6 100755 --- a/plugins/scheduler-docker-local/bin/scheduler-deploy-process-container +++ b/plugins/scheduler-docker-local/bin/scheduler-deploy-process-container @@ -32,7 +32,6 @@ main() { local DOKKU_PORT="" if [[ "$PROC_TYPE" == "web" ]]; then ports=($(plugn trigger network-compute-ports "$APP" "$PROC_TYPE" "$DOKKU_HEROKUISH" "$CONTAINER_INDEX")) - local DOKKU_DOCKER_PORT_ARGS="" for p in "${ports[@]}"; do if [[ ! "$p" =~ .*udp.* ]]; then DOKKU_PORT=${DOKKU_PORT:="$p"} @@ -64,7 +63,7 @@ main() { declare desc="wrapper function to kill newly started app container" declare CID="$1" PROC_TYPE="$2" CONTAINER_INDEX="$3" - plugn trigger scheduler-register-retired "$APP" "$CID" "$WAIT" + plugn trigger scheduler-register-retired "$APP" "$CID" "$DOKKU_WAIT_TO_RETIRE" mkdir -p "${DOKKU_LIB_ROOT}/data/scheduler-docker-local/$APP" echo "${CID} ${PROC_TYPE}.${CONTAINER_INDEX}" >>"${DOKKU_LIB_ROOT}/data/scheduler-docker-local/$APP/failed-containers" "$DOCKER_BIN" container inspect "$CID" &>/dev/null && { @@ -86,8 +85,8 @@ main() { if [[ -f "$DOKKU_CONTAINER_ID_FILE" ]]; then # schedule old container for retirement - dokku_log_verbose "Scheduling old container shutdown in $WAIT seconds ($PROC_TYPE.$CONTAINER_INDEX)" - plugn trigger scheduler-register-retired "$APP" "$(cat "$DOKKU_CONTAINER_ID_FILE")" "$WAIT" + dokku_log_verbose "Scheduling old container shutdown in $DOKKU_WAIT_TO_RETIRE seconds ($PROC_TYPE.$CONTAINER_INDEX)" + plugn trigger scheduler-register-retired "$APP" "$(cat "$DOKKU_CONTAINER_ID_FILE")" "$DOKKU_WAIT_TO_RETIRE" fi # now using the new container diff --git a/plugins/scheduler-docker-local/scheduler-deploy b/plugins/scheduler-docker-local/scheduler-deploy index 4b38d48b7..b71f4c819 100755 --- a/plugins/scheduler-docker-local/scheduler-deploy +++ b/plugins/scheduler-docker-local/scheduler-deploy @@ -43,7 +43,7 @@ trigger-scheduler-docker-local-scheduler-deploy() { local DOKKU_WAIT_TO_RETIRE=${DOKKU_APP_DOKKU_WAIT_TO_RETIRE:="$DOKKU_GLOBAL_DOKKU_WAIT_TO_RETIRE"} fi - local WAIT="${DOKKU_WAIT_TO_RETIRE:-60}" + export DOKKU_WAIT_TO_RETIRE="${DOKKU_WAIT_TO_RETIRE:-60}" local TMP_FILE=$(mktemp "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX") trap "rm -rf '$TMP_FILE' >/dev/null" RETURN INT TERM @@ -78,11 +78,11 @@ trigger-scheduler-docker-local-scheduler-deploy() { # kill the old container if [[ -n "$oldids" ]]; then # Let the old container finish processing requests, before terminating it - dokku_log_info1 "Shutting down old containers in $WAIT seconds" + dokku_log_info1 "Shutting down old containers in $DOKKU_WAIT_TO_RETIRE seconds" ( exec >/dev/null 2>/dev/null /dev/null 2>&1; then continue