1. 17 Mar, 2011 3 commits
    • Robert Haas's avatar
      Fix various possible problems with synchronous replication. · 9a56dc33
      Robert Haas authored
      1. Don't ignore query cancel interrupts.  Instead, if the user asks to
      cancel the query after we've already committed it, but before it's on
      the standby, just emit a warning and let the COMMIT finish.
      
      2. Don't ignore die interrupts (pg_terminate_backend or fast shutdown).
      Instead, emit a warning message and close the connection without
      acknowledging the commit.  Other backends will still see the effect of
      the commit, but there's no getting around that; it's too late to abort
      at this point, and ignoring die interrupts altogether doesn't seem like
      a good idea.
      
      3. If synchronous_standby_names becomes empty, wake up all backends
      waiting for synchronous replication to complete.  Without this, someone
      attempting to shut synchronous replication off could easily wedge the
      entire system instead.
      
      4. Avoid depending on the assumption that if a walsender updates
      MyProc->syncRepState, we'll see the change even if we read it without
      holding the lock.  The window for this appears to be quite narrow (and
      probably doesn't exist at all on machines with strong memory ordering)
      but protecting against it is practically free, so do that.
      
      5. Remove useless state SYNC_REP_MUST_DISCONNECT, which isn't needed and
      doesn't actually do anything.
      
      There's still some further work needed here to make the behavior of fast
      shutdown plausible, but that looks complex, so I'm leaving it for a
      separate commit.  Review by Fujii Masao.
      9a56dc33
    • Bruce Momjian's avatar
    • Andrew Dunstan's avatar
      Use correct PATH separator for Cygwin in pg_regress.c. · 5b079cb2
      Andrew Dunstan authored
      This has been broken for years, and I'm not sure why it has not been
      noticed before, but now a very modern Cygwin breaks on it, and the fix
      is clearly correct. Backpatching to all live branches.
      5b079cb2
  2. 16 Mar, 2011 6 commits
  3. 15 Mar, 2011 5 commits
  4. 14 Mar, 2011 3 commits
  5. 13 Mar, 2011 1 commit
  6. 12 Mar, 2011 5 commits
  7. 11 Mar, 2011 17 commits