Erreur Postgres : sous-plan "SubPlan 2" non initialisé

J’ai un utilisateur qui signale recevoir des erreurs 500 « lors de l’affichage de publications aléatoires ». En examinant les journaux, je ne vois que ces entrées, qui semblent affecter uniquement cet utilisateur. Il s’agit d’une installation standard à jour avec PG13. Je ne constate pas ces erreurs pour les autres utilisateurs. Elles semblent toutes concerner private_messages, ce qui ne correspond pas vraiment à des « publications aléatoires ». En recherchant cette erreur, je trouve quelques publications datant d’un an affirmant qu’il s’agit d’un bug PostgreSQL.

Discourse 2.8.0.beta6 - https://github.com/discourse/discourse version 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
)
1 « J'aime »

Il s’agit effectivement d’un bug PostgreSQL résolu dans la dernière version mineure. Pouvez-vous procéder à une reconstruction ? Cela mettra à jour PostgreSQL vers la dernière version mineure.

3 « J'aime »

Oooh. Donc

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

et après une reconstruction :

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

Cela a-t-il été mentionné dans des notes de version ? Ooh. On dirait que cela s’est produit au moins dès août.

J’ai quelques sites à mettre à jour.

Merci, Rafael !

2 « J'aime »

Puisque j’y suis, recommanderiez-vous d’effectuer un VACUUM et une reconstruction concurrente des index lors de cette mise à jour mineure ? Je le fais lors de la mise à jour vers la version majeure 13. Est-ce inutile, pas une mauvaise idée ou superflu pour cette mise à jour mineure ?

Cela ne devrait pas être nécessaire, car les versions mineures sont compatibles avec le même format de fichier disque.

2 « J'aime »