Re: [PoC] pg_upgrade: allow to upgrade publisher node

Peter Smith <smithpb2250@gmail.com>

From: Peter Smith <smithpb2250@gmail.com>
To: "Hayato Kuroda (Fujitsu)" <kuroda.hayato@fujitsu.com>
Cc: Amit Kapila <amit.kapila16@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>, Bruce Momjian <bruce@momjian.us>, Julien Rouhaud <rjuju123@gmail.com>, vignesh C <vignesh21@gmail.com>, Masahiko Sawada <sawada.mshk@gmail.com>, "Zhijie Hou (Fujitsu)" <houzj.fnst@fujitsu.com>
Date: 2023-08-25T03:46:45Z
Lists: pgsql-hackers
On Fri, Aug 25, 2023 at 12:09 PM Hayato Kuroda (Fujitsu)
<kuroda.hayato@fujitsu.com> wrote:
>
> Dear Peter,
>
> > FYI, the v24-0003 tests for pg_upgrade did not work for me:
>
> Hmm, I ran tests more than 1hr but could not reproduce the failure.
> cfbot also said OK multiple times...
>

Today I rebuilt everything clean from the ground up and applied all
v24*. But this time everything passes. (I have repeated the test 3x
and 3x it passes)

I don't know what is different, but I have a theory that perhaps
yesterday the v24-0001 patch did not apply correctly for me (due to
there being a pre-existing
contrib/test_decoding/t/002_always_persist.pl even after a make
clean), but that I did not notice the error (due to it being hidden
among the other whitespace warnings) when applying that first patch.

I think we can assume this was a problem with my environment. Of
course, if I ever see it happen again I will let you know.

Sorry for the false alarm.

------
Kind Regards,
Peter Smith.
Fujitsu Australia



Commits

  1. Fix issues in binary_upgrade_logical_slot_has_caught_up().

  2. Fix a random failure in 003_logical_slots.pl.

  3. Fix a test in 003_logical_slots.

  4. Fix uninitialized slot array access during the upgrade.

  5. Fix the test 003_logical_slots.

  6. Commit b195e6d482 forgot to update meson.build.

  7. Use shorter file names in the upgrade logical slots test.

  8. Migrate logical slots to the new node during an upgrade.

  9. Flush logical slots to disk during a shutdown checkpoint if required.

  10. Prevent possibility of panics during shutdown checkpoint.