Re: tablecmds.c/MergeAttributes() cleanup

From: Ashutosh Bapat <ashutosh(dot)bapat(dot)oss(at)gmail(dot)com>
To: Alexander Lakhin <exclusion(at)gmail(dot)com>
Cc: Peter Eisentraut <peter(at)eisentraut(dot)org>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Subject: Re: tablecmds.c/MergeAttributes() cleanup
Date: 2024-01-30 06:22:43
Message-ID: CAExHW5uskiHd7A34XbA+0PbW3_modiLGUt-oiP5zBumS-eUb8g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Alexander,

On Sun, Jan 28, 2024 at 1:30 PM Alexander Lakhin <exclusion(at)gmail(dot)com> wrote:
>
> Hello Peter,
>
> 26.01.2024 16:42, Peter Eisentraut wrote:
> >
> > I have committed all this. These are great improvements.
> >
>
> Please look at the segmentation fault triggered by the following query since
> 4d969b2f8:
> CREATE TABLE t1(a text COMPRESSION pglz);
> CREATE TABLE t2(a text);
> CREATE TABLE t3() INHERITS(t1, t2);
> NOTICE: merging multiple inherited definitions of column "a"
> server closed the connection unexpectedly
> This probably means the server terminated abnormally
> before or while processing the request.
>
> Core was generated by `postgres: law regression [local] CREATE TABLE '.
> Program terminated with signal SIGSEGV, Segmentation fault.
>
> (gdb) bt
> #0 __strcmp_avx2 () at ../sysdeps/x86_64/multiarch/strcmp-avx2.S:116
> #1 0x00005606fbcc9d52 in MergeAttributes (columns=0x0, supers=supers(at)entry=0x5606fe293d30, relpersistence=112 'p',
> is_partition=false, supconstr=supconstr(at)entry=0x7fff4046d410, supnotnulls=supnotnulls(at)entry=0x7fff4046d418)
> at tablecmds.c:2811
> #2 0x00005606fbccd764 in DefineRelation (stmt=stmt(at)entry=0x5606fe26a130, relkind=relkind(at)entry=114 'r', ownerId=10,
> ownerId(at)entry=0, typaddress=typaddress(at)entry=0x0,
> queryString=queryString(at)entry=0x5606fe2695c0 "CREATE TABLE t3() INHERITS(t1, t2);") at tablecmds.c:885

This bug existed even before the refactoring.Happens because strcmp()
is called on NULL input (t2's compression is NULL). I already have a
fix for this and will be posting it in [1].

[1] https://www.postgresql.org/message-id/flat/24656cec-d6ef-4d15-8b5b-e8dfc9c833a7%40eisentraut.org

--
Best Wishes,
Ashutosh Bapat

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrey M. Borodin 2024-01-30 06:22:51 Re: Transaction timeout
Previous Message Ashutosh Bapat 2024-01-30 06:02:40 Re: Reducing memory consumed by RestrictInfo list translations in partitionwise join planning