From 2f9cd22396c8cf9f41e113cc08460ae3431c61cb Mon Sep 17 00:00:00 2001 From: Sergii Zagrunnyi Date: Thu, 28 Oct 2021 09:40:00 +0300 Subject: [PATCH] optimize pgpool healthcheck (#64) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * optimize pgpool helthcheck avoid to get "SHOW pool_nodes;" twice * Update 4/debian-10/rootfs/opt/bitnami/scripts/libpgpool.sh Co-authored-by: Miguel Ángel Cabrera Miñagorri Co-authored-by: Miguel Ángel Cabrera Miñagorri --- .../debian-10/rootfs/opt/bitnami/scripts/libpgpool.sh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/bitnami/pgpool/4/debian-10/rootfs/opt/bitnami/scripts/libpgpool.sh b/bitnami/pgpool/4/debian-10/rootfs/opt/bitnami/scripts/libpgpool.sh index fae42e861347..27af208725e0 100644 --- a/bitnami/pgpool/4/debian-10/rootfs/opt/bitnami/scripts/libpgpool.sh +++ b/bitnami/pgpool/4/debian-10/rootfs/opt/bitnami/scripts/libpgpool.sh @@ -275,11 +275,11 @@ pgpool_attach_node() { ######################### pgpool_healthcheck() { info "Checking pgpool health..." - if PGCONNECT_TIMEOUT=15 PGPASSWORD="${PGPOOL_POSTGRES_PASSWORD}" psql -U "${PGPOOL_POSTGRES_USERNAME}" -d postgres \ - -h "${PGPOOL_TMP_DIR}" -p "${PGPOOL_PORT_NUMBER}" -tA -c "SHOW pool_nodes;" >/dev/null; then - # look up backiends that are marked offline - for node in $(PGPASSWORD="${PGPOOL_POSTGRES_PASSWORD}" psql -U "${PGPOOL_POSTGRES_USERNAME}" -d postgres \ - -h "${PGPOOL_TMP_DIR}" -p "${PGPOOL_PORT_NUMBER}" -tA -c "SHOW pool_nodes;" | grep "down" | tr -d ' ' ); do + local backends=$(PGCONNECT_TIMEOUT=15 PGPASSWORD="${PGPOOL_POSTGRES_PASSWORD}" psql -U "${PGPOOL_POSTGRES_USERNAME}" \ + -d postgres -h "${PGPOOL_TMP_DIR}" -p "${PGPOOL_PORT_NUMBER}" -tA -c "SHOW pool_nodes;" | tr -d ' ') + if [[ "$backends" ]]; then + # look up backends that are marked offline + for node in $(echo "${backends}" | grep "down"); do node_id=$(echo "${node}" | cut -d'|' -f1) node_host=$(echo "${node}" | cut -d'|' -f2) if [[ $(PGCONNECT_TIMEOUT=3 PGPASSWORD="${PGPOOL_POSTGRES_PASSWORD}" psql -U "${PGPOOL_POSTGRES_USERNAME}" \