Re: BUG #19508: pg_buffercache_pages() crashes the backend with an incompatible caller-supplied record definition
От
Fujii Masao
Тема
Re: BUG #19508: pg_buffercache_pages() crashes the backend with an incompatible caller-supplied record definition
Дата
Msg-id
CAHGQGwGaC8RNeVP3A4_R1OcHJ-DrXgr2HH2UEYrt-Ueu516Gng@mail.gmail.com
Список
Дерево обсуждения
Re: BUG #19508: pg_buffercache_pages() crashes the backend with an incompatible caller-supplied record definition Ashutosh Sharma <ashu.coek88@gmail.com>
On Fri, Jun 5, 2026 at 12:49 AM PG Bug reporting form wrote: > > The following bug has been logged on the website: > > Bug reference: 19508 > Logged by: Nikita Kalinin > Email address: n.kalinin@postgrespro.ru > PostgreSQL version: 19beta1 > Operating system: Fedora 44 > Description: > > Hello, > > It appears that pg_buffercache_pages() trusts a caller-supplied record > descriptor without verifying that the declared column types match the actual > values returned by the function. > > The crash is reproducible on the current master branch with a fresh cluster > after installing the extension: Thanks for the report! I could reproduce this as well. > git blame points to the following commit: > > commit 257c8231bf97a77378f6fedb826b1243f0a41612 (HEAD) > Author: Heikki Linnakangas > Date: Tue Apr 7 16:04:48 2026 +0300 > > Modernize and optimize pg_buffercache_pages() Commit 257c8231bf9 changed pg_buffercache_pages() to materialize rows directly into a tuplestore. As a result, the function started using the caller-supplied RECORD descriptor as rsinfo->setDesc, so a mismatched column definition list could cause tuplestore_putvalues() to interpret returned Datums with incorrect types. Before that change, pg_buffercache_pages() exposed its actual tuple descriptor to the executor, allowing the executor's existing rowtype checks to reject incompatible definitions with a normal error. The attached patch restores that behavior while keeping the materialized-SRF implementation. Thoughts? Regards, -- Fujii Masao
В списке pgsql-bugs по дате отправления
От: PG Bug reporting form
Дата:
От: Ayush Tiwari
Дата: