Re: ABI Compliance Checker GSoC Project

2025-07-14 Thread Mankirat Singh
On Mon, 14 Jul 2025 at 00:32, Tom Lane wrote: > Another idea could be an in-tree file, different in each branch, > that records the hash of the commit we presently want to compare to. > This would require a small amount of additional manual effort to > maintain, but maybe it's the most flexible wa

Re: ABI Compliance Checker GSoC Project

2025-07-13 Thread Tom Lane
"David E. Wheeler" writes: > How bout we keep it a simple as possible to start with: make it either the > last tag in the branch or else the first commit in the branch (the branch > commit). Except for master, in which case perhaps since the last time a > branch was created? I do not think we

Re: ABI Compliance Checker GSoC Project

2025-07-13 Thread David E. Wheeler
On Jul 13, 2025, at 15:43, Tom Lane wrote: > I'm still liking the in-tree-file idea better. For one thing, > it's not clear how expensive it'd be to search the git metadata > for this other stuff. How bout we keep it a simple as possible to start with: make it either the last tag in the branch

Re: ABI Compliance Checker GSoC Project

2025-07-13 Thread Tom Lane
"David E. Wheeler" writes: > On Jul 13, 2025, at 15:02, Tom Lane wrote: >> Alternatively, does git have any kind of metadata that isn't >> a tag but acts sort of like one? > Notes? > https://git-scm.com/docs/git-notes Hmm, maybe. I recall discussion about starting to use notes to amend commi

Re: ABI Compliance Checker GSoC Project

2025-07-13 Thread David E. Wheeler
On Jul 13, 2025, at 15:02, Tom Lane wrote: > On reflection, assuming that this is being run by one or more > buildfarm animals, there are not likely to be so many commits > between runs that it'll be hard to assign blame after a breakage. > So I'm not convinced that we need to build the logic you

Re: ABI Compliance Checker GSoC Project

2025-07-13 Thread Tom Lane
Mankirat Singh writes: > Here, I had a proposal: In case an ABI break is found, then loop > through the commits after the last run to find the offending commit. > We can also give the animal owner the option to decide whether they > want to use their own machine to perform this search or not. Let

Re: ABI Compliance Checker GSoC Project

2025-07-13 Thread Mankirat Singh
On Mon, 14 Jul 2025 at 00:07, David E. Wheeler wrote: > Presumably you could work your way backwards until the ABI break disappears. > That should minimize the number of commits you have to compile and test. Makes sense. Thanks for the suggestion! Regards, Mankirat

Re: ABI Compliance Checker GSoC Project

2025-07-13 Thread David E. Wheeler
On Jul 13, 2025, at 14:34, Mankirat Singh wrote: > Here, I had a proposal: In case an ABI break is found, then loop > through the commits after the last run to find the offending commit. > We can also give the animal owner the option to decide whether they > want to use their own machine to perfo

Re: ABI Compliance Checker GSoC Project

2025-07-13 Thread Mankirat Singh
On Sun, 13 Jul 2025 at 05:42, Tom Lane wrote: > Nitpick: I think something is backwards about the labeling. AFAICS > the described ABI change was made by 53cd0b71e not its predecessor > 9dcc76414. It does look like a useful bit of information once > correctly attributed, though. Thanks for point

Re: ABI Compliance Checker GSoC Project

2025-07-12 Thread Tom Lane
"David E. Wheeler" writes: > For those who didn’t click through, that post has a screenshot of an > ABI diff report in the build farm server that I think is worth > seeing: Nitpick: I think something is backwards about the labeling. AFAICS the described ABI change was made by 53cd0b71e not its p

Re: ABI Compliance Checker GSoC Project

2025-07-12 Thread Mankirat Singh
Hello Hackers, I have been working on this project with David since last month. I've written some blogs about the progress, the most recent one is here [1] Here's the draft pull request for anyone interested in reviewing the code: [2] On Wed, 9 Jul 2025 at 17:57, Álvaro Herrera wrote: > Were you

Re: ABI Compliance Checker GSoC Project

2025-07-09 Thread David E. Wheeler
On Jul 9, 2025, at 11:33, Andres Freund wrote: > It'd be nice if we could get there, but it'd require annotating *all* > intentionally exported functions in the backend with PGDLLIMPORT (rather than > just doing that for variables). Then we could make some symbols > *intentionally* not exported,

Re: ABI Compliance Checker GSoC Project

2025-07-09 Thread Andres Freund
Hi, On 2025-06-05 19:05:28 +0200, Álvaro Herrera wrote: > On 2025-Jun-04, Mankirat Singh wrote: > > > Here's the workflow I tried to compile > > $ ./configure CFLAGS="-Og -g -fvisibility=hidden" > > --prefix=/home/mankirat/install/REL_17_4 > > $ make -j$(nproc) > > > > /usr/bin/ld: /home/

