BUG #6291: Xid epoch is not updated properly - Mailing list pgsql-bugs

From Daniel Farina
Subject BUG #6291: Xid epoch is not updated properly
Date
Msg-id 201111132215.pADMFgvH080387@wwwmaster.postgresql.org
Whole thread Raw
Responses Re: BUG #6291: Xid epoch is not updated properly  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-bugs
The following bug has been logged online:

Bug reference:      6291
Logged by:          Daniel Farina
Email address:      daniel@heroku.com
PostgreSQL version: 9.0.5
Operating system:   Ubuntu 10.04
Description:        Xid epoch is not updated properly
Details:

We have on hand a database that makes heavy use of the txid_snapshot family
of functions, and recently it just passed its 4^32 transaction mark.
Unfortunately, upon wraparound the xid epoch appears to not have been
incremented, remaining at 0.  However, pg_controldata does properly report a
> 4^32 number, and so far it appears the database otherwise functions
normally. Here's a snippet:

Latest checkpoint's NextXID:          0/2131670
Latest checkpoint's NextOID:          1416740
Latest checkpoint's NextMultiXactId:  1119
Latest checkpoint's NextMultiOffset:  3115
Latest checkpoint's oldestXID:        4131117606
Latest checkpoint's oldestXID's DB:   16385
Latest checkpoint's oldestActiveXID:  0

The result is the following documentation at
"http://www.postgresql.org/docs/9.0/static/functions-info.html" is
dangerously misleading:

"The internal transaction ID type (xid) is 32 bits wide and wraps around
every 4 billion transactions. However, these functions export a 64-bit
format that is extended with an "epoch" counter so it will not wrap around
during the life of an installation. The data type used by these functions,
txid_snapshot, stores information about transaction ID visibility at a
particular moment in time. Its components are described in Table 9-53."

pgsql-bugs by date:

Previous
From: alextc
Date:
Subject: Re: BUG #4335: Error w/ PostgreSQL & EnterpriseDB Stack Builder
Next
From: Tom Lane
Date:
Subject: Re: BUG #6291: Xid epoch is not updated properly