Pgpool-II 4.4.2 文書 | |||
---|---|---|---|
前のページ | 上に戻る | 付録 A. リリースノート | 次のページ |
リリース日: 2022-12-22
ログメッセージ"new IPC connection received"をDEBUG1にダウングレードしました。 (bug 775) (Bo Peng)
これは通常のメッセージで、LOGとして記録されるべきではありません。 パッチはpstefによって作成され、Bo Pengによってレビューされました。
failover_require_consensusの問題を修正しました。(Muhammad Usama)
Watchdogクラスタ全体のヘルスチェックパラメータの最大値に基づいて、フェイルオーバコマンドのタイムアウトを動的に設定するように修正しました。
Tatsuo Ishiiによってレビューおよびテストされました。 議論: [pgpool-hackers: 4227]
アボートされたトランザクション内でROLLBACK TOコマンドが動作するように修正しました。(Tatsuo Ishii)
コミット: eea522ebfcf791a623e865deaa1aa6fb59e3c50b によってアボートされたトランザクション内の問題が修正され、COMMIT/ROLLBACK以外のSQLコマンドがバックエンドに転送されないようにしました。 しかし、ROLLBACK TOコマンドが漏れていました。 その結果、ROLLBACK TOコマンドが発行されても、コマンドはバックエンドに転送されず、 トランザクションはアボートされた状態のままになります。 このコミットが入った4.3までさかのぼってパッチを適用しました。
パーサ内でバックスラッシュを使った場合の警告を出力しないように修正しました。(Tatsuo Ishii)
standard_conforming_strings = offかつescape_string_warning = onの場合、PostgreSQLは文字列リテラル内でバックスラッシュを使った場合に警告を出力します。 これは問題ありません。 しかし、以前はPgpool-IIのパーサも同じメッセージを出力していました。 これは冗長です。
idle_session_timeoutに対応しました。(Tatsuo Ishii)
idle_session_timeout (PostgreSQL 14 で追加)が有効、かつ、タイムアウトが発生した場合、次のことが発生します:
failover_on_backend_errorがon (デフォルト)の場合、Pgpool-IIはフェイルオーバを発生させます。
PostgreSQL サーバが 1 台のみが idle_session_timeout を有効にしていると、Pgpool-II がハングする可能性があります。
idle_session_timeoutに対応するため、エラーコードを検出するdetect_idle_session_timeout_error()を追加しました。 エラーを検出すると、Pgpool-II は致命的なエラーとしてフロントエンドにエラーコードを返し、セッションを切断します。 これはidle_in_transaction_session_timeoutの実装と同じような修正です。 3f5986eee360f12e6a0bb77aa46f95abf5f6bc10
SSLエラーSSL_ERROR_ZERO_RETURNに対応しました。(Tatsuo Ishii)
以前はこれによってフェイルオーバが発生しましたが、サーバは単に接続を閉じることを意味するため、実際には不要でした。
メモリキャッシュサイズを2GBより多く設定した場合に発生するセグメンテーション違反を修正しました。(Muhammad Usama)
問題は与えられたキャッシュブロックのメモリアドレスを返す block_address()関数にあり、 2GB上限まで有効な共有メモリ空間内のブロックのオフセットを計算するために32bit整数を使っていました。
pcp_proc_info、SHOW pool_poolsおよびSHOW pool_processes内のまれなセグメンテーション違反を修正しました。(Tatsuo Ishii)
セグメンテーション違反はget_pools()とget_processes()にありました。 それらは、最初に共有メモリ上の特定のプロセス情報スロットのpidを抽出し、次にキーとして pid を使ってスロットを再び検索していました。 これらのステップはロックによって保護されていなかったため、プロセス終了時に新しい子プロセスのフォークを担う親プロセスによって pid が上書きされた場合、 pid を使った検索が失敗し、NULLを返す可能性がありました。 その結果、それに続くNULLポインタの参照によってセグメンテーション違反が発生していました。
解決策は、最初にプロセス情報スロットへのポインタを取得し、次にポインタからpidメンバを抽出することです。 この方法でも、親プロセスによる共有メモリ情報の同時更新は可能ですが(出力におかしな結果をもたらす可能性があります)、少なくともセグメンテーション違反は回避できます。
無効な長さのUnixドメインソケットパスを使えないように修正しました。(Masaya Kawamoto)
Doc: Aurora設定例内のタイポを修正しました。(Tatsuo Ishii)
Doc: 制限事項のセクションを拡充しました。(Tatsuo Ishii)
pg_terminate_backendによって発生する不要なフェイルオーバを回避するため、 failover_on_backend_shutdownが使えることに言及しました。
Doc: memqcache_methodの説明を拡充しました。(Tatsuo Ishii)
どの方式を使うべきかの説明を追加しました。
Doc: ヘルスチェックプロセスでSSLが使えることに言及しました。(Tatsuo Ishii)
ストリーミングレプリケーションのチェックでもSSLが使えることに言及しました。 これは2010年以降に使えていたはずです。
環境変数を使ってPGPOOLDIRを定義できるようにしました。 (bug 766) (Bo Peng)