Re: ABI Compliance Checker GSoC Project

2025-07-09 Thread Álvaro Herrera
Hello Mankirat, Were you able to make any progress on this? Thanks, -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/ "Porque francamente, si para saber manejarse a uno mismo hubiera que rendir examen... ¿Quién es el machito que tendría carnet?" (Mafalda)

Re: ABI Compliance Checker GSoC Project

2025-06-05 Thread Álvaro Herrera
On 2025-Jun-04, Mankirat Singh wrote: > Here's the workflow I tried to compile > $ ./configure CFLAGS="-Og -g -fvisibility=hidden" > --prefix=/home/mankirat/install/REL_17_4 > $ make -j$(nproc) > > /usr/bin/ld: /home/mankirat/postgres/src/fe_utils/string_utils.c:1154: > undefined referenc

Re: ABI Compliance Checker GSoC Project

2025-06-04 Thread David E. Wheeler
On Jun 4, 2025, at 12:10, Andres Freund wrote: > No. It just makes the *name* of the struct visible. The type's definition is > in the .c file and therefore not visible outside of read_stream.c. Right, got it, thanks. David signature.asc Description: Message signed with OpenPGP

Re: ABI Compliance Checker GSoC Project

2025-06-04 Thread Andres Freund
Hi, On 2025-06-04 11:15:10 -0400, David E. Wheeler wrote: > On Jun 4, 2025, at 09:43, Álvaro Herrera wrote: > > > You mentioned ReadStream, but that's not exported. > > I this not an export at line 67? > > ``` > ❯ rg ReadStream src/include/storage/read_stream.h > > 50: * the ReadStreamBlockNu

Re: ABI Compliance Checker GSoC Project

2025-06-04 Thread Mankirat Singh
On Wed, 4 Jun 2025 at 19:13, Álvaro Herrera wrote: > > On Tue, 3 Jun 2025 at 23:50, David E. Wheeler wrote: > > > What’s the error? Maybe we can fix it. > > > > As per my knowledge Postgres internal code lacks visibility annotations on > > its symbols, which causes compilation errors when fvisibi

Re: ABI Compliance Checker GSoC Project

2025-06-04 Thread David E. Wheeler
On Jun 4, 2025, at 09:43, Álvaro Herrera wrote: > You mentioned ReadStream, but that's not exported. I this not an export at line 67? ``` ❯ rg ReadStream src/include/storage/read_stream.h 50: * the ReadStreamBlockNumberCB callback to abide by the restrictions of AIO 66:struct ReadStream; 67:ty

Re: ABI Compliance Checker GSoC Project

2025-06-04 Thread Álvaro Herrera
On 2025-Jun-04, Mankirat Singh wrote: > On Tue, 3 Jun 2025 at 23:50, David E. Wheeler wrote: > > >> Ummm, are you saying that it complains about changes to unexported > > >> symbols also? > > > > This is a good question. > No, it doesn’t complain about unexported symbols. You mentioned ReadStrea

Re: ABI Compliance Checker GSoC Project

2025-06-04 Thread Mankirat Singh
On Tue, 3 Jun 2025 at 23:50, David E. Wheeler wrote: > >> Ummm, are you saying that it complains about changes to unexported > >> symbols also? > > This is a good question. No, it doesn’t complain about unexported symbols. But it does complain about some exported symbols that, in my understanding,

Re: ABI Compliance Checker GSoC Project

2025-06-03 Thread David E. Wheeler
me > extent, along with the development of the ABI compliance checker. To which thing do you refer here? If I understand Álvaro correctly, it might be best to start out excluding no symbols at all, and leaving it to humans to decide whether there is an issue or not. > 'struct ResultR

Re: ABI Compliance Checker GSoC Project

2025-06-03 Thread Álvaro Herrera
On 2025-Jun-03, Mankirat Singh wrote: > On Tue, 3 Jun 2025 at 20:49, Álvaro Herrera wrote: > > Please elaborate. Can you not write a suppression file that says > > "ignore offset changes for ios_in_progress in ReadStream", for example? > > I can do that, and that's what's causing the problem.

Re: ABI Compliance Checker GSoC Project

2025-06-03 Thread Mankirat Singh
ong with the development of the ABI compliance checker. > and they must either add an > suppression to the Postgres source code somehow, or modify or revert the > commit so that the ABI change disappears. That's exactly what I aim for with this project, by just automatically run

Re: ABI Compliance Checker GSoC Project

2025-06-03 Thread Álvaro Herrera
On 2025-Jun-03, Mankirat Singh wrote: > 'struct ReadStream at read_stream.c:109:1' changed: > type size hasn't changed > 1 data member insertion: > 'int16 io_combine_limit', at offset 2 (in bytes) at read_stream.c:112:1 > there are data member changes: > 'int16 ios_in_progress' offse

