From: | Timur Magomedov <t(dot)magomedov(at)postgrespro(dot)ru> |
---|---|
To: | Peter Smith <smithpb2250(at)gmail(dot)com> |
Cc: | "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>, Tomas Vondra <tomas(at)vondra(dot)me>, "Aya Iwata (Fujitsu)" <iwata(dot)aya(at)fujitsu(dot)com>, Japin Li <japinli(at)hotmail(dot)com>, shveta malik <shveta(dot)malik(at)gmail(dot)com> |
Subject: | Re: [WIP]Vertical Clustered Index (columnar store extension) - take2 |
Date: | 2025-09-26 14:09:32 |
Message-ID: | b0183172fbe8fbf4260d10df50a57127753eba68.camel@postgrespro.ru |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hello Peter!
There is a code in vci_ros.c that initializes xl_heap_inplace xlrec.
Comment says this code was taken from src/backend/access/heap/heapam.c.
It was fine for Postgres 17 and earlier however struct xl_heap_inplace
has 6 fields, not one since commit 243e9b40f1b2. So nmsgs field of
xlrec has some random uninitialized value from stack. It goes to WAL
and in case of big nmsgs it can cause segfault during server startup.
Here are backtrace of a segfault while applying WAL on server startup
and a patch that initializes all necessary fields of xlrec to avoid bad
WAL records.
--
Regards,
Timur Magomedov
Attachment | Content-Type | Size |
---|---|---|
startup_segfault_backtrace.txt | text/plain | 1.5 KB |
0001-Initialize-in-place-update-struct.patch | text/x-patch | 843 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2025-09-26 14:11:55 | Re: [PATCH] GROUP BY ALL |
Previous Message | Álvaro Herrera | 2025-09-26 13:53:39 | Re: splitting src/bin/scripts/vacuumdb.c |