Bruce Momjian wrote:
> First, I am not sure it is a problem, but based on the IRC reports I
> felt I should ask here for confirmation.  Here is a sample pg_dump
> output:
> 
>       CREATE TABLE sample (
>           x integer
>       );
>       
>       -- For binary upgrade, set relfrozenxid.
>       UPDATE pg_catalog.pg_class
>       SET relfrozenxid = '703'
>       WHERE oid = 'sample'::pg_catalog.regclass;
> 
> So, we set the cluster xid while we do this schema-only restore.  I
> belive it might be possible for autovacuum to run while the schema is
> restored, see an empty table, and set the relfrozenxid to be the current
> xid, when in fact we are about to put a heap file in place of the
> current empty file.  I thought the autovacuum_freeze_max_age=2000000000
> would prevent this but now I am not sure.  I assumed that since the gap
> between the restored relfrozenxid and the current counter would
> certainly be < 2000000000 that autovacuum would not touch it.  It is
> possible these users had drastically modified autovacuum_freeze_max_age
> to cause 3-billion gaps --- again, I have no direct contact with the
> reporters, but I figured being paranoid is a good thing where pg_upgrade
> is involved.
> 
> I wonder if the fact that these people never reported the bug means
> there were doing something odd with their servers.

I just updated the C comment about what we are doing:

     * Using autovacuum=off disables cleanup vacuum and analyze, but
     * freeze vacuums can still happen, so we set
     * autovacuum_freeze_max_age very high.  We assume all datfrozenxid and
     * relfrozen values are less than a gap of 2000000000 from the current
     * xid counter, so autovacuum will not touch them.

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

  + It's impossible for everything to be true. +

-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to