Paris, le 13 août 2021
Le PostgreSQL Global Development Group a publié le jeudi 12 août 2021, une mise à jour de toutes les versions supportées de PostgreSQL, soit les versions : 13.4, 12.8, 11.13, 10.18, et 9.6.23 ainsi que la troisième version bêta de PostgreSQL 14. Cette mise à jour corrige une vulnérabilité et plus de 75 bogues rapportés au cours des trois derniers mois.
Pour une liste complète des changements, reportez-vous à la note de publication.
La fin de vie de PostgreSQL 9.6 approche
PostgreSQL 9.6 cessera de recevoir des correctifs le 11 novembre 2021. Si vous utilisez PostgreSQL 9.6 dans un environnement de production, nous vous suggérons de prévoir une mise à jour vers une version plus récente et supportée de PostgreSQL. Pour plus d’informations, veuillez consulter notre politique de versionnement.
Correctifs de sécurité
- CVE-2021-3677: Exposition de la mémoire dans certaines requêtes
Versions touchées: 11 - 13.
Une requête spécifique peut lire arbitrairement des octets de la mémoire du serveur.
Dans une configuration par défaut, tout utilisateur authentifié de la base de données
peut réaliser cette attaque à volonté. L’attaque ne nécessite pas la capacité de
créer des objets. Si la configuration du serveur inclut max_worker_processes=0
,
les versions connues de cette attaque sont infaisables.
Note sur la Bêta de PostgreSQL 14
Cette version marque l’arrivée de la troisième version bêta de PostgreSQL 14 et rapproche la communauté de sa disponibilité générale prévue pour la fin du troisième trimestre.
Dans l’esprit de la communauté open-source de PostgreSQL, nous vous encourageons vivement à tester les nouvelles fonctionnalités de PostgreSQL 14 afin de nous aider à éliminer tout bogue ou problème éventuel. Bien que nous ne conseillions pas d’exécuter PostgreSQL 14 Bêta 3 sur vos environnement de production, nous vous encourageons à tenter d’exécuter vos charges de travail applicatives sur cette version bêta.
Vos tests et vos commentaires aideront la communauté à s’assurer que la version 14 de PostgreSQL respecte nos standards pour livrer une version stable et fiable de la base de données relationnelle open-source la plus avancée au monde.
Corrections de bogues et améliorations
Cette mise à jour corrige plus de 75 bogues qui ont été signalés au cours des derniers mois. Certains de ces problèmes ne concernent que la version 13, mais pourraient également s’appliquer à d’autres versions supportées.
Parmi ces corrections, citons :
- Désactivation complète de la renégotiation TLS/SSL. Cette fonction avait déjà été désactivée, mais le serveur pouvait toujours exécuter une demande de renégociation initiée par le client.
- Corrige les cas où une tentative de récupération de donnée toast échouerait
immediatement après un
COMMIT/ROLLBACK
avec une des erreurs commeno known snapshots
oumissing chunk number 0 for toast value
. - Évite un mauvais comportement lors de la persistance de la sortie d’un curseur qui lit une requête volatile.
- Rejeter les cas où une requête
WITH
se réécrit en justeNOTIFY
, ce qui provoquerait un crash. - Correction de plusieurs cas particuliers pour les types numériques.
ALTER EXTENSION
verrouille l’extension lors d’un ajout ou d’une suppression d’un objet membre.- L’état “enabled” est désormais copié quand des triggers de table partitionnée sont clonés dans une nouvelle partition.
- Évite les conflits d’alias dans les requêtes générées pour la commande
REFRESH MATERIALIZED VIEW CONCURRENTLY
. Cette commande échouait sur les vues matérialisées contenant des colonnes avec certains noms, notammentmv
etnewdata
. - Interdit les variables de ligne entière dans les expressions
GENERATED
. - Plusieurs correctifs pour la commande
DROP OWNED BY
impliquée dans une politique de sécurité row-level security (RLS). - Rétablissement des noms de localisation Windows old-style pour les commandes
CREATE COLLATION
. - Les processus walsenders affichent désormais leur dernière commande de
réplication dans la vue
pg_stat_activity
, au lieu de montrer la dernière commande SQL. - La colonne
pg_settings.pending_restart
affiche désormaistrue
lorsqu’un paramètre éligible est supprimé du fichierpostgresql.conf
. - Sur Windows 64 bits, autorise que la valeur effective de
work_mem * hash_mem_multiplier
puisse dépasser 2 Go. - Modification du point minimum de récupération lorsque le rejeu d’une entrée d’annulation de transaction provoque une troncature de fichier.
- Identifie correctement le plus ancien segment WAL requis pour la réplication après qu’un slot soit invalidé. Corrige un problème où le stockage des WAL pouvait manquer d’espace.
- Amélioration du rapport de progression lors de la phase de tri, pour une reconstruction d’index B-tree en mode parallélisé.
- Correction de cas possibles de plantage lors de la réplication logique
d’intructions
UPDATE
pour lesquels sont déclenchés des AFTER triggers de tables partitionnées. - Correction contre des boucles infinies lors d’ajout d’entrées dans un index SP-GiST.
- S’assure que l’ajout d’une entrée dans un index SP-GiST peut être interrompue par une demande d’annulation de requête.
- Avec
psql
et d’autres programmes client, correction d’un problème de débordement de fin de chaîne de caractères lors de la lecture de données encodées de manière incorrecte. - Correction de
pg_dump
pour manipuler correctement les triggers sur les tables partitionnées dont leur état d’activation est différent de l’état des triggers de la table principale. - Correction des avertissements
invalid creation date in header
lors de l’exécution depg_restore
pour un fichier de sauvegarde issu d’un créneau horaire différent. pg_upgrade
reporte désormais le plus ancien identifiant de transactionoldestXID
et ne force plus d’opérationVACUUM
préventive contre le recyclage des identifiants (anti-wraparound).- Évolution de
pg_upgrade
pour détecter et avertir lorsque les extensions doivent être mises à jour. - Correction de l’extension
contrib/postgres_fdw
pour mieux traiter les colonnes générées, dès lors qu’une colonne générée d’une table distante représente la colonne de la table source.
Pour la liste complète des changements, voir les notes de versions.
Mise à jour
Toutes les mises à jour de PostgreSQL sont cumulatives. Comme pour les autres mises
à jour mineures, les utilisateurs n’ont pas à sauvegarder et recharger leur base
de données ou à utiliser pg_upgrade
pour appliquer cette mise à jour ; vous
pouvez simplement arrêter PostgreSQL et mettre les binaires à jour.
Les utilisateurs ayant sauté une ou plusieurs mises à jour peuvent avoir à exécuter certaines étapes supplémentaires après installation ; merci de consulter les notes des versions précédentes pour les détails.
Pour plus de détails, vous pouvez lire les notes de version.
NOTE : PostgreSQL 9.6 ne recevra plus de correctifs après le 11 novembre 2021. Merci de consulter notre politique de versionnement pour plus d’informations.
Note sur la Bêta PostgreSQL 14
PostgreSQL 14 Bêta 3 introduit la fonction unnest
pour les types multi-intervalle
(multirange) en plus d’une série de corrections de bogues.
Pour une liste exhaustive de tous les changements inclus dans PostgreSQL 14 Bêta 3, merci de consulter la page des problèmes en cours :
https://wiki.postgresql.org/wiki/PostgreSQL_14_Open_Items#resolved_before_14beta3
Pour mettre à jour PostgreSQL 14 Bêta 3 depuis Bêta 2, Bêta 1 ou une version
antérieure, vous devez utiliser une stratégie similaire à une mise à jour entre
versions majeures de PostgreSQL (par exemple pg_upgrade
ou pg_dump / pg_restore
).
Pour plus d’informations, veuillez consulter la section de la documentation sur
la mise à jour.
Test des bogues et compatibilité
La stabilité de chaque sortie de PostgreSQL dépend grandement de vous, la communauté, à travers les tests de la prochaine version dans des conditions de charges variées, dans le but d’identifier bugs et régressions avant la mise à disposition générale de la version 14 de PostgreSQL. Puisqu’il s’agit d’une bêta, des changements mineurs dans les comportements de la base de données, fonctionnalités ou API sont toujours possibles. Vos retours d’expérience et vos tests vont aider à déterminer les derniers réglages des nouvelles fonctionnalités, merci de les tester dans un avenir proche. La qualité des tests utilisateurs aide à établir le moment où nous aboutirons à une version finale.
Une liste des problèmes ouverts est disponible publiquement sur le wiki de PostgreSQL. Vous pouvez rapporter des bugs en utilisant le formulaire sur le site de PostgreSQL :
https://www.postgresql.org/account/submitbug/
Planning des bêtas
La présente publication inclut la troisième bêta de la version 14. Le projet PostgreSQL publiera d’autres bêtas si les tests le nécessitent, suivies d’une ou plusieurs versions candidates, jusqu’à la version finale au cours de la fin d’année 2021.
Pour plus d’informations, voir la page de test des bêtas.
Liens
- PostgreSQL (398) ,
- release (83) ,
- mineure (30) ,
- sécurité (54) ,
- 14 (23) ,
- 13 (23) ,
- 12 (28) ,
- 11 (26) ,
- 10 (32) ,
- 9 (57) ,
- update (45)