Re: BUG #17485: Records missing from Primary Key index when doing REINDEX INDEX CONCURRENTLY

x4mmm@yandex-team.ru

From: Andrey Borodin <x4mmm@yandex-team.ru>
To: Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: Andres Freund <andres@anarazel.de>, Robert Haas <robertmhaas@gmail.com>, Peter Geoghegan <pg@bowt.ie>, Michael Paquier <michael@paquier.xyz>, Петър Славов <pet.slavov@gmail.com>, PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>
Date: 2022-05-31T17:12:33Z
Lists: pgsql-bugs

> On 31 May 2022, at 20:30, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
> 
> On 2022-May-28, Andrey Borodin wrote:
> 
>> And reverting d9d0762 does not fix the issue. I'm not sure if I'm observing some other problem here.
>> 
>> v4 of a test not use pg_sleep() and fails with regular amcheck
>> failure. Reverting d9d0762 fixes the test. Unless I execute the test
>> for 1 million transactions, then it fail even with a revert...
>> 
>> I suspect that v3 and v4 triggers different problems.
> 
> Hmm, the only failure I see with v4 is a deadlock of this sort:

As seen in CI with reverting only d9d0762:
 v3 fails only on MacOS [0,1]
 v4 fails on Linux and FreeBSD [2,3]

So it's kind of system-dependent...


> On 31 May 2022, at 19:43, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
> 
> (implying: an index that was created in
> 13 and pg_upgraded but not touched afterwards is not at risk).

13.5+ to be accurate. Other 13 releases contained CIC\RC bug fixed by fdd965d0.


Best regards, Andrey Borodin.

[0] https://github.com/x4m/postgres_g/runs/6665396918
[1] https://cirrus-ci.com/task/4580203115577344?logs=test_world#L1571
[2] https://github.com/x4m/postgres_g/runs/6675153300
[3] https://cirrus-ci.com/task/6540481319403520?logs=test_world#L842


Commits

  1. Revert changes to CONCURRENTLY that "sped up" Xmin advance

  2. Fix possible HOT corruption when RECENTLY_DEAD changes to DEAD while pruning.