Thread: pgsql: pg_upgrade: Convert old visibility map format to new format.

pgsql: pg_upgrade: Convert old visibility map format to new format.

From
Robert Haas
Date:
pg_upgrade: Convert old visibility map format to new format.

Commit a892234f830e832110f63fc0a2afce2fb21d1584 added a second bit per
page to the visibility map, but pg_upgrade has been unaware of it up
until now.  Therefore, a pg_upgrade from an earlier major release of
PostgreSQL to any commit preceding this one and following the one
mentioned above would result in invalid visibility map contents on the
new cluster, very possibly leading to data corruption.  This plugs
that hole.

Masahiko Sawada, reviewed by Jeff Janes, Bruce Momjian, Simon Riggs,
Michael Paquier, Andres Freund, me, and others.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/7087166a88fe0c04fc6636d0d6d6bea1737fc1fb

Modified Files
--------------
src/bin/pg_upgrade/file.c        | 154 +++++++++++++++++++++++++++++++++++++++
src/bin/pg_upgrade/pg_upgrade.h  |   6 ++
src/bin/pg_upgrade/relfilenode.c |  48 +++++++++---
3 files changed, 197 insertions(+), 11 deletions(-)


Re: pgsql: pg_upgrade: Convert old visibility map format to new format.

From
Bruce Momjian
Date:
On Fri, Mar 11, 2016 at 05:36:34PM +0000, Robert Haas wrote:
> pg_upgrade: Convert old visibility map format to new format.
>
> Commit a892234f830e832110f63fc0a2afce2fb21d1584 added a second bit per
> page to the visibility map, but pg_upgrade has been unaware of it up
> until now.  Therefore, a pg_upgrade from an earlier major release of
> PostgreSQL to any commit preceding this one and following the one
> mentioned above would result in invalid visibility map contents on the
> new cluster, very possibly leading to data corruption.  This plugs
> that hole.
>
> Masahiko Sawada, reviewed by Jeff Janes, Bruce Momjian, Simon Riggs,
> Michael Paquier, Andres Freund, me, and others.

I have tested the current git trees of all supported versions of
Postgres in all possible pg_upgrade combinations and they all worked
perfectly.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

+ As you are, so once was I. As I am, so you will be. +
+                     Ancient Roman grave inscription +