PostgreSQL a publié le 20 février 2014 une nouvelle mise à jour pour toutes les versions majeures de ces moteurs de base de données 9.3, 9.2, 9.1, 9.0 et 8.4.
Les nouvelles versions sont 9.3.3, 9.2.7, 9.1.12, 9.0.16 et 8.4.20.
Ces versions mineures proposent des correctifs de sécurité et règlent des problèmes potentiels de corruptions de données dans le cadre de la réplication.
Correctifs sur les problèmes de sécurité :
Lorsqu’un rôle est créé sans l’option « with admin option », il ne peut pas accorder ou enlever ce rôle à d’autres rôles. Hors une faille a été découverte permettant de contourner cette option avec un simple « SET ROLE ».
D’autres problèmes de sécurité sont décrits ici : http://www.postgresql.org/support/security/
Correctifs sur les problèmes de réplication :
Risque de perte de données sur un esclave si le maître est fortement sollicité au moment de la synchronisation initiale du maître vers l’esclave en hot_standby.
Lors de l’application des Wal sur l’esclave, la base en hot standby est déclarée consistante alors que ce n’est pas le cas en réalité. Cela peut provoquer ce type d’erreur : « PANIC: WAL contains references to invalid pages ».
Des index peuvent se retrouver lockés dans un esclave en hot_standby lorsque des commandes de vacuum lui sont envoyés par le maître provoquant une corruption de ces index.
Autres corrections mineures sont incluses dans ce patch (voir notes de version dédiées. Par exemple : http://docs.postgresql.fr/9.3/release.html).
Il est fortement conseillé d’appliquer au plus vite ce correctif. S’agissant d’une version mineure de PostgreSQL, il suffit d’arrêter le cluster, d’installer le nouveau binaire et de relancer le cluster.
En cas d’utilisation de la réplication, il est impératif de reconstruire les esclaves après le passage du patch.
La rapidité de publication de ce patch correctif démontre la grande réactivité de la communauté PostgreSQL. En septembre 2014, PostgreSQL 9.4 sortira. Quelles surprises nous proposera cette nouvelle version majeure ?
Nous l’attendons avec impatience et nous ne manquerons pas d’analyser toutes les nouveautés dans un prochain article.
Sébastien Ruiz