The replication issue affects some users of PostgreSQL binary replication, and can cause minor data loss between the master and the standby. While not all users are affected, it is difficult to predict when the bug will occur, so we urge all users of replication and continuous backup (PITR) to update immediately. Additionally, users who had replication running under PostgreSQL minor versions 9.3.0, 9.3.1, 9.2.5, 9.1.10, or 9.0.14 should plan to take a fresh base backup of each standby after update, in order to ensure no prior data corruption already exists.
This release also fixes two timing issues with VACUUM, which can cause old, overwritten or deleted rows to re-appear at a later date under some circumstances. Users with very high transaction rates, particularly those who experience "transaction ID wraparound" every few weeks or less, are the most at risk for this issue. Those users should set vacuum_freeze_table_age to 0, and run a database-wide VACUUM after the update. The second of the two VACUUM issues affects only 9.3, making it expecially important for 9.3 users to update.
Guarantee transmission of all WAL files before replica failover
Prevent downcasing of non-ASCII identifiers
Fix several minor memory leaks
Correct overcommit behavior when using more than 24GB of work memory
Improve planner cost estimates for choosing generic plans
Fix estimates of NULL rows in boolean columns
Make UNION ALL and inheritance query plans recheck parameterized paths
Correct pg_dump bugs for foreign tables, views, and extensions
Prevent a parallel pg_restore failure on certain indexes
Make REINDEX revalidate constraints
Prevent two deadlock issues in SP-GIST and REINDEX CONCURRENTLY
Prevent GiST index lookup crash
Fix several regular expression failures
Allow ALTER DEFAULT PRIVILEGES to work on all schemas
Loosen restrictions on keywords
Allow various spellings of infinity
Expand ability to compare rows to records and arrays
Prevent psql client crash on bad PSQLRC file
Add spinlock support for ARM64
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package
Like last time, where this caused no complaints.
A major security issue fixed in this release, CVE-2013-1899, makes it possible for a connection request containing a database name that begins with "-" to be crafted that can damage or destroy files within a server's data directory. Anyone with access to the port the PostgreSQL server listens on can initiate this request.
Two lesser security fixes are also included in this release: CVE-2013-1900, wherein random numbers generated by contrib/pgcrypto functions may be easy for another database user to guess, and CVE-2013-1901, which mistakenly allows an unprivileged user to run commands that could interfere with in-progress backups. Finally, this release fixes two security issues with the graphical installers for Linux and Mac OS X: insecure passing of superuser passwords to a script, CVE-2013-1903 and the use of predictable filenames in /tmp CVE-2013-1902.
The security issue fixed in this release, CVE-2013-0255, allows a previously authenticated user to crash the server by calling an internal function with invalid arguments. This issue was discovered by independent security researcher Sumit Soni this week and reported via Secunia SVCRP, and we are grateful for their efforts in making PostgreSQL more secure.
Today's update also fixes a performance regression which caused a decrease in throughput when using dynamic queries in stored procedures in version 9.2. Applications which use PL/pgSQL's EXECUTE are strongly affected by this regression and should be updated. Additionally, we have fixed intermittent crashes caused by CREATE/DROP INDEX CONCURRENTLY, and multiple minor issues with replication.
This release is expected to be the final update for version 8.3, which is now End-of-Life (EOL). Users of version 8.3 should plan to upgrade to a later version of PostgreSQL immediately. For more information, see our Versioning Policy.
This update release also contains fixes for many minor issues discovered and patched by the PostgreSQL community in the last two months, including:
* Prevent unnecessary table scans during vacuuming
* Prevent spurious cached plan error in PL/pgSQL
* Allow sub-SELECTs to be subscripted
* Prevent DROP OWNED from dropping databases or tablespaces
* Make ECPG use translated messages
* Allow PL/Python to use multi-table trigger functions (again) in 9.1 and 9.2
* Fix several activity log management issues on Windows
* Prevent autovacuum file truncation from being cancelled by deadlock_timeout
* Make extensions build with the .exe suffix automatically on Windows
* Fix concurrency issues with CREATE/DROP DATABASE
* Reject out-of-range values in to_date() conversion function
* Revert cost estimation for large indexes back to pre-9.2 behavior
* Make pg_basebackup tolerate timeline switches
* Cleanup leftover temp table entries during crash recovery
* Prevent infinite loop when COPY inserts a large tuple into a table with a large fillfactor
* Prevent integer overflow in dynahash creation
* Make pg_upgrade work with INVALID indexes
* Fix bugs in TYPE privileges
* Allow Contrib installchecks to run in their own databases
* Many documentation updates
* Add new timezone "FET".
This update release also contains fixes for many minor issues discovered and patched by the PostgreSQL community in the last month, including several fixes which are specific to version 9.2. These include:
* Prevent psql crash due to incorrectly encoded input data
* Fix pg_regress gmake build issues
* Make sure correct directory is created for extensions
* Fix some issues with buffer locks and VACUUM
* Multiple fixes and improvements for pg_upgrade
* Fix bugs with end-of-recovery when failing over to a standby
* Avoid bogus "out-of-sequence timeline ID" errors in standby-mode
* Don't launch new child processes during shutdown
* Improve the ability of JOINs to use partial indexes
* Fix assorted integer overflow errors
* Eliminate memory leaks in record_out() and record_send()
* Skip searching for subtransaction logs at COMMIT
* Fix WaitLatch() timing issues
* Fix handling of inherited check constraints in ALTER COLUMN TYPE
* Make ALTER EXTENSION SET SCHEMA behave as documented
* Have SEQUENCE SET statements in the "data" section of sectional dumps
* Prevent parser from believing that VIEWs have system columns
* Fix --clean mode for pg_dump
* Prevent hash table corruption on out-of-memory
* Various query planner and executor fixes and improvements
* Multiple documentation updates
* DST updates for seven timezones
PostgreSQL 9.2 will ship with native JSON support, covering indexes, replication and performance improvements, and many more features. We are eagerly awaiting this release and will make it available in Early Access as soon as it’s released by the PostgreSQL community," said Ines Sombra, Lead Data Engineer, Engine Yard.