Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mCloI-0003u1-0b for pgsql-bugs@arkaria.postgresql.org; Sun, 08 Aug 2021 16:38:02 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1mCloG-0001qJ-Rk for pgsql-bugs@arkaria.postgresql.org; Sun, 08 Aug 2021 16:38:00 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mCloG-0001qB-EU for pgsql-bugs@lists.postgresql.org; Sun, 08 Aug 2021 16:38:00 +0000 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1mCloD-0002g6-As for pgsql-bugs@lists.postgresql.org; Sun, 08 Aug 2021 16:37:59 +0000 Received: by mail-pl1-x629.google.com with SMTP id a20so13904141plm.0 for ; Sun, 08 Aug 2021 09:37:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=leadboat.com; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=v0HrsDQ4RJDXYcvvom70diAuRFkAHbsbcRbjuVa1AD0=; b=L/MNnmbaOqWsDzGDbuMtdx7Z2GH0ZWyIhr5ixzw/id/P4qAvQGBvrB0Bwld0Zvza3N xlWHM9+izXWWg6D6Ec+rXVPyht7OkQpjC2Q2bU+YYRNRkFULfHegOS6yCqsV78cbtgYl gJwU7c20GPBuGKD/0h1wt8eST5pbdNfaleIY8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=v0HrsDQ4RJDXYcvvom70diAuRFkAHbsbcRbjuVa1AD0=; b=pegbGof6hhRZ+MX7VzPFIQntsBRoHwVp8FNByo3ccfZUZiWnn0VL09xtzrcZ656v0i 8uAiEX3kfPp54s9b7M7P+EIAEcMpfLE3MwjWHwHzEy/uMR04gXzAPpa0JA2mYeCll3Yq Yfmm+bjvb4Q7cjTsXk1E0oqEDEqC36i+7Cns/ECVbmNxOdGUxRnQ+gXhzJMbGKHNlbnZ iBaX9KscgrAqrKBRysj0MRlDoMrs7oCwmsA7Kp3naAL6BYsGqgAU3f0BirZ9eFr/yE96 Ec0cy1jFkptHYmbFF4l5vndhWrvP7EbJNppIXHePh33VqUVC2h0q+60MSTwHtjAKHuHJ u6rQ== X-Gm-Message-State: AOAM532YKrpIsV+63/On2eUYFk0w0RvfB+miUgzSNRGh2H8d0QRl1YMm zWlfkKBFoQSITkaoDJCmWba0AdnIiCNyZA== X-Google-Smtp-Source: ABdhPJxdZCmKM/p1UM3E9g7XVhqVZjVWJcsjEi1rmuitseIUYAxtyOCMo1s3SXx2Ppg3koNBlBi1ZA== X-Received: by 2002:a17:90a:930e:: with SMTP id p14mr20694014pjo.132.1628440675883; Sun, 08 Aug 2021 09:37:55 -0700 (PDT) Received: from rfd.leadboat.com ([172.58.46.212]) by smtp.gmail.com with ESMTPSA id e12sm17137682pfc.214.2021.08.08.09.37.54 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 08 Aug 2021 09:37:55 -0700 (PDT) Date: Sun, 8 Aug 2021 09:37:52 -0700 From: Noah Misch To: Andrey Borodin Cc: PostgreSQL mailing lists , Michael Paquier , Tom Lane , Peter Geoghegan Subject: Re: CREATE INDEX CONCURRENTLY does not index prepared xact's data Message-ID: <20210808163752.GB23176@rfd.leadboat.com> References: <20210730022548.GA1940096@gust.leadboat.com> <20210730184126.GA2018234@gust.leadboat.com> <85D32B53-FB25-4F2F-A253-0D7B26F72881@yandex-team.ru> <341252AE-B633-471E-9FF4-B09FC5D036E2@yandex-team.ru> <20210807221957.GA169359@rfd.leadboat.com> <5E041A70-4946-489C-9B6D-764DF627A92D@yandex-team.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <5E041A70-4946-489C-9B6D-764DF627A92D@yandex-team.ru> User-Agent: Mutt/1.5.24 (2015-08-30) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Sun, Aug 08, 2021 at 04:31:07PM +0500, Andrey Borodin wrote: > > 8 авг. 2021 г., в 03:19, Noah Misch написал(а): > > 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.