Errore Postgres: subplan "SubPlan 2" non è stato inizializzato

Ho un utente che segnala errori 500 “mentre visualizza post casuali”. Esaminando i log, vedo solo questi, che sembrano interessare solo questo utente. Si tratta di un’installazione standard aggiornata a PG13. Non riscontro questi errori per nessun altro utente. Tutti sembrano riguardare private_messages, il che non sembra corrispondere a “post casuali”. Cercando quell’errore, trovo alcuni post di un anno fa che affermano che si tratta di un bug di postgres.

Discourse 2.8.0.beta6 - https://github.com/discourse/discourse versione f513266bcbc03eedebda17695b8a7ffbcad6ebcc

Started GET "/u/joe/private-message-topic-tracking-state" for 82.71.0.62 at 2021-10-07 07:08:25 +0000
Processing by UsersController#private_message_topic_tracking_state as JSON
  Parameters: {"username"=>"joe"}
Completed 500 Internal Server Error in 70ms (ActiveRecord: 0.0ms | Allocations: 1952)
PG::InternalError (ERROR:  subplan "SubPlan 2" was not initialized
CONTEXT:  parallel worker
)

Si tratta effettivamente di un bug di PostgreSQL risolto nell’ultima versione minore. Puoi eseguire una ricompilazione? Questo aggiornerà PostgreSQL all’ultima versione minore.

Oooh. Quindi

root@community:~# docker exec -it data bash -c 'psql --version'
psql (PostgreSQL) 13.1 (Debian 13.1-1.pgdg100+1)

e dopo una ricostruzione:

# docker exec -it data bash -c 'psql --version'
psql (PostgreSQL) 13.3 (Debian 13.3-1.pgdg100+1)

È stato menzionato in qualche nota di rilascio? Ooh. Sembra che sia successo almeno fino ad agosto.

Ho alcuni siti da aggiornare.

Grazie, Rafael!

Visto che ci siamo, consiglieresti di eseguire un VACUUM e una ricostruzione concorrente degli indici durante questo aggiornamento minore? Io lo faccio quando si passa a una versione maggiore, come la 13. Per un aggiornamento minore è inutile, non è una cattiva idea o è superfluo?

Non dovrebbe essere necessario, poiché le versioni minori sono compatibili con lo stesso formato di file del disco.