Publication de PostgreSQL 9.6.2 et autres mises à jour cumulatives

Par:
fredericmazue

ven, 10/02/2017 - 11:50

Le PostgreSQL Global Development Group a publié une mise à jour de toutes les versions supportées de notre système de base de données. Il s'agit des versions mineures 9.6.2, 9.5.6, 9.4.11, 9.3.16 et 9.2.20. Cette publication corrige des problèmes potentiels de corruptions de données lors de la construction d'index et dans certaines situations d'applications des journaux de transactions (`write-ahead-log`).

Ces situations sont détaillées ci-dessous. Elle corrige aussi plus de 75 bugs reportés ces 3 derniers mois. Comme toujours, les mises à jour doivent être appliquées le plus rapidement possible

Corruption due à CREATE INDEX CONCURRENTLY

Il existe une situation de concurrence (« race condition ») si CREATE INDEX CONCURRENTLY est appelé sur une colonne qui n'a pas déjà été indexée. Il se peut que des enregistrements insérées ou mis à jour par des transactions exécutées en même temps que la commande CREATE INDEX CONCURRENTLY soient indexés incorrectement. Si un tel cas est suspecté, la solution la plus fiable consiste à reconstruire les index concernés après l'installation de la mise à jour. Ce problème est présent dans les versions 9.2, 9.3, 9.4, 9.5, et 9.6 de PostgreSQL.

Correctifs de visibilité et stabilité de l'enregistrement des journaux de transactions

Cette publication contient plusieurs correctifs améliorant la stabilité des données visibles et les enregistrements des journaux de transactions (`WAL`) que nous souhaitons mettre en évidence ici. Avant cette publication, des données pouvaient être prématurément supprimées par une opération de maintenance (« vacuum ») lorsqu'un « snapshot » particulier, utilisé pour les lectures du catalogue, est disponible. Plus particulièrement, le « vacuum » n'a pas connaissance du plus vieux « xmin » de ce « snapshot » spécial. L'erreur apparaîtra avec un message du style :

```
    “cache lookup failed for relation 1255”
```

Cette mise à jour s'assure que les « vacuum » prennent en compte les « snapshots » de lectures du catalogue. Il y a égelament plusieurs correctifs améliorant la stabilité de l'enregistrement des journaux de transactions.