★PostgreSQLカンファレンス2024 12月6日開催/チケット販売中★
他のバージョンの文書 16 | 15 | 14 | 13 | 12 | 11 | 10 | 9.6 | 9.5 | 9.4 | 9.3 | 9.2 | 9.1 | 9.0 | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.4 | 7.3 | 7.2

E.128. リリース9.0.23

リリース日: 2015-10-08

このリリースは9.0.22に対し、各種不具合を修正したものです。 9.0メジャーリリースにおける新機能については、E.151 を参照してください。

本リリースはPostgreSQLの9.0.Xシリーズの最後のリリースとなる予定 です。 早めに新しいリリースのブランチに更新することを推奨します。

E.128.1. バージョン 9.0.23への移行

9.0.Xからの移行ではダンプ/リストアは不要です。

しかしながら、9.0.18よりも前のリリースからアップグレードする場合は、E.133を参照して下さい。

E.128.2. 変更点

  • 短すぎるcrypt()のソルトを検出して報告するようにcontrib/pgcryptoを修正しました。 (Josh Kupershmidt)

    ある種の無効なソルト引数はサーバをクラッシュさせるか、わずかなバイト数のサーバメモリを露出させました。機密情報を露出するバイト列に在るように配置する攻撃の可能性は排除しませんが、ありそうにないと考えられます。 (CVE-2015-5288)

  • 外側サブトランザクションに属するポータル(カーソル)がエラーになった後の、サブトランザクションのクリーンアップ処理を修正しました。 (Tom Lane, Michael Paquier)

    外側サブトランザクションのカーソルで実行された関数が、内側サブトランザクションで作られたリレーションを参照することで、アサート失敗かクラッシュを引き起こすことがありました。

  • リレーションキャッシュinitファイルへのリレーションの書き込みを修正しました。 (Tom Lane)

    直近のマイナーリリースでの修正の誤りにより、pg_trigger_tgrelid_tgname_indexをinitファイルから除外していました。 その後のセッションはこのことを検出して、initファイルが壊れているとみなして黙ってファイルを無視します。結果としてセッション開始時間が顕著に劣化しました。 本バグの修正に加えて、似たような将来の誤りが見つかりやすくなるように防止策をいくつか導入しました。

  • SPIクエリ結果に多数のタプルを挿入するときの O(N^2) の振る舞いを防止しました。 (Neil Conway)

  • 読まれていない通知が多数あるときのLISTEN開始時間を改善しました。 (Matt Newell)

  • SSL再ネゴシエーションをデフォルトで無効にしました。 (Michael Paquier, Andres Freund)

    SSL再ネゴシエーションの使用は理論的には良い考えですが、OpenSSLライブラリに因るものと私たちのライブラリの使い方に因るものの両方で実際のところ多くのバグが見られました。 再ネゴシエーションは9.5以降では完全に取り除く予定です。古いバージョン系列では ssl_renegotiation_limitのデフォルト値をゼロ(無効)に変更するだけとします。

  • *_freeze_max_ageパラメータの下限値を下げました。 (Andres Freund)

    これは主として関連する振る舞いのテストの所要時間を短くするものですが、限られたディスク領域でインストールする際にも有益と思われます。

  • サーバクラッシュを防ぐため、wal_buffersの最大値を2GBに制限しました。 (Josh Berkus)

  • numeric値の掛け算における稀な内部オーバーフローを修正しました。 (Dean Rasheed)

  • レコード型、範囲型、jsonjsonbtsqueryltxtquery、および、query_intに含まれる起こりにくいスタックオーバーフローを予防しました。 (Noah Misch)

  • 日付時刻の入力でDOWDOYの扱いを修正しました。 (Greg Stark)

    これらのトークンは日付時刻値では使えないはずですが、これまではinvalid input syntaxでなく、意味の分からない内部エラーメッセージになっていました。

  • 正規表現照合処理中における、問い合わせのキャンセルの検査を更に追加しました (Tom Lane)

  • 正規表現、SIMILAR TO、および、LIKEの照合に再帰深度の保護を加えました。 (Tom Lane)

    ある種の検索パターンと低いスタック深度制限によりスタックオーバーランクラッシュを引き起こすことがありました。

  • 正規表現の実行での無限ループの可能性を修正しました。 (Tom Lane)

    一見ゼロ長文字列にマッチできそうで実際には後方参照のためにマッチしない検索パターンで、無限ループになるおそれがありました。

  • 正規表現のコンパイルでメモリ不足による障害を修正しました。 (Andreas Seltenreich)

  • 正規表現実行での稀なメモリリークを修正しました。 (Tom Lane)

  • トランザクションがアボートした際のロック解放処理における稀なメモリ不足時の障害を修正しました。 (Tom Lane)

  • 小さいwork_mem設定でタプルストアを使用するときに、unexpected out-of-memory situation during sortエラーになるのを修正しました。 (Tom Lane)

  • qsortでの大変稀なスタックオーバーランを修正しました。 (Tom Lane)

  • 大きなwork_mem設定でハッシュジョインの際にinvalid memory alloc request sizeエラーになるのを修正しました。 (Tomas Vondra, Tom Lane)

  • プランナに関するいくつかのバグを修正しました。 (Tom Lane)

    これらの誤りは間違ったクエリプランを導き、不適切な結果やアサート有効ビルドにおけるアサート失敗、あるいは、 could not devise a query plan for the given querycould not find pathkey item to sortplan should not reference subplan's variablefailed to assign all NestLoopParams to plan nodes などの奇妙なプランナエラーになりました。 問題を明らかにしたファズテストを行ったAndreas SeltenreichとPiotr Stefaniakに感謝しなければいけません。

  • あいまいパスコストの同点決勝ルールをサポート中の全バージョン系列に後方適用しました。 (Tom Lane)

    本変更により、ちょうど同じ見積コストをもつ代替プランを選択するときにプラットフォーム固有の挙動を回避します。

  • postmasterシャットダウンの際、postmaster.pidファイルを削除する前に、確実にソケット毎のロックファイルが削除され、リッスンソケットが閉じられるようにしました。 (Tom Lane)

    外部スクリプトがpg_ctl stopが戻ってすぐに新たなpostmasterを起動しようとする場合の、競合状態による失敗を防ぎます。

  • postmasterにおけるクラッシュリカバリ中のスタートアッププロセスのクラッシュの扱いを修正しました。 (Tom Lane)

    クラッシュリカバリサイクルの中で、スタートアッププロセスがデータベース一貫性の復旧無しにクラッシュした場合、一般的に再クラッシュとなるだけの新たなスタートアッププロセスを起動しようとして無限ループをもたらしていました。

  • 自動バキュームワーカにシグナルを送ろうとしてそのプロセスが既にいなくなっていた場合にWARNINGを出さないようにしました。 また、そのようなシグナルに関連するログ冗長性を減らしました。 (Tom Lane)

  • サーバ時計の時刻が大幅に戻ったときに自動バキュームランチャーが過度に長く休止するのを防止しました。 (Álvaro Herrera)

  • GINインデックスの挿入保留リストのクリーンアップがキャンセル要求により割り込みできることを確実にしました。 (Jeff Janes)

  • GINインデックスで全ゼロページを再利用可能にしました。 (Heikki Linnakangas)

    そのようなページはクラッシュ後に取り残されるかもしれませんでした。

  • subtrans/multixactの切捨て処理で、apparent wraparoundに関する警告となる以外には無害な境界条件エラーを修正しました (Thomas Munro)

  • PL/pgSQLのエラーコンテキストメッセージにて、文の種類CONTINUEMOVEの誤報告を修正しました。 (Pavel Stehule, Tom Lane)

  • PL/Tclにてmalloc()呼び出しの失敗チェックを怠っているいくつかの箇所を修正しました。 (Michael Paquier, Álvaro Herrera)

  • libpqのメモリ不足状態の扱いを改善しました。 (Michael Paquier, Heikki Linnakangas)

  • ecpgにおいて、メモリリークとメモリ不足チェックの欠落を修正しました。 (Michael Paquier)

  • 数値出力のロケールを意識した書式整形について、psqlのコードを修正しました。 (Tom Lane)

    \pset numericlocale on で実行される書式整形のコードは、べき指数を持つけれども小数点を持たない数値など、一部のまれなケースで誤っていました。 moneyデータ型の既にローカライズされた出力を壊すこともありました。

  • 現在の接続が無いときの\cコマンドでpsqlがクラッシュするのを防止しました。 (Noah Misch)

  • tar形式出力でのpg_dumpで作られる一時ファイルを全ユーザから読み取り可能にしないようにしました。 (Michael Paquier)

  • postgresまたはtemplate1データベースがデフォルトテーブルスペース以外にある場合に対応するように、pg_dumppg_upgradeを修正しました。 (Marti Raudsepp, Bruce Momjian)

  • 特定の権限タイプを持つには古すぎるサーバからダンプするときに、pg_dumpがオブジェクト権限を正常に扱うように修正しました。 (Tom Lane)

    関数や手続き言語を7.3以前のサーバからダンプするとき、pg_dumpは所有者の付与できる権限を剥奪して、代わりにPUBLICに全ての権限を与えるようなGRANT/REVOKEコマンドを生成していました。 ここでの権限に含まれるのはUSAGEEXECUTEだけなので、これはセキュリティ問題ではありませんが、まったく驚くべき旧システム挙動の表現です。 この場合はデフォルト権限状態のままにするように修正しました。

  • pg_dumpがシェル型をダンプするように修正しました。 (Tom Lane)

    シェル型(未定義のデータ型)は大して有用ではありませんが、それでもpg_dumpはダンプすべきでした。

  • AIXのネイティブアセンブラと互換性を持つように、PPCハードウェアむけのスピンロックのアセンブラコードを修正しました。

    gccが一般的になりつつあるネイティブアセンブラを使う構成である場合に、gccでのビルドができませんでした。

  • AIXで、単にそれが安全に使えるとみなすのでなく、-qlonglongコンパイラオプションのテストをします。 (Noah Misch)

  • AIXで、実行時に解決されるシンボルを許可する-Wl,-brtllibリンクオプションを使います。 (Noah Misch)

    Perlでは5.8.0以降からこの機能に依存しています。

  • コンパイラバグのため、32bit xlcでインライン関数展開を使わないようにしました。 (Noah Misch)

  • いくつかのSolarisバージョン上で、必要に応じてsched_yield()のためにlibrtを使用します。 (Oskari Saarenmaa)

  • Windowsのinstall.batスクリプトが空白文字を含む対象ディレクトリ名を扱えるように修正しました。 (Heikki Linnakangas)

  • PostgreSQLバージョン番号の数値形式(90405など)を拡張モジュールのMakefileで変数VERSION_NUMとして容易に利用可能にしました。 (Michael Paquier)

  • タイムゾーンデータファイルを、ケイマン諸島、フィジー、モルドバ、モロッコ、ノーフォーク島、北朝鮮、トルコ、ウルグアイの夏時間規則を変更したtzdata release 2015gに更新しました。また、カナダ・ノーザンロッキーのための新しいタイムゾーン名America/Fort_Nelsonが加わっています。