From: | Noah Misch <noah(at)leadboat(dot)com> |
---|---|
To: | Christoph Berg <myon(at)debian(dot)org> |
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 19:17:01 |
Message-ID: | 20241114191701.f3.nmisch@google.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Thu, Nov 14, 2024 at 10:26:58AM -0800, Noah Misch wrote:
> On Thu, Nov 14, 2024 at 05:29:18PM +0100, Christoph Berg wrote:
> > 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)
>
> Can you share more about the crash, perhaps the following?
>
> - stack trace
> - any server messages just before the crash
> - which architecture (32-bit x86, 64-bit ARM, etc.)
> - asserts enabled, or not?
>
> It's not immediately to clear to me why this would crash in a non-asserts
> build. palloc issues a 512-byte chunk for sizeof(ResultRelInfo)==368 on v16,
> so I expect no actual writing past the end of the chunk. I don't see
> apacheage allocating a ResultRelInfo other than via one palloc per
> ResultRelInfo (no arrays of them, no stack-allocated ResultRelInfo). I'll
> also work on installing apacheage to get those answers locally.
On x86_64, I ran these with and without asserts:
install PostgreSQL 16.4
install https://github.com/apache/age/tree/master
make -C age installcheck
install PostgreSQL 16.5
make -C age installcheck
The non-asserts build passed. The asserts build failed with "+WARNING:
problem in alloc set ExecutorState: detected write past chunk" throughout the
diffs, but there were no crashes. (Note that AGE "make installcheck" creates
a temporary installation, unlike PostgreSQL "make installcheck".) What might
differ in how you tested?
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2024-11-14 19:30:33 | Re: Potential ABI breakage in upcoming minor releases |
Previous Message | Noah Misch | 2024-11-14 18:26:58 | Re: Potential ABI breakage in upcoming minor releases |