From aa2d2be933fedf26b7119f201c140bf51ef807b5 Mon Sep 17 00:00:00 2001 From: yerkennz Date: Fri, 24 Apr 2026 12:15:05 +0500 Subject: [PATCH 1/2] fix[CPCAP-9043] chekcing versin pgsql --- .../docker/postgres/aws-s3-backup.sh | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/services/backup-daemon/docker/postgres/aws-s3-backup.sh b/services/backup-daemon/docker/postgres/aws-s3-backup.sh index ac69602f..67eeab79 100755 --- a/services/backup-daemon/docker/postgres/aws-s3-backup.sh +++ b/services/backup-daemon/docker/postgres/aws-s3-backup.sh @@ -143,54 +143,54 @@ function stream_backup_to_aws_s3() { function main() { - version="$(PGPASSWORD=$POSTGRES_PASSWORD psql -h "${POSTGRES_HOST}" -p "${POSTGRES_PORT}" -U "${POSTGRES_USER}" -d postgres -c "SHOW SERVER_VERSION;" -tA | egrep -o '[0-9]{1,}\.[0-9]{1,}')" + version="$(PGPASSWORD="${POSTGRES_PASSWORD}" psql -h "${POSTGRES_HOST}" -p "${POSTGRES_PORT}" -U "${POSTGRES_USER}" -d postgres -c "SHOW SERVER_VERSION;" -tA | egrep -o '^[0-9]+(\.[0-9]+)?' | head -n 1)" REPLICATION_USER="replicator" - log "version of pgsql server is: ${version}" + log_info "version of pgsql server is: ${version}" if python -c "import sys; sys.exit(0 if float("${version}") >= 18.0 else 1)"; then - log "Using pgsql 18 bins for pg_basebackup" + log_info "Using pgsql 18 bins for pg_basebackup" PG_BASEBACKUP="/usr/lib/postgresql/18/bin/pg_basebackup" BACKUP_NAME="pg_backup_$(basename ${BACKUP_ID}).tar.gz" elif python -c "import sys; sys.exit(0 if 17.0 <= float("${version}") < 18.0 else 1)"; then - log "Using pgsql 17 bins for pg_basebackup" + log_info "Using pgsql 17 bins for pg_basebackup" PG_BASEBACKUP="/usr/lib/postgresql/17/bin/pg_basebackup" BACKUP_NAME="pg_backup_$(basename ${BACKUP_ID}).tar.gz" elif python -c "import sys; sys.exit(0 if 16.0 <= float("${version}") < 17.0 else 1)"; then - log "Using pgsql 16 bins for pg_basebackup" + log_info "Using pgsql 16 bins for pg_basebackup" PG_BASEBACKUP="/usr/lib/postgresql/16/bin/pg_basebackup" BACKUP_NAME="pg_backup_$(basename ${BACKUP_ID}).tar.gz" elif python -c "import sys; sys.exit(0 if 15.0 <= float("${version}") < 16.0 else 1)"; then - log "Using pgsql 15 bins for pg_basebackup" + log_info "Using pgsql 15 bins for pg_basebackup" PG_BASEBACKUP="/usr/lib/postgresql/15/bin/pg_basebackup" BACKUP_NAME="pg_backup_$(basename ${BACKUP_ID}).tar.gz" elif python -c "import sys; sys.exit(0 if 14.0 <= float("${version}") < 15.0 else 1)"; then - log "Using pgsql 14 bins for pg_basebackup" + log_info "Using pgsql 14 bins for pg_basebackup" PG_BASEBACKUP="/usr/lib/postgresql/14/bin/pg_basebackup" BACKUP_NAME="pg_backup_$(basename ${BACKUP_ID}).tar.gz" elif python -c "import sys; sys.exit(0 if 13.0 <= float("${version}") < 14.0 else 1)"; then - log "Using pgsql 13 bins for pg_basebackup" + log_info "Using pgsql 13 bins for pg_basebackup" PG_BASEBACKUP="/usr/lib/postgresql/13/bin/pg_basebackup" BACKUP_NAME="pg_backup_$(basename ${BACKUP_ID}).tar.gz" elif python -c "import sys; sys.exit(0 if 12.0 <= float("${version}") < 13.0 else 1)"; then - log "Using pgsql 12 bins for pg_basebackup" + log_info "Using pgsql 12 bins for pg_basebackup" PG_BASEBACKUP="/usr/lib/postgresql/12/bin/pg_basebackup" BACKUP_NAME="pg_backup_$(basename ${BACKUP_ID}).tar.gz" elif python -c "import sys; sys.exit(0 if 11.0 <= float("${version}") < 12.0 else 1)"; then - log "Using pgsql 11 bins for pg_basebackup" + log_info "Using pgsql 11 bins for pg_basebackup" PG_BASEBACKUP="/usr/lib/postgresql/11/bin/pg_basebackup" BACKUP_NAME="pg_backup_$(basename ${BACKUP_ID}).tar.gz" elif python -c "import sys; sys.exit(0 if 10.0 <= float("${version}") < 11.0 else 1)"; then - log "Using pgsql 10 bins for pg_basebackup" + log_info "Using pgsql 10 bins for pg_basebackup" PG_BASEBACKUP="/usr/lib/postgresql/10/bin/pg_basebackup" BACKUP_NAME="pg_backup_$(basename ${BACKUP_ID}).tar.gz" else if [ "${PG_CLUSTER_NAME}" != "gpdb" ] then - log "Using pgsql 9.6 bins for pg_basebackup" + log_info "Using pgsql 9.6 bins for pg_basebackup" PG_BASEBACKUP="/usr/pgsql-9.6/bin/pg_basebackup" else - log "Using gpdb bins for greenplum pg_basebackup" + log_info "Using gpdb bins for greenplum pg_basebackup" TARGET_DB_ID="$(psql -h "${POSTGRES_HOST}" -p "${POSTGRES_PORT}" -U "${POSTGRES_USER}" -d postgres -c "select dbid from gp_segment_configuration where content = -1 and status = 'up' and role = 'p';" -tA )" PG_BASEBACKUP="/usr/local/greenplum-db/bin/pg_basebackup --target-gp-dbid="${TARGET_DB_ID}"" REPLICATION_USER=${POSTGRES_USER} From 7de0dbf7f415ded9bd31eeef4574d08a26c235b4 Mon Sep 17 00:00:00 2001 From: yerkennz Date: Fri, 24 Apr 2026 13:11:34 +0500 Subject: [PATCH 2/2] fix[CPCAP-9043] take only first value from server version --- services/backup-daemon/docker/postgres/postgres_backup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/backup-daemon/docker/postgres/postgres_backup.sh b/services/backup-daemon/docker/postgres/postgres_backup.sh index 0717f59a..9d692112 100755 --- a/services/backup-daemon/docker/postgres/postgres_backup.sh +++ b/services/backup-daemon/docker/postgres/postgres_backup.sh @@ -132,7 +132,7 @@ function remove_backup() { } function main() { - version="$(PGPASSWORD=$POSTGRES_PASSWORD psql -h "${POSTGRES_HOST}" -p "${POSTGRES_PORT}" -U "${POSTGRES_USER}" -d postgres -c "SHOW SERVER_VERSION;" -tA | egrep -o '[0-9]{1,}\.[0-9]{1,}' | awk 'END{print $1}')" + version="$(PGPASSWORD=$POSTGRES_PASSWORD psql -h "${POSTGRES_HOST}" -p "${POSTGRES_PORT}" -U "${POSTGRES_USER}" -d postgres -c "SHOW SERVER_VERSION;" -tA | egrep -o '[0-9]{1,}\.[0-9]{1,}' | awk 'NR==1 {print $1}')" REPLICATION_USER="replicator" log "version of pgsql server is: ${version}" if python -c "import sys; sys.exit(0 if float("${version}") >= 18.0 else 1)"; then