1. 26 May, 2010 8 commits
    • Tom Lane's avatar
      Rearrange libpq's SSL initialization to simplify it and make it handle some · 4ed4b6c5
      Tom Lane authored
      additional cases correctly.  The original coding failed to load additional
      (chain) certificates from the client cert file, meaning that indirectly signed
      client certificates didn't work unless one hacked the server's root.crt file
      to include intermediate CAs (not the desired approach).  Another problem was
      that everything got loaded into the shared SSL_context object, which meant
      that concurrent connections trying to use different sslcert settings could
      well fail due to conflicting over the single available slot for a keyed
      certificate.
      
      To fix, get rid of the use of SSL_CTX_set_client_cert_cb(), which is
      deprecated anyway in the OpenSSL documentation, and instead just
      unconditionally load the client cert and private key during connection
      initialization.  This lets us use SSL_CTX_use_certificate_chain_file(),
      which does the right thing with additional certs, and is lots simpler than
      the previous hacking about with BIO-level access.  A small disadvantage is
      that we have to load the primary client cert a second time with
      SSL_use_certificate_file, so that that one ends up in the correct slot
      within the connection's SSL object where it can get paired with the key.
      Given the other overhead of making an SSL connection, that doesn't seem
      worth worrying about.
      
      Per discussion ensuing from bug #5468.
      4ed4b6c5
    • Tom Lane's avatar
      Fix bogus error message for SSL-cert authentication, due to lack of · 0d046a4d
      Tom Lane authored
      a uaCert entry in auth_failed().  Put the switch entries into a sane
      order, namely the one the enum is declared in.
      0d046a4d
    • Simon Riggs's avatar
      HS Defer buffer pin deadlock check until deadlock_timeout has expired. · f9dbac94
      Simon Riggs authored
      During Hot Standby we need to check for buffer pin deadlocks when the
      Startup process begins to wait, in case it never wakes up again. We
      previously made the deadlock check immediately on the basis it was
      cheap, though clearer thinking and prima facie evidence shows that
      was too simple. Refactor existing code to make it easy to add in
      deferral of deadlock check until deadlock_timeout allowing a good
      reduction in deadlock checks since far few buffer pins are held for
      that duration. It's worth doing anyway, though major goal is to
      prevent further reports of context switching with high numbers of
      users on occasional tests.
      f9dbac94
    • Robert Haas's avatar
      Fix psql help: \da+ is same as \da, but \daS is not. · 5234a952
      Robert Haas authored
      Noted by Stephen Frost.
      5234a952
    • Tom Lane's avatar
      The message style police pay a visit to hba.c. · af5be8bd
      Tom Lane authored
      af5be8bd
    • Tom Lane's avatar
      b1993a61
    • Tom Lane's avatar
      Tell openssl to include the names of the root certs the server trusts in · c3bf3bf2
      Tom Lane authored
      requests for client certs.  This lets a client with a keystore select the
      appropriate client certificate to send.  In particular, this is necessary
      to get Java clients to work in all but the most trivial configurations.
      Per discussion of bug #5468.
      
      Craig Ringer
      c3bf3bf2
    • Robert Haas's avatar
      More fixes for shutdown during recovery. · 615704af
      Robert Haas authored
      1. If we receive a fast shutdown request while in the PM_STARTUP state,
      process it just as we would in PM_RECOVERY, PM_HOT_STANDBY, or PM_RUN.
      Without this change, an early fast shutdown followed by Hot Standby causes
      the database to get stuck in a state where a shutdown is pending (so no new
      connections are allowed) but the shutdown request is never processed unless
      we end Hot Standby and enter normal running.
      
      2. Avoid removing the backup label file when a smart or fast shutdown occurs
      during recovery.  It makes sense to do this once we've reached normal running,
      since we must be taking a backup which now won't be valid.  But during
      recovery we must be recovering from a previously taken backup, and any backup
      label file is needed to restart recovery from the right place.
      
      Fujii Masao and Robert Haas
      615704af
  2. 25 May, 2010 10 commits
  3. 24 May, 2010 3 commits
  4. 23 May, 2010 2 commits
  5. 21 May, 2010 1 commit
  6. 20 May, 2010 4 commits
  7. 19 May, 2010 7 commits
  8. 18 May, 2010 5 commits