]> granicus.if.org Git - postgresql/commit
Fix various checksum check problems for pg_verify_checksums and base backups
authorMichael Paquier <michael@paquier.xyz>
Fri, 30 Nov 2018 01:34:45 +0000 (10:34 +0900)
committerMichael Paquier <michael@paquier.xyz>
Fri, 30 Nov 2018 01:34:45 +0000 (10:34 +0900)
commit5c995139752f5d57c560a0708286b99f9ca2bddd
tree7ee387a67ad47f88a07a9ebf49280a010442068e
parenta1c91dd1108c2e6536935619341c79c238734f77
Fix various checksum check problems for pg_verify_checksums and base backups

Three issues are fixed in this patch:
- Base backups forgot to ignore files specific to EXEC_BACKEND, leading
to spurious warnings when checksums are enabled, per analysis from me.
- pg_verify_checksums forgot about files specific to EXEC_BACKEND,
leading to failures of the tool on any such build, particularly Windows.
This error was originally found by newly-introduced TAP tests in various
buildfarm members using EXEC_BACKEND.
- pg_verify_checksums forgot to count for temporary files and temporary
paths, which could be valid relation files, without checksums, per
report from Andres Freund.  More tests are added to cover this case.

A new test case which emulates corruption for a file in a different
tablespace is added, coming from from Michael Banck, while I have coded
the main code and refactored the test code.

Author: Michael Banck, Michael Paquier
Reviewed-by: Stephen Frost, David Steele
Discussion: https://postgr.es/m/20181021134206.GA14282@paquier.xyz
src/backend/replication/basebackup.c
src/bin/pg_verify_checksums/pg_verify_checksums.c
src/bin/pg_verify_checksums/t/002_actions.pl