]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Acquire ControlFileLock in relevant SQL functions.
authorThomas Munro <tmunro@postgresql.org>
Sun, 15 Oct 2023 21:43:47 +0000 (10:43 +1300)
committerThomas Munro <tmunro@postgresql.org>
Sun, 15 Oct 2023 21:52:40 +0000 (10:52 +1300)
commitf1634c968101ebe48e5b7b8b274a9170669384ce
tree018339a98a91156c3c14ae621a9c9e33b61a756b
parent2759924f33a6b7021f68dda05bb34b10bb4579e2
Acquire ControlFileLock in relevant SQL functions.

Commit dc7d70ea added functions that read the control file, but didn't
acquire ControlFileLock.  With unlucky timing, file systems that have
weak interlocking like ext4 and ntfs could expose partially overwritten
contents, and the checksum would fail.

Back-patch to all supported releases.

Reviewed-by: David Steele <david@pgmasters.net>
Reviewed-by: Anton A. Melnikov <aamelnikov@inbox.ru>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Discussion: https://postgr.es/m/20221123014224.xisi44byq3cf5psi%40awork3.anarazel.de
src/backend/utils/misc/pg_controldata.c