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

« back to all changes in this revision

Viewing changes to src/backend/port/unix_latch.c

  • 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:
239
239
        /*
240
240
         * Initialize timeout if requested.  We must record the current time so
241
241
         * that we can determine the remaining timeout if the poll() or select()
242
 
         * is interrupted.      (On some platforms, select() will update the contents
 
242
         * is interrupted.  (On some platforms, select() will update the contents
243
243
         * of "tv" for us, but unfortunately we can't rely on that.)
244
244
         */
245
245
        if (wakeEvents & WL_TIMEOUT)
500
500
        /*
501
501
         * XXX there really ought to be a memory barrier operation right here, to
502
502
         * ensure that any flag variables we might have changed get flushed to
503
 
         * main memory before we check/set is_set.      Without that, we have to
 
503
         * main memory before we check/set is_set.  Without that, we have to
504
504
         * require that callers provide their own synchronization for machines
505
505
         * with weak memory ordering (see latch.h).
506
506
         */
559
559
        /*
560
560
         * XXX there really ought to be a memory barrier operation right here, to
561
561
         * ensure that the write to is_set gets flushed to main memory before we
562
 
         * examine any flag variables.  Otherwise a concurrent SetLatch might
 
562
         * examine any flag variables.  Otherwise a concurrent SetLatch might
563
563
         * falsely conclude that it needn't signal us, even though we have missed
564
564
         * seeing some flag updates that SetLatch was supposed to inform us of.
565
565
         * For the moment, callers must supply their own synchronization of flag