Re: Potential ABI breakage in upcoming minor releases - Mailing list pgsql-hackers

From Christoph Berg
Subject Re: Potential ABI breakage in upcoming minor releases
Date
Msg-id ZzYlXpvj0Ei1s4h1@msg.df7cb.de
Whole thread Raw
In response to Re: Potential ABI breakage in upcoming minor releases  (Noah Misch <noah@leadboat.com>)
Responses Re: Potential ABI breakage in upcoming minor releases
List 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



pgsql-hackers by date:

Previous
From: Dmitry Koval
Date:
Subject: Re: gamma() and lgamma() functions
Next
From: Alvaro Herrera
Date:
Subject: Re: Potential ABI breakage in upcoming minor releases