On Mon, Aug 19, 2019 at 12:18 PM John Donath <John.Donath@xxxxxxxxx> wrote:
Hi,
I was unpleasantly surprised to see that pg_basebackup will return a zero (Success) exit code even when it has actually failed like below:
pg_basebackup: could not write to compressed file "/var/lib/pgsql/10/inst1/backup/cust-pg02_inst1_Fri_20190816/base.tar.gz": No space left on device
pg_basebackup: removing data directory "/var/lib/pgsql/10/inst1/backup/cust-pg02_inst1_Fri_20190816"
A reliable exit code is of great importance in backup scripts using a statement like below:
pg_basebackup -D ${backup_dest} -Ft -z 2>&1 | tee -a ${log_file}; rv=$?
[ $rv -eq 0 ] || error "pg_basebackup failed with rcode $rv; also see ${log_file}"
Pg_basebackup version: (PostgreSQL) 10.10
Anybody else encountering this problem?
I think your problem is that you are looking at the exit code from "tee" and not from pg_basebackup. If you are using bash, you can look at something like $PIPESTATUS to get the exit code from the actual comman dbefore the pipe. Or you can try removing the tee command to verify if this is indeed where the problem is coming from.