1
0
mirror of https://github.com/pgbackrest/pgbackrest.git synced 2025-01-10 04:19:14 +02:00
pgbackrest/doc/xml
David Steele f42d927d2d
Retry reads of pg_control until checksum is valid.
On certain file systems (e.g. ext4) pg_control may appear torn if there is a concurrent write while reading the file. To prevent an invalid read, retry until the checksum matches the control data.

Special handling is required for the pg-version-force feature since the offset of the checksum is not known. In this case, scan from the default position to the end of the data looking for a checksum match. This is a bit imprecise, but better than nothing, and the chance of a random collision in the control data seems very remote considering the ratio of data size (< 512 bytes) to checksum size (4 bytes).

This was discovered and a possible solution proposed for PostgreSQL in [1]. The proposed solution may work for backup, but pgBackRest needs to be able to read pg_control reliably outside of backup. So no matter what fix is adopted for PostgreSQL, pgBackRest need retries. Further adjustment may be required as the PostgreSQL fix evolves.

[1] https://www.postgresql.org/message-id/20221123014224.xisi44byq3cf5psi%40awork3.anarazel.de
2023-09-10 09:47:49 -04:00
..
auto v2.47: Performance Improvements and Bug Fixes 2023-07-24 09:12:30 +02:00
dtd Remove double spaces missed in 1bd5530a. 2023-05-03 09:37:59 +03:00
release Retry reads of pg_control until checksum is valid. 2023-09-10 09:47:49 -04:00
coding.xml Remove double spaces from comments and documentation. 2023-05-02 12:57:12 +03:00
contributing.xml Remove user-facing documentation references to --vm=none. 2023-05-23 10:58:51 +03:00
documentation.xml Remove double spaces missed in 1bd5530a. 2023-05-03 09:37:59 +03:00
faq.xml Remove double spaces missed in 1bd5530a. 2023-05-03 09:37:59 +03:00
index.xml Mention block-level backups in feature list. 2023-07-12 13:23:16 +03:00
metric.xml Remove double spaces from comments and documentation. 2023-05-02 12:57:12 +03:00
release.xml Split release notes into individual files. 2023-09-04 12:00:06 -04:00
user-guide-index.xml Simplify messaging around supported versions in the documentation. 2022-05-09 11:59:08 -04:00
user-guide.xml Multi-stanza check command. 2023-08-07 17:03:09 +01:00