From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | Michael Paquier <michael(at)paquier(dot)xyz>, Postgres hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: REINDEX INDEX results in a crash for an index of pg_class since 9.6 |
Date: | 2019-05-01 17:21:15 |
Message-ID: | 20190501172115.4cvz3rp6np43odut@alap3.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2019-05-01 10:06:03 -0700, Andres Freund wrote:
> I'm not sure this is the right short-term answer. Why isn't it, for now,
> sufficient to do what I suggested with RelationSetNewRelfilenode() not
> doing the CommandCounterIncrement(), and reindex_index() then doing the
> SetReindexProcessing() before a CommandCounterIncrement()? That's like
> ~10 line code change, and a few more with comments.
>
> There is the danger that the current and above approach basically relies
> on there not to be any non-inplace updates during reindex. But at the
> moment code does take care to use inplace updates
> (cf. index_update_stats()).
>
> It's not clear to me whether the approach of using
> RelationSetIndexList() in reindex_index() would be meaningfully more
> robust against non-inplace updates during reindex either - ISTM we'd
> just as well skip the necessary index insertions if we hid the index
> being rebuilt. Skipping to-be-rebuilt indexes works for
> reindex_relation() because they're going to be rebuilt subsequently (and
> thus the missing index rows don't matter) - but it'd not work for
> reindexing a single index, because it'll not get the result at a later
> stage.
FWIW, the dirty-hack version (attached) of the CommandCounterIncrement()
approach fixes the issue for a REINDEX pg_class_oid_index; in solation
even when using CCA. Started a whole CCA testrun with it, but the
results of that will obviously not be in quick.
Greetings,
Andres Freund
Attachment | Content-Type | Size |
---|---|---|
cca.diff | text/x-diff | 2.8 KB |
From | Date | Subject | |
---|---|---|---|
Next Message | Sergei Kornilov | 2019-05-01 18:18:12 | Re: using index or check in ALTER TABLE SET NOT NULL |
Previous Message | Alexander Kukushkin | 2019-05-01 17:12:52 | Re: walsender vs. XLogBackgroundFlush during shutdown |