Re: CREATE INDEX CONCURRENTLY does not index prepared xact's data

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Sandeep Thakkar <sandeep.thakkar@enterprisedb.com>
Cc: Noah Misch <noah@leadboat.com>, Andrey Borodin <x4mmm@yandex-team.ru>, CM Team <cm@enterprisedb.com>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>, Michael Paquier <michael@paquier.xyz>, Tom Lane <tgl@sss.pgh.pa.us>, Peter Geoghegan <pg@bowt.ie>, Semab Tariq <semab.tariq@enterprisedb.com>
Date: 2021-10-31T19:18:01Z
Lists: pgsql-bugs
Hi,

On 2021-10-31 13:01:00 +0530, Sandeep Thakkar wrote:
> > #1  0x40000000003fdc00:0 in equalTupleDescs (tupdesc1=0x60000000001f65e0,
> >
> >     tupdesc2=0x60000000001fba08)

Could you print out *tupdesc1, *tupdesc2? And best also
p tupdesc1->attrs[0]
p tupdesc1->attrs[1]
p tupdesc1->attrs[2]
p tupdesc2->attrs[0]
p tupdesc2->attrs[1]
p tupdesc2->attrs[2]


> > #2  0x40000000017f9660:0 in RelationClearRelation (
> >
> >     relation=0x60000000001f3730, rebuild=true)

Hm, too bad that we don't have working line numbers for some reason?


> > #3  0x40000000017fa730:0 in RelationFlushRelation
> > (relation=0x60000000001f3730)
> >
> > #4  0x40000000017fabb0:0 in RelationCacheInvalidateEntry
> > (relationId=27272)
> >
> > #5  0x40000000017c8f20:0 in LocalExecuteInvalidationMessage (
> >
> >     msg=0x60000000001a46b8)
> >
> > #6  0x40000000017c84e0:0 in ProcessInvalidationMessages (
> >
> >     group=0x60000000001a43e4, func=0x87ffffffef7b7250)
> >
> > #7  0x40000000017cb420:0 in CommandEndInvalidationMessages ()
> >
> > #8  0x40000000006b1c50:0 in AtCCI_LocalCache ()
> >
> > #9  0x40000000006b0910:0 in CommandCounterIncrement ()
> >
> > #10 0x4000000000807130:0 in create_toast_table (rel=0x60000000001f3730,
> >
> >     toastOid=0, toastIndexOid=0, reloptions=0, lockmode=8, check=true,
> >
> >     OIDOldToast=0)
> >
> > #11 0x4000000000805ac0:0 in CheckAndCreateToastTable (relOid=27272,
> >
> >     reloptions=0, lockmode=8, check=true, OIDOldToast=0) at toasting.c:88
> >
> > #12 0x4000000000805850:0 in AlterTableCreateToastTable (relOid=27272,
> >
> >     reloptions=0, lockmode=8) at toasting.c:62
> >
> > #13 0x4000000000aa9a30:0 in ATRewriteCatalogs (wqueue=0x87ffffffffffc3b0,
> >
> >     lockmode=8, context=0x87ffffffffffc590)


This crash could suggest that somehow the catalogs were corrupted and
that we're not reading back valid tupledescs from them. Hopefully we'll
know more after looking at the tupledescs.


Greetings,

Andres Freund



Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Improve contrib/amcheck's tests for CREATE INDEX CONCURRENTLY.

  2. Fix minor memory leaks in pg_dump.

  3. Avoid race in RelationBuildDesc() affecting CREATE INDEX CONCURRENTLY.

  4. Fix CREATE INDEX CONCURRENTLY for the newest prepared transactions.

  5. Add -w back to the flags for pg_ctl (re)start in PostgresNode

  6. Fix CREATE INDEX CONCURRENTLY for simultaneous prepared transactions.