The PostgreSQL Global Development Group has released an update to all supported versions of our database system, including 9.6.2, 9.5.6, 9.4.11, 9.3.16, and 9.2.20. This release includes fixes that prevent data corruption issues in index builds and in certain write-ahead-log replay situations, which are detailed below. It also patches over 75 other bugs reported over the last three months.
Users should plan to apply this update at the next scheduled downtime.
Build corruption with CREATE INDEX CONCURRENTLY
There existed a race condition if CREATE INDEX CONCURRENTLY was called on a column that had not been indexed before, then rows that were updated by transactions running at the same time as the CREATE INDEX CONCURRENTLY command could have been indexed incorrectly.
If you suspect this may have happened, the most reliable solution is to rebuild affected indexes after installing this update.
This issue is present in the 9.2, 9.3, 9.4, 9.5, and 9.6 series of PostgreSQL.
Fixes for visibility and write-ahead-log stability
These release contains several fixes to improve the stability of visible data and WAL logging that we wish to highlight here.
Prior to this release, data could be prematurely pruned by a vacuum operation when a special snapshot used for catalog scans was presently available. Specifically, the vacuum operation would not be aware of the oldest xmin for this special snapshot. The error would surface with a message such as:
"cache lookup failed for relation 1255"
This release ensures that vacuum operations will account for the catalog scan snapshots.
Additionally, there are several fixes to improved the stability of write-ahead-logging, including:
* A fix for BRIN index WAL logging where a replay could make a portion of the BRIN index useless and require recomputing * A fix for an unlogged table where a WAL-log would be created under the "wal_level = minimal" setting, and upon replay after crash, the table would not appear to be properly reset * A fix in the WAL page header validation when re-reading segments that fixes the error of "out-of-sequence TLI" that could be reported during recovery
Theses issues are present in the 9.6 series of PostgreSQL releases and may also be present in the 9.2, 9.3, 9.4, and 9.5 series.
Bugs fixes and improvements at: https://www.postgresql.org/about/news/1733/
Release notes: https://www.postgresql.org/docs/current/static/release.html