Aggiornamento fallito: errore chiave duplicata ("index post hotlinked media on post id and url md5")

Si è verificato un errore nella ricostruzione automatica, sembra che ci siano variazioni su questo problema:

2022-05-03 15:30:54.370 UTC [1262] discourse@discourse LOG:  duration: 1707.909 ms  statement: INSERT INTO post_hotlinked_media (post_id, url, status, upload_id, created_at, updated_at)
        SELECT
          post_id,
          obj.key AS url,
          'downloaded',
          obj.value::bigint AS upload_id,
          pcf.created_at,
          pcf.updated_at
        FROM post_custom_fields pcf
        JOIN json_each_text(pcf.value::json) obj ON true
        JOIN uploads ON obj.value::bigint = uploads.id
        WHERE name='downloaded_images'

ERROR: duplicate key value violates unique constraint \"index_post_hotlinked_media_on_post_id_and_url_md5\"

Ho ricostruito meno di un mese fa senza errori, quindi qualunque cosa abbia introdotto questo problema sembra essere recente.

4 Mi Piace

sembra che abbia a che fare con questo recente commit?

@david

2 Mi Piace

Sì, è così. Ho una correzione in lavorazione, dovrebbe essere unita nei prossimi minuti. Grazie per la segnalazione @axfelix

9 Mi Piace

Grazie, è stato veloce!

Devo fare qualcosa di speciale per scaricarlo? Ricevo ancora Caused by:\nActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint \"index_post_hotlinked_media_on_post_id_and_url_md5\" durante l’esecuzione di una ricostruzione del launcher, anche dopo aver eseguito un Docker prune.

La correzione è appena passata ai test-passed pochi secondi fa. Se ricostruisci ora, dovrebbe funzionare molto meglio. Facci sapere come va.

5 Mi Piace

Abbiamo trovato un altro posto che potrebbe causare questo errore. Quindi, se la prima correzione non ha aiutato, questa dovrebbe: :crossed_fingers:

(ora attivo in tests-passed)

4 Mi Piace

Nella mia istanza di sviluppo esegue correttamente la migrazione del database, ma se ripristino un backup da 2022-04-27-153103-v20220407195246.tar.gz fallisce:

                                                                                [361/9020]
Migrating the database...                                                                               EXCEPTION: /home/pfaffman/src/discourse-repos/discourse/lib/discourse.rb:126:in `exec': Failed to migrat
e database.
Ignoring /home/pfaffman/src/discourse-repos/discourse/db/schema_cache.yml because it has expired. The cu
rrent schema version is 20220407195246, but the one in the schema cache file is 20220428094027.
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

seguito da altro di quel tipo con alcuni di questi:

ActiveRecord::StatementInvalid: PG::DuplicateObject: ERROR:  type \"hotlinked_media_status\" already exist
1 Mi Piace

Solo per dire che la prima correzione ha funzionato per noi dopo aver superato i test!

2 Mi Piace

Ottimo, grazie per la conferma!

Ho aperto una PR con una correzione per quello:

4 Mi Piace
Finito!
[SUCCESSO]
Ripristino completato.

Grazie!

2 Mi Piace