★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.142. リリース9.0.9

リリース日: 2012-08-17

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

E.142.1. バージョン9.0.9への移行

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

しかしながら、9.0.6より前のバージョンからアップグレードする場合は、E.145を参照してください。

E.142.2. 変更点

  • XML実体参照を介した外部ファイル/URLへのアクセスを防止します。(Noah Misch、Tom Lane)

    xml_parse()は、XML値で参照されるDTDと実体参照を解決するために必要な外部ファイルやURLの入手を試みます。 これにより、権限を持たないデータベースユーザがデータベースサーバの権限でデータを入手することができてしまいました。 この外部データは直接ユーザには返されませんが、データが有効なXMLとして解析できなかった場合その一部がエラーメッセージの中に漏洩することがあり得ます。 またどのような場合であっても、ファイルが存在するかどうか検査できるだけでも攻撃者にとって有用になり得ます。(CVE-2012-3489)

  • contrib/xml2xslt_process()を介した外部ファイル/URLへのアクセスを防止します。(Peter Eisentraut)

    libxsltはスタイルシートコマンドを通してファイルとURLの両方を読み書きする機能を提供します。 これにより、権限を持たないデータベースユーザがデータベースサーバの権限でデータを読み書きすることができてしまいました。 libxsltのセキュリティオプションを適切に使用することでこれを無効にします。(CVE-2012-3488)

    またxslt_process()の外部ファイル/URLからドキュメントとスタイルシートを取り込む機能を取り除きました。 これは文書化された機能でしたが、推奨されないものと長くみなされていました。 CVE-2012-3489に対する修正のためこの能力が壊れましたが、その修正を行うことは止め、単に取り除きました。

  • 早すぎるbtreeインデックスページの回収を防止します。(Noah Misch)

    読み取り専用トランザクションによるXIDの割り当てを省略できるようにした時、読み取り専用トランザクションがまだ参照している時に削除されたbtreeページを回収されてしまう可能性をもたらしました。 これは間違ったインデックス検索結果という結果になります。 時間に関する必要条件のため、こうしたエラーが実際に発生する可能性は非常に低いものでしたが、修正しなければなりません。

  • 新しく作成された、またはリセットされたシーケンスに関するクラッシュに対する安全性を修正しました。(Tom Lane)

    ALTER SEQUENCEが新しく作成されたシーケンスまたはリセットされたシーケンスに対して実行された場合、その後nextval()呼び出しが一度だけ行われ、そして、サーバがクラッシュすると、WAL再生はシーケンスをnextval()が行われていないように見える状態にリストアします。 このため次のnextval()呼び出しにより最初のシーケンス値が再び返されることになります。 シリアル列のシーケンス作成にはALTER SEQUENCE OWNED BY処理が含まれていますので、特にこれはserial列で現れます。

  • ホットスタンバイではない時に正確なエポックを報告するようにtxid_current()を修正しました。(Heikki Linnakangas)

    これは以前のマイナーリリースで導入されたリグレッションを修正します。

  • マスタのトランザクションが多くの副トランザクションを持つ時のホットスタンバイの起動処理の不具合を修正しました。(Andres Freund)

    この間違いはout-of-order XID insertion in KnownAssignedXidsと報告される失敗がもたらします。

  • pg_start_backup()の後確実にbackup_labelファイルをfsyncします。(Dave Kerr)

  • WAL送信処理プロセスにおけるタイムアウト処理を修正しました。(Tom Lane)

    WAL送信処理バックグラウンドプロセスではSIGALRMハンドラの確立を忘れていました。 この結果タイムアウトが発生する何らかの境界条件で永遠に待機してしまいます。

  • 9.1からのバックパッチはfsync要求キューの圧縮を向上しました。(Robert Haas)

    チェックポイント期間の性能を向上します。 9.1の変更は安全に過去のバージョンにパッチを充てられると判断できる程度に実地試験が行われたようです。

  • ディスク容量不足等I/O問題をよりよく処理するようにLISTEN/NOTIFYを修正しました。(Tom Lane)

    書き込みの失敗の後、以降すべてのNOTIFYメッセージの送信試行はCould not read from file "pg_notify/nnnn" at offset nnnnn: Successのようなメッセージで失敗しました。

  • 自動バキュームは直接ブロックされたプロセスによってのみ自動キャンセルさせることができます。(Tom Lane)

    元々のコードでは一部の場合に一貫性がない動作を許していました。 具体的にはdeadlock_timeout猶予期間より短時間で自動バキュームはキャンセルされました。

  • 自動バキュームのキャンセルについてのログ処理を改良しました。(Robert Haas)

  • サーバ起動後一番最初のログローテーションの間log_truncate_on_rotationが動作するようにログコレクタを修正しました。(Tom Lane)

  • 入れ子状の集合操作(UNION/INTERSECT/EXCEPT)に付与されるWITHを修正しました。(Tom Lane)

  • 副問い合わせへの行全体の参照が余計なGROUP BYORDER BY列を含まないことを確実にしました。(Tom Lane)

  • CREATE TABLE時のCHECK制約およびインデックス定義における行全体の参照の複製を許しません。(Tom Lane)

    この状況はLIKEまたはINHERITSを持つCREATE TABLEで発生することがあり得ます。 複製される行全体の変数は、新しいテーブルではなく元のテーブルの行型で正しくラベル付けされませんでした。 LIKEでは、後で行型がよく分岐しますので、このような状況を拒絶する方が合理的のように思います。 INHERITSでは理想的には、親のテーブルの行型への暗黙的な変換によって許可すべきですが、安全に以前のバージョンにパッチを充てるにはより多くの作業が必要です。

  • ARRAY(SELECT ...)副問い合わせにおけるメモリリークを修正しました。(Heikki Linnakangas、Tom Lane)

  • 正規表現からの共通接頭辞の抽出を修正しました。(Tom Lane)

    このコードでは^(foo)?barなどの修飾された括弧付きの副式で混乱してしまうことがあり得ました。 こうしたパターンの検索に対して不正確なインデックス最適化をもたらしました。

  • interval定数における、符号付きhh:mmhh:mm:ssフィールドの解析に関する不具合を修正しました。(Amit Kapila、Tom Lane)

  • PL/Pythonにおいて、PythonのUnicode文字列からサーバ符号化方式に変換する時にPythonの関数ではなくPostgresの符号化方式変換関数を使用します。(Jan Urbanski)

    これは、特にPythonがPostgresがサポートするすべての符号化方式をサポートしていない場合の何らかの境界値問題を防止します。 注意すべき機能上の変更は、サーバ符号化方式がSQL_ASCIIの場合、文字列のUTF-8表現を得ることです。 これまでは文字列内のASCII以外の文字はエラーになりました。

  • PL/PythonにおいてPostgreSQL符号化方式とPython符号化方式との間の対応付けを修正しました。(Jan Urbanski)

  • contrib/xml2xslt_process()においてエラーを適切に報告します。(Tom Lane)

  • 時間帯データファイルをtzdataリリース2012eに更新しました。 モロッコおよびトケラウにおける夏時間の変更が含まれます。