| From: | Michael Paquier <michael(at)paquier(dot)xyz> |
|---|---|
| To: | pgsql-committers(at)lists(dot)postgresql(dot)org |
| Subject: | pgsql: Make GetSnapshotData() more resilient on out-of-memory errors |
| Date: | 2026-11-12 06:01:38 |
| Message-ID: | E1xRNsQ-00000000OyW-0xbZ@gemulon.postgresql.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-committers |
Make GetSnapshotData() more resilient on out-of-memory errors
If the allocation of Snapshot->subxip fails, a follow-up call of
GetSnapshotData() would see a partially-initialized snapshot, causing a
NULL dereference on reentry when using "subxip" because only "xip" would
be allocated. In the event of an out-of-memory error when allocating
"subxip", "xip" is now reset before throwing an ERROR, so as Snapshots
can be allocated and handled gracefully on retry.
Note: This has been originally applied in v19~ as of 29fb598b9cad, and
was initially not backpatched. This issue has been seen in the field on
older stable branches, hence the backpatch now.
Reported-by: Alexander Lakhin <exclusion(at)gmail(dot)com>
Author: Matthias van de Meent <boekewurm+postgres(at)gmail(dot)com>
Discussion: https://postgr.es/m/e77acaac-a1b3-40b3-99ee-5769b4e453e4@gmail.com
Discussion: https://postgr.es/m/CAJ7c6TO+7rrN5H_Odd8PLdmrEa4MgeoJ2AqnTydOcy=AyZvDsQ@mail.gmail.com
Backpatch-through: 15
Branch
------
REL_18_STABLE
Details
-------
https://git.postgresql.org/pg/commitdiff/94641eda4c6293fa43b44ff8c7433b510f4bcfa5
Modified Files
--------------
src/backend/storage/ipc/procarray.c | 8 ++++++++
1 file changed, 8 insertions(+)
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Michael Paquier | 2026-11-12 06:02:20 | Re: pgsql: Make GetSnapshotData() more resilient on out-of-memory errors |
| Previous Message | Amit Kapila | 2026-11-12 05:58:32 | pgsql: Fix crash decoding a change to a partition pending detach. |