Skip to content

Commit

Permalink
Fix check_archive_ready for version 10 and above
Browse files Browse the repository at this point in the history
The archive_ready check uses the wal_files check with dedicated options -
however, since wal_files was fixed for version 10 in 8e6b3c2 it called
pg_ls_waldir() even for the archive_ready check which is not
appropriate as this only lists files in pg_wal and not in
pg_wal/archive_status.

This change makes the wal_files check call pg_ls_archive_statusdir()
instead if $extrabit (i.e. .ready) is set, fixing issue bucardo#150.
  • Loading branch information
mbanck-ntap committed Oct 4, 2023
1 parent 89249c3 commit 6d69b98
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions check_postgres.pl
Original file line number Diff line number Diff line change
Expand Up @@ -9423,8 +9423,17 @@ sub check_wal_files {

## Figure out where the pg_xlog directory is
$SQL = qq{SELECT count(*) AS count FROM $lsfunc($lsargs) WHERE $lsfunc ~ E'^[0-9A-F]{24}$extrabit\$'}; ## no critic (RequireInterpolationOfMetachars)
my $SQL10 = $opt{lsfunc} ? $SQL :
qq{SELECT count(*) AS count FROM pg_ls_waldir() WHERE name ~ E'^[0-9A-F]{24}$extrabit\$'}; ## no critic (RequireInterpolationOfMetachars)
my $SQL10 = "";

if ($extrabit) {
# check_archive_ready
$SQL10 = $opt{lsfunc} ? $SQL :
qq{SELECT count(*) AS count FROM pg_ls_archive_statusdir() WHERE name ~ E'^[0-9A-F]{24}$extrabit\$'}; ## no critic (RequireInterpolationOfMetachars)
} else {
# check_wal_files
$SQL10 = $opt{lsfunc} ? $SQL :
qq{SELECT count(*) AS count FROM pg_ls_waldir() WHERE name ~ E'^[0-9A-F]{24}\$'}; ## no critic (RequireInterpolationOfMetachars)
}

my $info = run_command($SQL, {regex => qr[\d], version => [">9.6 $SQL10"] });

Expand Down

0 comments on commit 6d69b98

Please sign in to comment.