Re: Potential ABI breakage in upcoming minor releases

From: Christoph Berg <myon(at)debian(dot)org>
To: Noah Misch <noah(at)leadboat(dot)com>
Cc: Pavan Deolasee <pavan(dot)deolasee(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Subject: Re: Potential ABI breakage in upcoming minor releases
Date: 2024-11-14 16:29:18
Message-ID: ZzYlXpvj0Ei1s4h1@msg.df7cb.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Re: Noah Misch
> Based on a grep of PGXN code, here are some or all of the modules that react
> to sizeof(ResultRelInfo):
>
> $ grepx -r 'lloc.*ResultRelInfo' | tee /tmp/1 | sed 's/-[^:]*/:/'|sort -u
> apacheage:: resultRelInfo = palloc(sizeof(ResultRelInfo));

Confirmed, crashing: AGE for 14..17 (12..13 seem fine)

> citus:: resultRelInfo = makeNode(ResultRelInfo);
> citus:: ResultRelInfo *resultRelInfo = makeNode(ResultRelInfo);
> pg_bulkload:: checker->resultRelInfo = makeNode(ResultRelInfo);
> pg_bulkload:: self->relinfo = makeNode(ResultRelInfo);
> pg_pathman:: child_result_rel_info = makeNode(ResultRelInfo);
> pg_pathman:: parent_result_rel = makeNode(ResultRelInfo);
> pg_pathman:: parent_rri = makeNode(ResultRelInfo);
> pg_pathman:: part_result_rel_info = makeNode(ResultRelInfo);
> vops:: resultRelInfo = makeNode(ResultRelInfo);

(These are not on apt.pg.o)

I've also tested other packages where ResultRelInfo appears in the
source, but they all passed the tests (most have decent test but a few
have not):

Bad:
postgresql-16-age
timescaledb

Good:
hypopg
libpg-query
pglast
pglogical
pgpool2
pgsql-ogr-fdw
pg-squeeze
postgresql-mysql-fdw (impossible to test sanely because mysql/mariadb
take turns at being the default, and in some environments just don't
start)

> I don't know whether we should make a new release, amend the release
> announcement to call for extension rebuilds, or just stop here.
> https://wiki.postgresql.org/wiki/Committing_checklist#Maintaining_ABI_compatibility_while_backpatching
> mentions the problem, but neither it nor the new standard at
> postgr.es/c/e54a42a say how reticent we'll be to add to the end of a struct on
> which extensions do sizeof.

I'd say the ship has sailed, a new release would now break things the
other way round.

Christoph

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alvaro Herrera 2024-11-14 16:29:34 Re: Potential ABI breakage in upcoming minor releases
Previous Message Dmitry Koval 2024-11-14 16:28:27 Re: gamma() and lgamma() functions