1. 30 8月, 2011 4 次提交
  2. 29 8月, 2011 5 次提交
    • R
      Improve spinlock performance for HP-UX, ia64, non-gcc. · c01c25fb
      Robert Haas 提交于
      At least on this architecture, it's very important to spin on a
      non-atomic instruction and only retry the atomic once it appears
      that it will succeed.  To fix this, split TAS() into two macros:
      TAS(), for trying to grab the lock the first time, and TAS_SPIN(),
      for spinning until we get it.  TAS_SPIN() defaults to same as TAS(),
      but we can override it when we know there's a better way.
      
      It's likely that some of the other cases in s_lock.h require
      similar treatment, but this is the only one we've got conclusive
      evidence for at present.
      c01c25fb
    • T
      Actually, all of parallel restore's limitations should be tested earlier. · 6e1f1fee
      Tom Lane 提交于
      On closer inspection, whining in restore_toc_entries_parallel is really
      much too late for any user-facing error case.  The right place to do it
      is at the start of RestoreArchive(), before we've done anything interesting
      (suh as trying to DROP all the targets ...)
      
      Back-patch to 8.4, where parallel restore was introduced.
      6e1f1fee
    • T
      Be more user-friendly about unsupported cases for parallel pg_restore. · d6e7abe4
      Tom Lane 提交于
      If we are unable to do a parallel restore because the input file is stdin
      or is otherwise unseekable, we should complain and fail immediately, not
      after having done some of the restore.  Complaining once per thread isn't
      so cool either, and the messages should be worded to make it clear this is
      an unsupported case not some weird race-condition bug.  Per complaint from
      Lonni Friedman.
      
      Back-patch to 8.4, where parallel restore was introduced.
      d6e7abe4
    • T
      Include $cc_string in the info reported by a configure run. · 2c5d6f1f
      Tom Lane 提交于
      Without this, it's not very easy to tell which compiler version a buildfarm
      animal is actually using at the moment.
      2c5d6f1f
    • B
      Modify pgrminclude -v to report include files that can't be compiled on · 94db6664
      Bruce Momjian 提交于
      their own.
      
      Avoid compile problems with defines being redefined after the removal of
      the #if blocks.
      
      Change script to use shell functions for simplicity.
      94db6664
  3. 28 8月, 2011 3 次提交
    • T
      Don't assume that "E" response to NEGOTIATE_SSL_CODE means pre-7.0 server. · a49fbaaf
      Tom Lane 提交于
      These days, such a response is far more likely to signify a server-side
      problem, such as fork failure.  Reporting "server does not support SSL"
      (in sslmode=require) could be quite misleading.  But the results could
      be even worse in sslmode=prefer: if the problem was transient and the
      next connection attempt succeeds, we'll have silently fallen back to
      protocol version 2.0, possibly disabling features the user needs.
      
      Hence, it seems best to just eliminate the assumption that backing off
      to non-SSL/2.0 protocol is the way to recover from an "E" response, and
      instead treat the server error the same as we would in non-SSL cases.
      
      I tested this change against a pre-7.0 server, and found that there
      was a second logic bug in the "prefer" path: the test to decide whether
      to make a fallback connection attempt assumed that we must have opened
      conn->ssl, which in fact does not happen given an "E" response.  After
      fixing that, the code does indeed connect successfully to pre-7.0,
      as long as you didn't set sslmode=require.  (If you did, you get
      "Unsupported frontend protocol", which isn't completely off base
      given the server certainly doesn't support SSL.)
      
      Since there seems no reason to believe that pre-7.0 servers exist anymore
      in the wild, back-patch to all supported branches.
      a49fbaaf
    • P
      f44d275b
    • T
      Ensure we discard unread/unsent data when abandoning a connection attempt. · 724e30c9
      Tom Lane 提交于
      There are assorted situations wherein PQconnectPoll() will abandon a
      connection attempt and try again with different parameters (eg, SSL versus
      not SSL).  However, the code forgot to discard any pending data in libpq's
      I/O buffers when doing this.  In at least one case (server returns E
      message during SSL negotiation), there is unread input data which bollixes
      the next connection attempt.  I have not checked to see whether this is
      possible in the other cases where we close the socket and retry, but it
      seems like a matter of good defensive programming to add explicit
      buffer-flushing code to all of them.
      
      This is one of several issues exposed by Daniel Farina's report of
      misbehavior after a server-side fork failure.
      
      This has been wrong since forever, so back-patch to all supported branches.
      724e30c9
  4. 27 8月, 2011 20 次提交
  5. 26 8月, 2011 8 次提交