Upgrade fehlgeschlagen PG::UniqueViolation -- konnte keinen eindeutigen Index erstellen "unique_post_links_ccnew"

I’ve got a standard install that is failing to upgrade to 2.8.0.beta2 with this error:

PG::UniqueViolation: ERROR:  could not create unique index "unique_post_links_ccnew"

it’s from

I, [2021-06-25T18:35:47.756688 #1]  INFO -- : == 20210525112226 RemoveLengthConstrainFromTopicLinkUrl: migrating ============

It doesn’t look like a corrupt index.

Does this help?

[6] pry(main)> TopicLink.where(url: bad_url).pluck(:id, :topic_id, :post_id, :user_id)
=> [[15733, 14351, 63616, 911], [16131, 14505, 63986, 911], [27141, 14505, 63986, 1152]]

I ended up just appending a badX to the duplicate URLs and then it worked. I’m not quite clear what problems this might generate in the future…

Viele sogenannte „unmögliche“ Indexkorruptionsfehler in älteren Versionen von Postgres, nach unserer Erfahrung. Sehen Sie das immer noch?

1 „Gefällt mir“

Ich glaube, ich habe es seit dem Upgrade auf pg12 nicht mehr gesehen.

1 „Gefällt mir“

Wir sind bis PG13 gegangen, und ich glaube, das hat es für uns größtenteils gelöst (beschädigte Indizes) @sam?

2 „Gefällt mir“

@saj hat dieses Problem gelöst. Wir haben es in unserer Infrastruktur behoben. Die meisten Self-Hosters haben es inzwischen umgangen.

Der Mechanismus, den wir in der Vergangenheit zum Upgrade von PG in unserem Open-Source-Image verwendet haben, hatte einige inhärente Sicherheitsprobleme, da sich die libc zwischen den PG-Versionen im Hintergrund geändert hat.

Ich denke, das Problem ist jetzt im breiteren Ökosystem größtenteils verschwunden, obwohl einige alte Upgrades möglicherweise immer noch damit konfrontiert sind. Es wird ein Albtraum sein, unser bestehendes Open-Source-Upgrade-Skript zu reparieren und die enorme Matrix von PG-Upgrades zu bewältigen.

Dafür sind wir uns der Ursache des Problems jetzt sehr bewusst und besser aufgestellt, um es in Zukunft anzugehen.

2 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.