Do we still need gen_node_support.pl's nodetag ABI stability check?
We're still a couple months away from cutting the REL_19_STABLE
branch, but I was contemplating that just now, and it occurred to me
to wonder whether we still need gen_node_support.pl's single-purpose
ABI check (cf commit eea9fa9b2) now that we have buildfarm animals
running general-purpose ABI stability checks.
On the one hand, there's much to be said for belt-and-suspenders-too
safety checks. On the other hand, updating gen_node_support.pl is
an extra manual step while creating a branch, so it's easy to forget
or get wrong. It's also not very clear why this particular sort
of ABI break in a stable branch is any worse than other hazards.
I'm not really set either way, but my first thought is to drop
the special mechanism.
regards, tom lane
I wrote:
We're still a couple months away from cutting the REL_19_STABLE
branch, but I was contemplating that just now, and it occurred to me
to wonder whether we still need gen_node_support.pl's single-purpose
ABI check (cf commit eea9fa9b2) now that we have buildfarm animals
running general-purpose ABI stability checks.
On the one hand, there's much to be said for belt-and-suspenders-too
safety checks. On the other hand, updating gen_node_support.pl is
an extra manual step while creating a branch, so it's easy to forget
or get wrong. It's also not very clear why this particular sort
of ABI break in a stable branch is any worse than other hazards.
I'm not really set either way, but my first thought is to drop
the special mechanism.
Hearing no objections, I went ahead and wrote a patch for that.
Doing that reminded me that it's a really incomplete check anyway,
as it only verifies that the last auto-assigned NodeTag number
hasn't changed. Re-ordering earlier entries, for example, would
not get detected. So even on its own terms it's little more than
a stopgap; the buildfarm's libabigail checks are far more thorough.
Barring objections, I'll push this soon.
regards, tom lane
Attachments:
v1-0001-Remove-gen_node_support.pl-s-ad-hoc-ABI-stability.patchtext/x-diff; charset=us-ascii; name*0=v1-0001-Remove-gen_node_support.pl-s-ad-hoc-ABI-stability.p; name*1=atchDownload+1-29
On 15 Apr 2026, at 20:13, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Barring objections, I'll push this soon.
+1, the new checks are far more comprehensive. Looks good from a readthrough
and grepping the codebase doesn't turn up any other mentions.
--
Daniel Gustafsson
On 14.04.26 07:04, Tom Lane wrote:
On the one hand, there's much to be said for belt-and-suspenders-too
safety checks. On the other hand, updating gen_node_support.pl is
an extra manual step while creating a branch, so it's easy to forget
or get wrong. It's also not very clear why this particular sort
of ABI break in a stable branch is any worse than other hazards.
This might still be helpful because it checks during local builds and
doesn't rely on the buildfarm.
On 15 Apr 2026, at 21:30, Peter Eisentraut <peter@eisentraut.org> wrote:
On 14.04.26 07:04, Tom Lane wrote:
On the one hand, there's much to be said for belt-and-suspenders-too
safety checks. On the other hand, updating gen_node_support.pl is
an extra manual step while creating a branch, so it's easy to forget
or get wrong. It's also not very clear why this particular sort
of ABI break in a stable branch is any worse than other hazards.This might still be helpful because it checks during local builds and doesn't rely on the buildfarm.
But does it actually give a good enough answer to be relied upon when passing
the local check can fail the buildfarm check?
--
Daniel Gustafsson
Daniel Gustafsson <daniel@yesql.se> writes:
On 15 Apr 2026, at 21:30, Peter Eisentraut <peter@eisentraut.org> wrote:
This might still be helpful because it checks during local builds and doesn't rely on the buildfarm.
But does it actually give a good enough answer to be relied upon when passing
the local check can fail the buildfarm check?
Yeah, my answer to that is still "why is this particular case more
important than any other ABI breakage you might cause while hacking
on a back branch?". I quite agree that being able to check for ABI
breakage locally can be useful. But what we ought to do is make it
easier for people to use libabigail for that without spinning up a
local buildfarm instance. Perhaps we could extract the buildfarm's
ABICompCheck.pm script into some standalone tool.
regards, tom lane
On 16 Apr 2026, at 03:46, Tom Lane <tgl@sss.pgh.pa.us> wrote:
Daniel Gustafsson <daniel@yesql.se> writes:
On 15 Apr 2026, at 21:30, Peter Eisentraut <peter@eisentraut.org> wrote:
This might still be helpful because it checks during local builds and doesn't rely on the buildfarm.
But does it actually give a good enough answer to be relied upon when passing
the local check can fail the buildfarm check?Yeah, my answer to that is still "why is this particular case more
important than any other ABI breakage you might cause while hacking
on a back branch?". I quite agree that being able to check for ABI
breakage locally can be useful.
Agreed.
But what we ought to do is make it
easier for people to use libabigail for that without spinning up a
local buildfarm instance. Perhaps we could extract the buildfarm's
ABICompCheck.pm script into some standalone tool.
While I have zero insights into how complicated that would be, off the cuff it
seems like the right approach.
--
Daniel Gustafsson