Falha na atualização PG::UniqueViolation -- não foi possível criar o índice único "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…

Muitos bugs de corrupção de índice, supostamente “impossíveis”, em versões mais antigas do Postgres, em nossa experiência. Você ainda está vendo isso?

1 curtida

Acho que não o vejo desde a atualização para o pg12.

1 curtida

Fomos até o PG13, e acho que isso resolveu o problema (índices corrompidos) para nós, @sam?

2 curtidas

@saj chegou ao fundo desta questão. Nós a resolvemos em nossa infraestrutura. A maioria dos auto-hospedeiros já a contornou.

O mecanismo que usamos no passado para atualizar o PG em nossa imagem de código aberto tinha alguns problemas de segurança inerentes devido à mudança da libc nos bastidores entre as versões do PG.

Acho que o problema agora desapareceu na maior parte do ecossistema, embora algumas atualizações antigas ainda possam enfrentá-lo. Será um pesadelo corrigir nosso script de atualização de código aberto existente e lidar com a enorme matriz de atualizações do PG.

Dito isso, pelo menos estamos muito cientes da origem do problema agora e estamos em melhor posição para abordá-lo daqui para frente.

2 curtidas

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