From 3968769b13ad8d8d7e19ff933cc6cd980c408fa5 Mon Sep 17 00:00:00 2001 From: shaoyue Date: Tue, 21 Dec 2021 16:29:28 +0800 Subject: [PATCH] Fix empty member removal log, improve comment (#28) --- .../3/debian-10/rootfs/opt/bitnami/scripts/etcd/prestop.sh | 5 ++++- .../etcd/3/debian-10/rootfs/opt/bitnami/scripts/libetcd.sh | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/bitnami/etcd/3/debian-10/rootfs/opt/bitnami/scripts/etcd/prestop.sh b/bitnami/etcd/3/debian-10/rootfs/opt/bitnami/scripts/etcd/prestop.sh index 83fe41e62fef..a774db27da2f 100755 --- a/bitnami/etcd/3/debian-10/rootfs/opt/bitnami/scripts/etcd/prestop.sh +++ b/bitnami/etcd/3/debian-10/rootfs/opt/bitnami/scripts/etcd/prestop.sh @@ -19,4 +19,7 @@ if is_empty_value "${endpoints}"; then fi read -r -a extra_flags <<< "$(etcdctl_auth_flags)" extra_flags+=("--endpoints=${endpoints}" "--debug=true") -etcdctl member remove "$(cat "${ETCD_DATA_DIR}/member_id")" "${extra_flags[@]}" > "$(dirname "$ETCD_DATA_DIR")/member_removal.log" +# We use 'stdbuf' to ensure memory buffers are flushed to disk +# so we reduce the chances that the "member_removal.log" file is empty. +# ref: https://www.gnu.org/software/coreutils/manual/html_node/stdbuf-invocation.html#stdbuf-invocation +stdbuf -oL etcdctl member remove "$(cat "${ETCD_DATA_DIR}/member_id")" "${extra_flags[@]}" > "$(dirname "$ETCD_DATA_DIR")/member_removal.log" diff --git a/bitnami/etcd/3/debian-10/rootfs/opt/bitnami/scripts/libetcd.sh b/bitnami/etcd/3/debian-10/rootfs/opt/bitnami/scripts/libetcd.sh index 0645b4089553..4fc3822c0ae4 100644 --- a/bitnami/etcd/3/debian-10/rootfs/opt/bitnami/scripts/libetcd.sh +++ b/bitnami/etcd/3/debian-10/rootfs/opt/bitnami/scripts/libetcd.sh @@ -312,7 +312,7 @@ etcd_store_member_id() { if retry_while "etcdctl ${extra_flags[*]} member list" >/dev/null 2>&1; then while [[ ! -s "${ETCD_DATA_DIR}/member_id" ]]; do # We use 'stdbuf' to ensure memory buffers are flushed to disk - # so we reduce the chances that the "member_id" file is not created. + # so we reduce the chances that the "member_id" file is empty. # ref: https://www.gnu.org/software/coreutils/manual/html_node/stdbuf-invocation.html#stdbuf-invocation read -r -a advertised_array <<< "$(tr ',;' ' ' <<< "$ETCD_ADVERTISE_CLIENT_URLS")" stdbuf -oL etcdctl "${extra_flags[@]}" member list | grep -w "${advertised_array[0]}" | awk -F "," '{ print $1}' > "${ETCD_DATA_DIR}/member_id" || true