このリリースは 9.0.20 からの修正リリース(2015年6月4日リリース)です。
9.0.x からのアップデートではダンプ、リストアは不要です。
また、9.0.18 より前のバージョンからアップデートを行う場合は 9.0.18 に関する技術情報を参照してください。
PostgreSQL 9.0.20 から 9.0.21 への変更点
9.4.3、9.3.8、9.2.12、9.1.17、9.0.21 の各バージョンが同時にリリースされており、本ページでは共通の記載としています。各修正項目が適用されるバージョン系列番号を項目末尾に括弧書きで記載しています。
- クラッシュ後の再起動でデータディレクトリに fsync をかけるときの失敗を回避するようになりました。 (Abhijit Menon-Sen, Tom Lane) (9.4)(9.3)(9.2)(9.1)(9.0)
- pg_get_functiondef() 関数が、設定されているならLEAKPROOF属性を出力するように修正されました。 (Jeevan Chalke) (9.4)(9.3)(9.2)
- 内部実装用の pushJsonbValue()関数が jbvBinaryオプジェクトを展開するように修正されました。 (Andrew Dunstan) (9.4)
- configure の OpenBSD におけるスレッド対応したlibpythonへのリンクを禁止する検査が除去されました。 (Tom Lane) (9.4)(9.3)(9.2)(9.1)(9.0)
- libpq で TLSプロトコルバージョン v1 以上が利用可能になりました。 (Noah Misch) (9.3)(9.2)(9.1)(9.0)
一つ前のマイナーリリースで、クラッシュ後にデータディレクトリ内の全てに fsync をかける修正が加わりましたが、これは全ての状況に対応できていませんでした。これにより、無害な問題であってもサーバの起動が妨げられてしまいます。
具体的には、書き込み不能なファイルが含まれていた場合に一部プラットフォームでは再起動できなくなってしまいます。とはいえ、サーバで SSL証明書ファイルを書き込み不能にするのは一般的です。
本修正は改定され、全体的にパーミッションによる失敗は無視されるようになりました。また、他の失敗もログ出力されますが、処理の継続は止めないようになりました。
PostgreSQL 9.4系については、重要度は低いですが同様に振る舞うべきであるため、initdb の --sync-only オプションも同じ規則で動作するようになりました。
pg_get_functiondef() 関数は psql の ef コマンドで使われます。
jbvBinary とは JSONBデータ型の内部格納データ区分の一つです。本変更による PostgreSQL本体の振る舞い変更はありませんが、拡張モジュールからの呼び出しにおける例外的な問題ケースを回避します。
最近のテストでは問題なく動作しており、禁止する必要がないと判断されました。
これまで libpq は SSLプロトコルとして TLS v1 のみが使えました。現在ではより新しいバージョンが一般的です。PostgreSQLサーバでは既に対応しており、サーバ側の変更はありません。