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

« back to all changes in this revision

Viewing changes to src/include/storage/buf_internals.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:
111
111
 *
112
112
 * Note: buf_hdr_lock must be held to examine or change the tag, flags,
113
113
 * usage_count, refcount, or wait_backend_pid fields.  buf_id field never
114
 
 * changes after initialization, so does not need locking.      freeNext is
 
114
 * changes after initialization, so does not need locking.  freeNext is
115
115
 * protected by the BufFreelistLock not buf_hdr_lock.  The LWLocks can take
116
 
 * care of themselves.  The buf_hdr_lock is *not* used to control access to
 
116
 * care of themselves.  The buf_hdr_lock is *not* used to control access to
117
117
 * the data in the buffer!
118
118
 *
119
119
 * An exception is that if we have the buffer pinned, its tag can't change
124
124
 *
125
125
 * We can't physically remove items from a disk page if another backend has
126
126
 * the buffer pinned.  Hence, a backend may need to wait for all other pins
127
 
 * to go away.  This is signaled by storing its own PID into
 
127
 * to go away.  This is signaled by storing its own PID into
128
128
 * wait_backend_pid and setting flag bit BM_PIN_COUNT_WAITER.  At present,
129
129
 * there can be only one such waiter per buffer.
130
130
 *