Re: BUG #17268: Possible corruption in toast index after reindex index concurrently

Maxim Boguk <maxim.boguk@gmail.com>

From: Maxim Boguk <maxim.boguk@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: PostgreSQL mailing lists <pgsql-bugs@lists.postgresql.org>, Peter Geoghegan <pg@bowt.ie>, Alexey Ermakov <alexey.ermakov@dataegret.com>, Michael Paquier <michael@paquier.xyz>
Date: 2021-11-07T20:29:42Z
Lists: pgsql-bugs
On Sun, Nov 7, 2021 at 2:07 AM Andres Freund <andres@anarazel.de> wrote:
>
> Hi,
>
> On November 4, 2021 1:01:44 PM PDT, Maxim Boguk <maxim.boguk@gmail.com> wrote:
> >UPDATE: the problem base table entry which had erroneous toast data
> >definitely had been created during the REINDEX run of toast idx.
>
> Do you have any details about the transaction / application that inserted the data?

Well... jdbc with server side prepared statements off (pgbouncer).


> >2021-11-02 13:15:45.469 UTC 2379 postgres@*** from [local] [vxid:24/0
> >txid:0] [REINDEX] LOG:  duration: 1719120.441 ms  statement: REINDEX
> >INDEX CONCURRENTLY pg_toast.pg_toast_2624976286_index
> >and the problem entry had been created at 2021-11-02 13:04:22.192125 UTC.
> >
> >So there seems some subtle bug with indexing new toast data during
> >REINDEX INDEX CONCURRENTLY of the toast index.
>
> Any chance you're using prepared transactions?

Most definitely no, prepared TS are disabled server-wide.
postgres=# show max_prepared_transactions ;
 max_prepared_transactions
---------------------------
 0


-- 
Maxim Boguk
Senior Postgresql DBA
https://dataegret.com/

Phone RU: +7  985 433 0000
Phone UA: +380 99 143 0000
Phone AU: +61  45 218 5678

LinkedIn: http://www.linkedin.com/pub/maksym-boguk/80/b99/b1b
Skype: maxim.boguk

"Доктор, вы мне советовали так не делать, но почему мне по-прежнему
больно когда я так делаю ещё раз?"



Commits

  1. Fix corruption of toast indexes with REINDEX CONCURRENTLY