Re: Introduce wait_for_subscription_sync for TAP tests

Thomas Munro <thomas.munro@gmail.com>

From: Thomas Munro <thomas.munro@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Masahiko Sawada <sawada.mshk@gmail.com>, Amit Kapila <amit.kapila16@gmail.com>, "shiy.fnst@fujitsu.com" <shiy.fnst@fujitsu.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2022-09-12T10:42:31Z
Lists: pgsql-hackers
On Sat, Sep 10, 2022 at 10:00 AM Thomas Munro <thomas.munro@gmail.com> wrote:
> On Sat, Sep 10, 2022 at 9:45 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
> > Masahiko Sawada <sawada.mshk@gmail.com> writes:
> > > It's likely that the commit f6c5edb8abcac04eb3eac6da356e59d399b2bcef
> > > is relevant.
> >
> > Noting that the errors have only appeared in the past couple of
> > days, I'm now suspicious of adb466150b44d1eaf43a2d22f58ff4c545a0ed3f
> > (Fix recovery_prefetch with low maintenance_io_concurrency).
>
> Yeah, I also just spotted the coincidence of those failures while
> monitoring the build farm.  I'll look into this later today.  My
> initial suspicion is that there was pre-existing code here that was
> (incorrectly?) relying on the lack of error reporting in that case.
> But maybe I misunderstood and it was incorrect to report the error for
> some reason that was not robustly covered with tests.

After I wrote that I saw Sawada-san's message and waited for more
information, and I see there was now a commit.  I noticed that
peripatus was already logging the 'missing contrecord' error even when
it didn't fail the test, and still does.  I'm still looking into that
(ie whether I need to take that new report_invalid_record() call out
and replace it with errormsg_deferred = true so that XLogReadRecord()
returns NULL with no error message in this case).



Commits

  1. Fix recovery_prefetch with low maintenance_io_concurrency.

  2. Drop replication origin slots before tablesync worker exits.

  3. Back-Patch "Add wait_for_subscription_sync for TAP tests."

  4. Add wait_for_subscription_sync for TAP tests.

  5. Remove duplicated wait for subscription sync from 007_ddl.pl.

  6. Fix intermetent test failure in 028_row_filter.pl.

  7. Refactor subscription tests to use PostgresNode's wait_for_catchup