~ubuntu-branches/ubuntu/trusty/postgresql-9.3/trusty-proposed

« back to all changes in this revision

Viewing changes to src/include/storage/proc.h

  • Committer: Package Import Robot
  • Author(s): Martin Pitt
  • Date: 2014-07-24 16:13:59 UTC
  • mfrom: (1.1.8)
  • Revision ID: package-import@ubuntu.com-20140724161359-uk325qfv03euxuuh
Tags: 9.3.5-0ubuntu0.14.04.1
* New upstream bug fix release: (LP: #1348176)
  - pg_upgrade: Users who upgraded to version 9.3 using pg_upgrade may have
    an issue with transaction information which causes VACUUM to eventually
    fail. These users should run the script provided in the release notes to
    determine if their installation is affected, and then take the remedy
    steps outlined there.
  - Various data integrity and other bug fixes.
  - Secure Unix-domain sockets of temporary postmasters started during make
    check.
    Any local user able to access the socket file could connect as the
    server's bootstrap superuser, then proceed to execute arbitrary code as
    the operating-system user running the test, as we previously noted in
    CVE-2014-0067. This change defends against that risk by placing the
    server's socket in a temporary, mode 0700 subdirectory of /tmp.
  - See release notes for details:
    http://www.postgresql.org/about/news/1534/
* Remove pg_regress patches to support --host=/path, obsolete with above
  upstream changes and not applicable any more.
* Drop tcl8.6 patch, applied upstream.
* Add missing logrotate test dependency.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
 
22
22
/*
23
23
 * Each backend advertises up to PGPROC_MAX_CACHED_SUBXIDS TransactionIds
24
 
 * for non-aborted subtransactions of its current top transaction.      These
 
24
 * for non-aborted subtransactions of its current top transaction.  These
25
25
 * have to be treated as running XIDs by other backends.
26
26
 *
27
27
 * We also keep track of whether the cache overflowed (ie, the transaction has
58
58
 * Each backend has a PGPROC struct in shared memory.  There is also a list of
59
59
 * currently-unused PGPROC structs that will be reallocated to new backends.
60
60
 *
61
 
 * links: list link for any list the PGPROC is in.      When waiting for a lock,
 
61
 * links: list link for any list the PGPROC is in.  When waiting for a lock,
62
62
 * the PGPROC is linked into that lock's waitProcs queue.  A recycled PGPROC
63
63
 * is linked into ProcGlobal's freeProcs list.
64
64
 *
130
130
 
131
131
        struct XidCache subxids;        /* cache for subtransaction XIDs */
132
132
 
133
 
        /* Per-backend LWLock.  Protects fields below. */
 
133
        /* Per-backend LWLock.  Protects fields below. */
134
134
        LWLockId        backendLock;    /* protects the fields below */
135
135
 
136
136
        /* Lock manager data, recording fast-path locks taken by this backend. */
149
149
 
150
150
/*
151
151
 * Prior to PostgreSQL 9.2, the fields below were stored as part of the
152
 
 * PGPROC.      However, benchmarking revealed that packing these particular
 
152
 * PGPROC.  However, benchmarking revealed that packing these particular
153
153
 * members into a separate array as tightly as possible sped up GetSnapshotData
154
154
 * considerably on systems with many CPU cores, by reducing the number of
155
155
 * cache lines needing to be fetched.  Thus, think very carefully before adding