The following bug has been logged on the website:
Bug reference: 9447
Logged by: Pius Chan
Email address: pchan@contigo.com
PostgreSQL version: 9.1.11
Operating system: Linux version 2.6.18-371.3.1.el5
Description:
After upgrading to 9.1.11, I vacuum the database as instructed in the
release note (i.e. set vacuum_freeze_table_age=0, then run vacuum). I also
run the utility as described in this blog:
http://www.depesz.com/2013/12/06/what-does-fix-vacuums-tests-to-see-whether-it-can-update-relfrozenxid-really-mean/
However, after a month upgrading to 9.1.11, I run the utility again and
still find rows with strange xmax. The current txid in the system is
1922768288 but I find several rows in a table with xmax <= 5000 and I am
sure some of them were updated after upgrade to 9.1.11. For example:
MY_DB=# select xmin,xmax,* from my_table where xmax=3389;
-[ RECORD 1 ]---+-------------------
xmin | 2
xmax | 3389
id | 35461
name | Speed Over 75 kph
MY_DB=# select relname, relfrozenxid from pg_class where
relname='my_table';
-[ RECORD 1 ]+-----------
relname | my_table
relfrozenxid | 1872725454
I usually fix the bad rows by updating them. However, when I run the utility
every two weeks, I always find rows with exceptionally low xmax again.
Thanks a lot for your help.
Pius