Re: ABI Compliance Checker GSoC Project

2025-06-03 Thread Mankirat Singh
Thanks for the introduction :D On Tue, 3 Jun 2025 at 00:36, David E. Wheeler wrote: > Since the work naturally gets into what’s considered a public API and > what’s not, we feel that hackers is the best place to ask questions about > bits to include and exclude, as well as other questions relate

ABI Compliance Checker GSoC Project

2025-06-02 Thread David E. Wheeler
Hackers, I’d like to introduce Mankirat Singh, a Google Summer of Code student that Pavlo Golub and I are mentoring this year. He’s started work on his project, an ABI Compliance Checker. The plan is to work out the patterns, integrate it into the Build Farm, and get it sending regular reports

Re: abi-compliance-checker

2025-01-18 Thread David E. Wheeler
Greetings old thread. On Mar 4, 2024, at 07:50, Peter Eisentraut wrote: > Maybe the way forward here is to write a buildfarm module for this, and then > see from there what further needs there are. Given the PostgreSQL 17.1 kerfuffle and the addition of API and API guidance to the docs (discu

Re: abi-compliance-checker

2024-03-14 Thread Robert Haas
On Mon, Mar 4, 2024 at 7:50 AM Peter Eisentraut wrote: > Looking at this again, if we don't want the .xml files in the tree, then > we don't really need this patch series. Based on this, I've updated the status of this patch in the CommitFest application to Withdrawn. If that's not correct, pleas

Re: abi-compliance-checker

2024-03-04 Thread Peter Eisentraut
On 27.02.24 14:25, Alvaro Herrera wrote: I like this idea and I think we should integrate it with the objective of it becoming the workhorse of ABI-stability testing. However, I do not think that the subsequent patches should be part of the tree at all; certainly not the produced .xml files in y

Re: abi-compliance-checker

2024-02-27 Thread Alvaro Herrera
On 2024-Feb-27, Peter Geoghegan wrote: > I have a feeling that there are going to be real problems with > alerting, at least if it's introduced right away. I'd feel much better > about it if there was an existing body of suppressions, that more or > less worked as a reference of agreed upon best p

Re: abi-compliance-checker

2024-02-27 Thread Peter Geoghegan
On Tue, Feb 27, 2024 at 9:03 AM Alvaro Herrera wrote: > Now, maybe a buildfarm animal is not the right tool, and instead we need > a separate system that tests for it and emails pg-hackers when it breaks > or whatever. That's fine with me, but it seems a pretty minor > implementation detail. Anyt

Re: abi-compliance-checker

2024-02-27 Thread Alvaro Herrera
On 2024-Feb-27, Peter Geoghegan wrote: > On Tue, Feb 27, 2024 at 8:25 AM Alvaro Herrera > wrote: > > The way I see this working, is that we set up a buildfarm animal [per > > architecture] that runs the new rules produced by the abidw option and > > stores the result locally, so that for stable

Re: abi-compliance-checker

2024-02-27 Thread Peter Geoghegan
On Tue, Feb 27, 2024 at 8:25 AM Alvaro Herrera wrote: > The way I see this working, is that we set up a buildfarm animal [per > architecture] that runs the new rules produced by the abidw option and > stores the result locally, so that for stable branches it can turn red > when an ABI-breaking cha

Re: abi-compliance-checker

2024-02-27 Thread Alvaro Herrera
On 2023-Nov-01, Peter Eisentraut wrote: > v3-0001-abidw-option.patch > > This adds the abidw meson option, which produces the xml files with the ABI > description. With that, you can then implement a variety of workflows, such > as the abidiff proposed in the later patches, or something rigged u

Re: abi-compliance-checker

2024-01-09 Thread Peter Eisentraut
On 06.01.24 18:25, vignesh C wrote: One of the test has failed in cfbot at [1] with: abi-compliance-checker [12:04:10.537] The output from the failed tests: [12:04:10.537] [12:04:10.537] 129/282 postgresql:abidiff / plpgsql.abidiff FAIL 1.25s (exit status 4) [12:04:10.537] [12:04:10.537

Re: abi-compliance-checker

2024-01-06 Thread vignesh C
eate, etc., so I'm not hung up on this right now, > it's mostly a demonstration. > > v3-0004-abidiff-support-files.patch > > This contains the support files for patch 0003, just split out because > they are bulky and boring. One of the test has failed in cfbot at [1]

Re: abi-compliance-checker

2023-08-28 Thread Peter Eisentraut
On 10.06.23 22:24, Andres Freund wrote: Looks like we ought to add --exported-interfaces-only? Btw., this option requires libabigail 2.1, which isn't available everywhere yet. For example, Debian oldstable (used on Cirrus) doesn't have it yet. So I'll leave this patch set as is for now. If

Re: abi-compliance-checker

2023-06-12 Thread Tristan Partin
On Mon Jun 12, 2023 at 10:10 AM CDT, Tristan Partin wrote: > On Sat Jun 10, 2023 at 9:17 AM CDT, Peter Eisentraut wrote: > > I have rearranged this a bit. There are now two build options, called > > abidw and abidiff. The abidw option produces the xml file, that you > > would then at appropriat

Re: abi-compliance-checker

2023-06-12 Thread Tristan Partin
On Sat Jun 10, 2023 at 9:17 AM CDT, Peter Eisentraut wrote: > I have rearranged this a bit. There are now two build options, called > abidw and abidiff. The abidw option produces the xml file, that you > would then at appropriate times commit into the tree as the base. The > abidiff option en

Re: abi-compliance-checker

2023-06-10 Thread Tom Lane
Andres Freund writes: > Independently, I'm a bit confused as to why we export pgresStatus in > exports.txt - I don't see any reason for that. Looks like it might be leftover > from before fa0f24165c0? It looks like before fa0f24165, the *only* way to convert ExecStatusType to text was to access t

Re: abi-compliance-checker

2023-06-10 Thread Andres Freund
Hi, On 2023-06-10 12:48:46 -0700, Andres Freund wrote: > > + > > + > > + > > Hm - why is all of this stuff even ending up in the external ABI? It should > all be internal, unless I am missing something? > > I might be looking the wrong way, but to me it sure looks like none of that

Re: abi-compliance-checker

2023-06-10 Thread Andres Freund
Hi, On 2023-06-06 18:30:38 +0200, Peter Eisentraut wrote: > On 30.05.23 06:32, Peter Eisentraut wrote: > > I think the way to use this would be to compute the ABI for the .0 > > release (or rc1 or something like that) and commit it into the tree. And > > then compute the current ABI and compare th

Re: abi-compliance-checker

2023-06-06 Thread Tristan Partin
+abidiff = find_program('abidiff', native: false, required: false) +abidw = find_program('abidw', native: false, required: false) + +abidw_flags = [ + '--drop-undefined-syms', + '--no-architecture', + '--no-comp-dir-path', + '--no-elf-needed', + '--no-show-locs', + '--type-id-style', 'hash',

Re: abi-compliance-checker

2023-05-29 Thread Peter Eisentraut
On 27.05.23 02:52, Peter Geoghegan wrote: Attached is a html report that was generated by a tool called abi-compliance-checker/abi-dumper [1][2] (by using "abi-compliance-checker -l libTest ... ") . I have been using the libabigail library/set of tools (abidiff, abidw) for this.

Re: abi-compliance-checker

2023-05-29 Thread Peter Geoghegan
On Sun, May 28, 2023 at 9:34 AM Peter Geoghegan wrote: > I'll try to come up with a standard abi-compliance-checker Postgres > workflow once I'm back from pgCon. Ideally, we'd be able to produce reports that cover an entire stable release branch at once, including det

Re: abi-compliance-checker

2023-05-28 Thread Peter Geoghegan
ooked. Just eyeballing code (and perhaps double-checking struct layout using pahole) seems inadequate. I'll try to come up with a standard abi-compliance-checker Postgres workflow once I'm back from pgCon. It already looks like abi-compliance-checker is capable of taking most of the

Re: abi-compliance-checker

2023-05-28 Thread Tom Lane
I wrote: > (Which reminds me that I forgot to turn on the ad-hoc check for > that in gen_node_support.pl. I'll go do that, but it'd be better > to have a more general-purpose solution.) Oh, scratch that, it's not supposed to happen until we make the v16 branch. It'd still be better to not need i

Re: abi-compliance-checker

2023-05-28 Thread Tom Lane
Peter Geoghegan writes: > I tried comparing REL_11_0 to REL_11_20. Attached is the report for that. Nice! > I don't have time to study this in detail today, but the report seems > to have a plausible variety of issues. I noticed that it warns about > the breaking signature change to _bt_pagedel(

Re: abi-compliance-checker

2023-05-28 Thread Tom Lane
Peter Geoghegan writes: > Attached is a html report that was generated by a tool called > abi-compliance-checker/abi-dumper [1][2] (by using > "abi-compliance-checker -l libTest ... ") . I deliberately introduced > 2 ABI compatibility issues affecting postgres, just to see

abi-compliance-checker

2023-05-27 Thread Peter Geoghegan
Attached is a html report that was generated by a tool called abi-compliance-checker/abi-dumper [1][2] (by using "abi-compliance-checker -l libTest ... ") . I deliberately introduced 2 ABI compatibility issues affecting postgres, just to see what the tool had to say about it. The first