Thread: pg_basebackup exit codes

pg_basebackup exit codes

From
John Donath
Date:

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?

 

Regards, John

 

Re: pg_basebackup exit codes

From
Magnus Hagander
Date:


On Mon, Aug 19, 2019 at 12:18 PM John Donath <John.Donath@detron.nl> 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.


--

RE: pg_basebackup exit codes

From
John Donath
Date:

Thanks a lot Magnus!

 

I should have known better … J

 

But thanks for the PIPESTATUS hint which comes in uttermost handy

 

Regards, John

 

Van: Magnus Hagander <magnus@hagander.net>
Verzonden: maandag 19 augustus 2019 13:46
Aan: John Donath <John.Donath@detron.nl>
CC: pgsql-general@lists.postgresql.org
Onderwerp: Re: pg_basebackup exit codes

 

 

 

On Mon, Aug 19, 2019 at 12:18 PM John Donath <John.Donath@detron.nl> 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.

 

 

--