pg.ddx.io  pgsql-bugs@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Noah Misch <noah@leadboat.com>
To: Andrey Borodin <x4mmm@yandex-team.ru>
Cc: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Cc: Michael Paquier <michael@paquier.xyz>
Cc: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Peter Geoghegan <pg@bowt.ie>
Subject: Re: CREATE INDEX CONCURRENTLY does not index prepared xact's data
Date: Sun, 8 Aug 2021 09:37:52 -0700
Message-ID: <20210808163752.GB23176@rfd.leadboat.com> (raw)
In-Reply-To: <5E041A70-4946-489C-9B6D-764DF627A92D@yandex-team.ru>
References: <20210730022548.GA1940096@gust.leadboat.com>
	<A345A2B4-5041-4C95-9084-DC1BA83E3328@yandex-team.ru>
	<20210730184126.GA2018234@gust.leadboat.com>
	<D22DEA09-80DA-4350-839B-0FC0BD0668A4@yandex-team.ru>
	<CAH2-Wz=Et8WLvS6d7-BH_yT9b5=cV89fXBmY0T-KgsT7R0=R_A@mail.gmail.com>
	<85D32B53-FB25-4F2F-A253-0D7B26F72881@yandex-team.ru>
	<DBD361BB-4327-4143-A849-36A262B22CEE@yandex-team.ru>
	<341252AE-B633-471E-9FF4-B09FC5D036E2@yandex-team.ru>
	<20210807221957.GA169359@rfd.leadboat.com>
	<5E041A70-4946-489C-9B6D-764DF627A92D@yandex-team.ru>

On Sun, Aug 08, 2021 at 04:31:07PM +0500, Andrey Borodin wrote:
> > 8 авг. 2021 г., в 03:19, Noah Misch <noah@leadboat.com> написал(а):
> > On Sun, Aug 08, 2021 at 12:00:55AM +0500, Andrey Borodin wrote:
> >> Changes:
> >> 1. Added assert in step 2 (fix for missed invalidation message). I wonder how deep possibly could be RelationBuildDesc() inside RelationBuildDesc() inside RelationBuildDesc() ... ? If the depth is unlimited we, probably, need a better data structure.
> > 
> > I don't know either, hence that quick data structure to delay the question.
> > debug_discard_caches=3 may help answer the question.  RelationBuildDesc()
> > reads pg_constraint, which is !rd_isnailed.  Hence, I expect one can at least
> > get RelationBuildDesc("pg_constraint") inside RelationBuildDesc("user_table").
> I've toyed around with
> $node->append_conf('postgresql.conf', 'debug_invalidate_system_caches_always = 3'); in test.
> I had failures only at most with
> Assert(in_progress_offset < 4);
> See [0] for stack trace. But I do not think that it proves that deeper calls are impossible with other DB schemas.

I didn't find the [0] link in your message; can you send it again?  I suspect
no rel can appear more than once in the stack, and all but one rel will be a
system catalog.  That said, dynamically growing the array is reasonable, even
if a small maximum depth theoretically exists.

> Step 1. Test for CIC with regular transactions.
> Step 2. Fix
> Step 3. Test for CIC with 2PC
> Step 4. Part of the fix that I'm sure about
> Step 5. Dubious part of fix...

> How to you think, do we have a chance to fix things before next release on August 12th?

No.  At a minimum, we still need to convince ourselves that step 5 is correct.
Even if that were already done, commits to released branches get more cautious
in the few days before the wrap date (tomorrow).  Once it's committed, you
could contact pgsql-release@postgresql.org to propose an out-of-cycle release.





view thread (107+ messages)  latest in thread

Message-ID: <20210808163752.GB23176@rfd.leadboat.com>
Permalink:  ../20210808163752.GB23176@rfd.leadboat.com/
Also on:    postgresql.org/message-id/20210808163752.GB23176@rfd.leadboat.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-bugs@postgresql.org
  Cc: noah@leadboat.com, x4mmm@yandex-team.ru, pgsql-bugs@lists.postgresql.org, michael@paquier.xyz, tgl@sss.pgh.pa.us, pg@bowt.ie
  Subject: Re: CREATE INDEX CONCURRENTLY does not index prepared xact's data
  In-Reply-To: <20210808163752.GB23176@rfd.leadboat.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox