Re: REINDEX INDEX results in a crash for an index of pg_class since 9.6

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-hackers@lists.postgresql.org, Michael Paquier <michael@paquier.xyz>
Date: 2019-05-10T20:11:24Z
Lists: pgsql-hackers
Hi,

On 2019-05-07 09:17:11 -0700, Andres Freund wrote:
> Hi,
> 
> On 2019-05-07 12:14:43 -0400, Tom Lane wrote:
> > Andres Freund <andres@anarazel.de> writes:
> > > On 2019-05-07 12:07:37 -0400, Tom Lane wrote:
> > >> The number of deadlock failures is kind of annoying, so I'd rather remove
> > >> the tests from HEAD sooner than later.  What issues around that do you
> > >> think remain that these tests would be helpful for?
> > 
> > > I was wondering about
> > > https://postgr.es/m/20190430151735.wi52sxjvxsjvaxxt%40alap3.anarazel.de
> > > but perhaps it's too unlikely to break anything the tests would detect
> > > though.
> > 
> > Since we don't allow REINDEX CONCURRENTLY on system catalogs, I'm not
> > seeing any particular overlap there ...
> 
> Well, it rejiggers the way table locks are acquired for all REINDEX
> INDEX commands, not just in the CONCURRENTLY. But yea, it's probably
> easy to catch issues there on user tables.

Pushed now.

Greetings,

Andres Freund



Commits

  1. Remove reindex_catalog test from test schedules.

  2. Remove RelationSetIndexList().

  3. Fix reindexing of pg_class indexes some more.

  4. Run catalog reindexing test from 3dbb317d32 serially, to avoid deadlocks.

  5. Fix potential assertion failure when reindexing a pg_class index.

  6. Fix several recently introduced issues around handling new relation forks.

  7. Avoid VACUUM FULL altogether in initdb.

  8. Introduce replication progress tracking infrastructure.

  9. initdb: remove unnecessary VACUUM FULL