## E.74. Release 9.3.8

Release date: 2015-06-04

This release contains a small number of fixes from 9.3.7. For information about new features in the 9.3 major release, see Section E.82.

### E.74.1. Migration to Version 9.3.8

A dump/restore is not required for those running 9.3.X.

However, if you are upgrading from a version earlier than 9.3.7, see Section E.75.

### E.74.2. Changes

- Avoid failures while `fsync`'ing data directory during crash restart (Abhijit Menon-Sen, Tom Lane)

  In the previous minor releases we added a patch to `fsync` everything in the data directory after a crash. Unfortunately its response to any error condition was to fail, thereby preventing the server from starting up, even when the problem was quite harmless. An example is that an unwritable file in the data directory would prevent restart on some platforms; but it is common to make SSL certificate files unwritable by the server. Revise this behavior so that permissions failures are ignored altogether, and other types of failures are logged but do not prevent continuing.

  Also apply the same rules in `initdb --sync-only`. This case is less critical but it should act similarly.

- Fix `pg_get_functiondef()` to show functions' `LEAKPROOF` property, if set (Jeevan Chalke)

- Remove configure's check prohibiting linking to a threaded libpython on OpenBSD (Tom Lane)

  The failure this restriction was meant to prevent seems to not be a problem anymore on current OpenBSD versions.

- Allow libpq to use TLS protocol versions beyond v1 (Noah Misch)

  For a long time, libpq was coded so that the only SSL protocol it would allow was TLS v1. Now that newer TLS versions are becoming popular, allow it to negotiate the highest commonly-supported TLS version with the server. (PostgreSQL servers were already capable of such negotiation, so no change is needed on the server side.) This is a back-patch of a change already released in 9.4.0.