pgsql: Do not reuse rd_smgr in fork loop when enabling data checksums - Mailing list pgsql-committers

From Daniel Gustafsson
Subject pgsql: Do not reuse rd_smgr in fork loop when enabling data checksums
Date
Msg-id E1wrCGd-000000009Rm-1wIg@gemulon.postgresql.org
Whole thread
List pgsql-committers
Do not reuse rd_smgr in fork loop when enabling data checksums

ProcessSingleRelationByOid called RelationGetSmgr(rel), discarded the
result, and then read rel->rd_smgr directly when looping over forks.
Only RelationGetSmgr is authorized to read that field since a relcache
invalidation resets rd_smgr to NULL.

Backpatch to v19 where online checksums were introduced.

Author: Mihail Nikalayeu <mihailnikalayeu@gmail.com>
Reviewed-by: ChangAo Chen <cca5507@qq.com>
Reviewed-by: Fujii Masao <masao.fujii@gmail.com>
Discussion: https://postgr.es/m/CADzfLwXGvb4Y-mqy8T+O0f_tkXR1sTDBGzP5Z=V_qcGnZ46rWg@mail.gmail.com
Backpatch-through: 19

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/ab918a4fab0a6a8855b230d140bbf89fb090ad3e

Modified Files
--------------
src/backend/postmaster/datachecksum_state.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)


Attachment

pgsql-committers by date:

Previous
From: Álvaro Herrera
Date:
Subject: pgsql: pg_surgery: Fix infinite loop on large TID arrays
Next
From: Peter Eisentraut
Date:
Subject: pgsql: psql: Message style fixes