<!-- doc/src/sgml/release-3.7.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-3-7-26">
+ <title>リリース 3.7.26</title>
+ <note>
+ <title>リリース日</title>
+ <simpara>2022-12-22</simpara>
+ </note>
+
+ <sect2>
+ <title>変更点</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-03 [bcea238]
+ -->
+ <para>
+ ログメッセージ"new IPC connection received"をDEBUG1にダウングレードしました。
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=775">bug 775</ulink>) (Bo Peng)
+ </para>
+ <para>
+ これは通常のメッセージで、LOGとして記録されるべきではありません。
+ パッチはpstefによって作成され、Bo Pengによってレビューされました。
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>不具合修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-09-23 [50f0285]
+ -->
+ <para>
+ <command>pcp_proc_info</command>、<command>SHOW pool_pools</command>および<command>SHOW pool_processes</command>内のまれなセグメンテーション違反を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ セグメンテーション違反はget_pools()とget_processes()にありました。
+ それらは、最初に共有メモリ上の特定のプロセス情報スロットのpidを抽出し、次にキーとして pid を使ってスロットを再び検索していました。
+ これらのステップはロックによって保護されていなかったため、プロセス終了時に新しい子プロセスのフォークを担う親プロセスによって pid が上書きされた場合、
+ pid を使った検索が失敗し、NULLを返す可能性がありました。
+ その結果、それに続くNULLポインタの参照によってセグメンテーション違反が発生していました。
+ </para>
+ <para>
+ 解決策は、最初にプロセス情報スロットへのポインタを取得し、次にポインタからpidメンバを抽出することです。
+ この方法でも、親プロセスによる共有メモリ情報の同時更新は可能ですが(出力におかしな結果をもたらす可能性があります)、少なくともセグメンテーション違反は回避できます。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-12 [7b288c6]
+ -->
+ <para>
+ 無効な長さのUnixドメインソケットパスを使えないように修正しました。(Masaya Kawamoto)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>ドキュメント修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-10-07 [0acb52b]
+ -->
+ <para>
+ Doc: memqcache_methodの説明を拡充しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ どの方式を使うべきかの説明を追加しました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-08-28 [4551ef6]
+ -->
+ <para>
+ Doc: ヘルスチェックプロセスでSSLが使えることに言及しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ ストリーミングレプリケーションのチェックでもSSLが使えることに言及しました。
+ これは2010年以降に使えていたはずです。
+ </para>
+ <para>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-August/004188.html">[pgpool-hackers: 4187]</ulink>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>回帰テスト修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-17 [2985853]
+ -->
+ <para>
+ 環境変数を使ってPGPOOLDIRを定義できるようにしました。
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=766">bug 766</ulink>) (Bo Peng)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-3-7-25">
<title>リリース 3.7.25</title>
<note>
<!-- doc/src/sgml/release-4.0.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-0-21">
+ <title>リリース 4.0.21</title>
+ <note>
+ <title>リリース日</title>
+ <simpara>2022-12-22</simpara>
+ </note>
+
+ <sect2>
+ <title>変更点</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-03 [bcea238]
+ -->
+ <para>
+ ログメッセージ"new IPC connection received"をDEBUG1にダウングレードしました。
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=775">bug 775</ulink>) (Bo Peng)
+ </para>
+ <para>
+ これは通常のメッセージで、LOGとして記録されるべきではありません。
+ パッチはpstefによって作成され、Bo Pengによってレビューされました。
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>不具合修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-20 [7bc3176]
+ -->
+ <para>
+ <xref linkend="guc-failover-require-consensus">の問題を修正しました。(Muhammad Usama)
+ </para>
+ <para>
+ Watchdogクラスタ全体のヘルスチェックパラメータの最大値に基づいて、フェイルオーバコマンドのタイムアウトを動的に設定するように修正しました。
+ </para>
+ <para>
+ Tatsuo Ishiiによってレビューおよびテストされました。
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-November/004228.html">[pgpool-hackers: 4227]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-11-24 [77fdaca]
+ -->
+ <para>
+ パーサ内でバックスラッシュを使った場合の警告を出力しないように修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ <varname>standard_conforming_strings = off</varname>かつ<varname>escape_string_warning = on</varname>の場合、<productname>PostgreSQL</productname>は文字列リテラル内でバックスラッシュを使った場合に警告を出力します。
+ これは問題ありません。
+ しかし、以前は<productname>Pgpool-II</productname>のパーサも同じメッセージを出力していました。
+ これは冗長です。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-27 [573b84b]
+ -->
+ <para>
+ <varname>idle_session_timeout</varname>に対応しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ idle_session_timeout (PostgreSQL 14 で追加)が有効、かつ、タイムアウトが発生した場合、次のことが発生します:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <varname>failover_on_backend_error</varname>がon (デフォルト)の場合、<productname>Pgpool-II</productname>はフェイルオーバを発生させます。
+ </para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>
+ PostgreSQL サーバが 1 台のみが idle_session_timeout を有効にしていると、Pgpool-II がハングする可能性があります。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ idle_session_timeoutに対応するため、エラーコードを検出するdetect_idle_session_timeout_error()を追加しました。
+ エラーを検出すると、Pgpool-II は致命的なエラーとしてフロントエンドにエラーコードを返し、セッションを切断します。
+ これはidle_in_transaction_session_timeoutの実装と同じような修正です。
+ <ulink url="https://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=3f5986eee360f12e6a0bb77aa46f95abf5f6bc10">3f5986eee360f12e6a0bb77aa46f95abf5f6bc10</ulink>
+ </para>
+ <para>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-October/004209.html">[pgpool-hackers: 4208]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-14 [963391b]
+ -->
+ <para>
+ SSLエラーSSL_ERROR_ZERO_RETURNに対応しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 以前はこれによってフェイルオーバが発生しましたが、サーバは単に接続を閉じることを意味するため、実際には不要でした。
+ </para>
+ <para>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2022-September/008425.html">[pgpool-general: 8366]</ulink>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-September/004194.html">[pgpool-hackers: 4193]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-01 [c360057]
+ -->
+ <para>
+ メモリキャッシュサイズを2GBより多く設定した場合に発生するセグメンテーション違反を修正しました。(Muhammad Usama)
+ </para>
+ <para>
+ 問題は与えられたキャッシュブロックのメモリアドレスを返す block_address()関数にあり、
+ 2GB上限まで有効な共有メモリ空間内のブロックのオフセットを計算するために32bit整数を使っていました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-23 [50f0285]
+ -->
+ <para>
+ <command>pcp_proc_info</command>、<command>SHOW pool_pools</command>および<command>SHOW pool_processes</command>内のまれなセグメンテーション違反を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ セグメンテーション違反はget_pools()とget_processes()にありました。
+ それらは、最初に共有メモリ上の特定のプロセス情報スロットのpidを抽出し、次にキーとして pid を使ってスロットを再び検索していました。
+ これらのステップはロックによって保護されていなかったため、プロセス終了時に新しい子プロセスのフォークを担う親プロセスによって pid が上書きされた場合、
+ pid を使った検索が失敗し、NULLを返す可能性がありました。
+ その結果、それに続くNULLポインタの参照によってセグメンテーション違反が発生していました。
+ </para>
+ <para>
+ 解決策は、最初にプロセス情報スロットへのポインタを取得し、次にポインタからpidメンバを抽出することです。
+ この方法でも、親プロセスによる共有メモリ情報の同時更新は可能ですが(出力におかしな結果をもたらす可能性があります)、少なくともセグメンテーション違反は回避できます。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-12 [7b288c6]
+ -->
+ <para>
+ 無効な長さのUnixドメインソケットパスを使えないように修正しました。(Masaya Kawamoto)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>ドキュメント修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-10-07 [0acb52b]
+ -->
+ <para>
+ Doc: memqcache_methodの説明を拡充しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ どの方式を使うべきかの説明を追加しました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-08-28 [4551ef6]
+ -->
+ <para>
+ Doc: ヘルスチェックプロセスでSSLが使えることに言及しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ ストリーミングレプリケーションのチェックでもSSLが使えることに言及しました。
+ これは2010年以降に使えていたはずです。
+ </para>
+ <para>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-August/004188.html">[pgpool-hackers: 4187]</ulink>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>回帰テスト修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-17 [2985853]
+ -->
+ <para>
+ 環境変数を使ってPGPOOLDIRを定義できるようにしました。
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=766">bug 766</ulink>) (Bo Peng)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-0-20">
<title>リリース 4.0.20</title>
<note>
<!-- doc/src/sgml/release-4.1.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-1-14">
+ <title>リリース 4.1.14</title>
+ <note>
+ <title>リリース日</title>
+ <simpara>2022-12-22</simpara>
+ </note>
+
+ <sect2>
+ <title>変更点</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-03 [bcea238]
+ -->
+ <para>
+ ログメッセージ"new IPC connection received"をDEBUG1にダウングレードしました。
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=775">bug 775</ulink>) (Bo Peng)
+ </para>
+ <para>
+ これは通常のメッセージで、LOGとして記録されるべきではありません。
+ パッチはpstefによって作成され、Bo Pengによってレビューされました。
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>不具合修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-20 [7bc3176]
+ -->
+ <para>
+ <xref linkend="guc-failover-require-consensus">の問題を修正しました。(Muhammad Usama)
+ </para>
+ <para>
+ Watchdogクラスタ全体のヘルスチェックパラメータの最大値に基づいて、フェイルオーバコマンドのタイムアウトを動的に設定するように修正しました。
+ </para>
+ <para>
+ Tatsuo Ishiiによってレビューおよびテストされました。
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-November/004228.html">[pgpool-hackers: 4227]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-11-24 [77fdaca]
+ -->
+ <para>
+ パーサ内でバックスラッシュを使った場合の警告を出力しないように修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ <varname>standard_conforming_strings = off</varname>かつ<varname>escape_string_warning = on</varname>の場合、<productname>PostgreSQL</productname>は文字列リテラル内でバックスラッシュを使った場合に警告を出力します。
+ これは問題ありません。
+ しかし、以前は<productname>Pgpool-II</productname>のパーサも同じメッセージを出力していました。
+ これは冗長です。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-27 [573b84b]
+ -->
+ <para>
+ <varname>idle_session_timeout</varname>に対応しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ idle_session_timeout (PostgreSQL 14 で追加)が有効、かつ、タイムアウトが発生した場合、次のことが発生します:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <varname>failover_on_backend_error</varname>がon (デフォルト)の場合、<productname>Pgpool-II</productname>はフェイルオーバを発生させます。
+ </para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>
+ PostgreSQL サーバが 1 台のみが idle_session_timeout を有効にしていると、Pgpool-II がハングする可能性があります。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ idle_session_timeoutに対応するため、エラーコードを検出するdetect_idle_session_timeout_error()を追加しました。
+ エラーを検出すると、Pgpool-II は致命的なエラーとしてフロントエンドにエラーコードを返し、セッションを切断します。
+ これはidle_in_transaction_session_timeoutの実装と同じような修正です。
+ <ulink url="https://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=3f5986eee360f12e6a0bb77aa46f95abf5f6bc10">3f5986eee360f12e6a0bb77aa46f95abf5f6bc10</ulink>
+ </para>
+ <para>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-October/004209.html">[pgpool-hackers: 4208]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-14 [963391b]
+ -->
+ <para>
+ SSLエラーSSL_ERROR_ZERO_RETURNに対応しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 以前はこれによってフェイルオーバが発生しましたが、サーバは単に接続を閉じることを意味するため、実際には不要でした。
+ </para>
+ <para>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2022-September/008425.html">[pgpool-general: 8366]</ulink>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-September/004194.html">[pgpool-hackers: 4193]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-01 [c360057]
+ -->
+ <para>
+ メモリキャッシュサイズを2GBより多く設定した場合に発生するセグメンテーション違反を修正しました。(Muhammad Usama)
+ </para>
+ <para>
+ 問題は与えられたキャッシュブロックのメモリアドレスを返す block_address()関数にあり、
+ 2GB上限まで有効な共有メモリ空間内のブロックのオフセットを計算するために32bit整数を使っていました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-23 [50f0285]
+ -->
+ <para>
+ <command>pcp_proc_info</command>、<command>SHOW pool_pools</command>および<command>SHOW pool_processes</command>内のまれなセグメンテーション違反を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ セグメンテーション違反はget_pools()とget_processes()にありました。
+ それらは、最初に共有メモリ上の特定のプロセス情報スロットのpidを抽出し、次にキーとして pid を使ってスロットを再び検索していました。
+ これらのステップはロックによって保護されていなかったため、プロセス終了時に新しい子プロセスのフォークを担う親プロセスによって pid が上書きされた場合、
+ pid を使った検索が失敗し、NULLを返す可能性がありました。
+ その結果、それに続くNULLポインタの参照によってセグメンテーション違反が発生していました。
+ </para>
+ <para>
+ 解決策は、最初にプロセス情報スロットへのポインタを取得し、次にポインタからpidメンバを抽出することです。
+ この方法でも、親プロセスによる共有メモリ情報の同時更新は可能ですが(出力におかしな結果をもたらす可能性があります)、少なくともセグメンテーション違反は回避できます。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-12 [7b288c6]
+ -->
+ <para>
+ 無効な長さのUnixドメインソケットパスを使えないように修正しました。(Masaya Kawamoto)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>ドキュメント修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-10-07 [0acb52b]
+ -->
+ <para>
+ Doc: memqcache_methodの説明を拡充しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ どの方式を使うべきかの説明を追加しました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-08-28 [4551ef6]
+ -->
+ <para>
+ Doc: ヘルスチェックプロセスでSSLが使えることに言及しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ ストリーミングレプリケーションのチェックでもSSLが使えることに言及しました。
+ これは2010年以降に使えていたはずです。
+ </para>
+ <para>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-August/004188.html">[pgpool-hackers: 4187]</ulink>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>回帰テスト修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-17 [2985853]
+ -->
+ <para>
+ 環境変数を使ってPGPOOLDIRを定義できるようにしました。
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=766">bug 766</ulink>) (Bo Peng)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-1-13">
<title>リリース 4.1.13</title>
<note>
<!-- doc/src/sgml/release-4.2.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-2-11">
+ <title>リリース 4.2.11</title>
+ <note>
+ <title>リリース日</title>
+ <simpara>2022-12-22</simpara>
+ </note>
+
+ <sect2>
+ <title>変更点</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-03 [bcea238]
+ -->
+ <para>
+ ログメッセージ"new IPC connection received"をDEBUG1にダウングレードしました。
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=775">bug 775</ulink>) (Bo Peng)
+ </para>
+ <para>
+ これは通常のメッセージで、LOGとして記録されるべきではありません。
+ パッチはpstefによって作成され、Bo Pengによってレビューされました。
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>不具合修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-20 [7bc3176]
+ -->
+ <para>
+ <xref linkend="guc-failover-require-consensus">の問題を修正しました。(Muhammad Usama)
+ </para>
+ <para>
+ Watchdogクラスタ全体のヘルスチェックパラメータの最大値に基づいて、フェイルオーバコマンドのタイムアウトを動的に設定するように修正しました。
+ </para>
+ <para>
+ Tatsuo Ishiiによってレビューおよびテストされました。
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-November/004228.html">[pgpool-hackers: 4227]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-11-24 [77fdaca]
+ -->
+ <para>
+ パーサ内でバックスラッシュを使った場合の警告を出力しないように修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ <varname>standard_conforming_strings = off</varname>かつ<varname>escape_string_warning = on</varname>の場合、<productname>PostgreSQL</productname>は文字列リテラル内でバックスラッシュを使った場合に警告を出力します。
+ これは問題ありません。
+ しかし、以前は<productname>Pgpool-II</productname>のパーサも同じメッセージを出力していました。
+ これは冗長です。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-27 [573b84b]
+ -->
+ <para>
+ <varname>idle_session_timeout</varname>に対応しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ idle_session_timeout (PostgreSQL 14 で追加)が有効、かつ、タイムアウトが発生した場合、次のことが発生します:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <varname>failover_on_backend_error</varname>がon (デフォルト)の場合、<productname>Pgpool-II</productname>はフェイルオーバを発生させます。
+ </para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>
+ PostgreSQL サーバが 1 台のみが idle_session_timeout を有効にしていると、Pgpool-II がハングする可能性があります。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ idle_session_timeoutに対応するため、エラーコードを検出するdetect_idle_session_timeout_error()を追加しました。
+ エラーを検出すると、Pgpool-II は致命的なエラーとしてフロントエンドにエラーコードを返し、セッションを切断します。
+ これはidle_in_transaction_session_timeoutの実装と同じような修正です。
+ <ulink url="https://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=3f5986eee360f12e6a0bb77aa46f95abf5f6bc10">3f5986eee360f12e6a0bb77aa46f95abf5f6bc10</ulink>
+ </para>
+ <para>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-October/004209.html">[pgpool-hackers: 4208]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-14 [963391b]
+ -->
+ <para>
+ SSLエラーSSL_ERROR_ZERO_RETURNに対応しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 以前はこれによってフェイルオーバが発生しましたが、サーバは単に接続を閉じることを意味するため、実際には不要でした。
+ </para>
+ <para>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2022-September/008425.html">[pgpool-general: 8366]</ulink>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-September/004194.html">[pgpool-hackers: 4193]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-01 [c360057]
+ -->
+ <para>
+ メモリキャッシュサイズを2GBより多く設定した場合に発生するセグメンテーション違反を修正しました。(Muhammad Usama)
+ </para>
+ <para>
+ 問題は与えられたキャッシュブロックのメモリアドレスを返す block_address()関数にあり、
+ 2GB上限まで有効な共有メモリ空間内のブロックのオフセットを計算するために32bit整数を使っていました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-23 [50f0285]
+ -->
+ <para>
+ <command>pcp_proc_info</command>、<command>SHOW pool_pools</command>および<command>SHOW pool_processes</command>内のまれなセグメンテーション違反を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ セグメンテーション違反はget_pools()とget_processes()にありました。
+ それらは、最初に共有メモリ上の特定のプロセス情報スロットのpidを抽出し、次にキーとして pid を使ってスロットを再び検索していました。
+ これらのステップはロックによって保護されていなかったため、プロセス終了時に新しい子プロセスのフォークを担う親プロセスによって pid が上書きされた場合、
+ pid を使った検索が失敗し、NULLを返す可能性がありました。
+ その結果、それに続くNULLポインタの参照によってセグメンテーション違反が発生していました。
+ </para>
+ <para>
+ 解決策は、最初にプロセス情報スロットへのポインタを取得し、次にポインタからpidメンバを抽出することです。
+ この方法でも、親プロセスによる共有メモリ情報の同時更新は可能ですが(出力におかしな結果をもたらす可能性があります)、少なくともセグメンテーション違反は回避できます。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-12 [7b288c6]
+ -->
+ <para>
+ 無効な長さのUnixドメインソケットパスを使えないように修正しました。(Masaya Kawamoto)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>ドキュメント修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-14 [5d5d4a2]
+ -->
+ <para>
+ Doc: Aurora設定例内のタイポを修正しました。(Tatsuo Ishii)
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-07 [0acb52b]
+ -->
+ <para>
+ Doc: memqcache_methodの説明を拡充しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ どの方式を使うべきかの説明を追加しました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-08-28 [4551ef6]
+ -->
+ <para>
+ Doc: ヘルスチェックプロセスでSSLが使えることに言及しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ ストリーミングレプリケーションのチェックでもSSLが使えることに言及しました。
+ これは2010年以降に使えていたはずです。
+ </para>
+ <para>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-August/004188.html">[pgpool-hackers: 4187]</ulink>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>回帰テスト修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-17 [2985853]
+ -->
+ <para>
+ 環境変数を使ってPGPOOLDIRを定義できるようにしました。
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=766">bug 766</ulink>) (Bo Peng)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-2-10">
<title>リリース 4.2.10</title>
<note>
<!-- doc/src/sgml/release-4.3.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-3-4">
+ <title>リリース 4.3.4</title>
+ <note>
+ <title>リリース日</title>
+ <simpara>2022-12-22</simpara>
+ </note>
+
+ <sect2>
+ <title>変更点</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-03 [bcea238]
+ -->
+ <para>
+ ログメッセージ"new IPC connection received"をDEBUG1にダウングレードしました。
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=775">bug 775</ulink>) (Bo Peng)
+ </para>
+ <para>
+ これは通常のメッセージで、LOGとして記録されるべきではありません。
+ パッチはpstefによって作成され、Bo Pengによってレビューされました。
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>不具合修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-20 [7bc3176]
+ -->
+ <para>
+ <xref linkend="guc-failover-require-consensus">の問題を修正しました。(Muhammad Usama)
+ </para>
+ <para>
+ Watchdogクラスタ全体のヘルスチェックパラメータの最大値に基づいて、フェイルオーバコマンドのタイムアウトを動的に設定するように修正しました。
+ </para>
+ <para>
+ Tatsuo Ishiiによってレビューおよびテストされました。
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-November/004228.html">[pgpool-hackers: 4227]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-11-25 [b7b5bae]
+ -->
+ <para>
+ アボートされたトランザクション内で<command>ROLLBACK TO</command>コマンドが動作するように修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ コミット: <ulink url="https://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=eea522ebfcf791a623e865deaa1aa6fb59e3c50b">eea522ebfcf791a623e865deaa1aa6fb59e3c50b</ulink>
+ によってアボートされたトランザクション内の問題が修正され、COMMIT/ROLLBACK以外のSQLコマンドがバックエンドに転送されないようにしました。
+ しかし、ROLLBACK TOコマンドが漏れていました。
+ その結果、ROLLBACK TOコマンドが発行されても、コマンドはバックエンドに転送されず、
+ トランザクションはアボートされた状態のままになります。
+ このコミットが入った4.3までさかのぼってパッチを適用しました。
+ </para>
+ <para>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-general-jp/2022-November/001715.html">[pgpool-general-jp: 1716]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-11-24 [77fdaca]
+ -->
+ <para>
+ パーサ内でバックスラッシュを使った場合の警告を出力しないように修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ <varname>standard_conforming_strings = off</varname>かつ<varname>escape_string_warning = on</varname>の場合、<productname>PostgreSQL</productname>は文字列リテラル内でバックスラッシュを使った場合に警告を出力します。
+ これは問題ありません。
+ しかし、以前は<productname>Pgpool-II</productname>のパーサも同じメッセージを出力していました。
+ これは冗長です。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-27 [573b84b]
+ -->
+ <para>
+ <varname>idle_session_timeout</varname>に対応しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ idle_session_timeout (PostgreSQL 14 で追加)が有効、かつ、タイムアウトが発生した場合、次のことが発生します:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <varname>failover_on_backend_error</varname>がon (デフォルト)の場合、<productname>Pgpool-II</productname>はフェイルオーバを発生させます。
+ </para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>
+ PostgreSQL サーバが 1 台のみが idle_session_timeout を有効にしていると、Pgpool-II がハングする可能性があります。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ idle_session_timeoutに対応するため、エラーコードを検出するdetect_idle_session_timeout_error()を追加しました。
+ エラーを検出すると、Pgpool-II は致命的なエラーとしてフロントエンドにエラーコードを返し、セッションを切断します。
+ これはidle_in_transaction_session_timeoutの実装と同じような修正です。
+ <ulink url="https://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=3f5986eee360f12e6a0bb77aa46f95abf5f6bc10">3f5986eee360f12e6a0bb77aa46f95abf5f6bc10</ulink>
+ </para>
+ <para>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-October/004209.html">[pgpool-hackers: 4208]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-14 [963391b]
+ -->
+ <para>
+ SSLエラーSSL_ERROR_ZERO_RETURNに対応しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 以前はこれによってフェイルオーバが発生しましたが、サーバは単に接続を閉じることを意味するため、実際には不要でした。
+ </para>
+ <para>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2022-September/008425.html">[pgpool-general: 8366]</ulink>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-September/004194.html">[pgpool-hackers: 4193]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-01 [c360057]
+ -->
+ <para>
+ メモリキャッシュサイズを2GBより多く設定した場合に発生するセグメンテーション違反を修正しました。(Muhammad Usama)
+ </para>
+ <para>
+ 問題は与えられたキャッシュブロックのメモリアドレスを返す block_address()関数にあり、
+ 2GB上限まで有効な共有メモリ空間内のブロックのオフセットを計算するために32bit整数を使っていました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-23 [50f0285]
+ -->
+ <para>
+ <command>pcp_proc_info</command>、<command>SHOW pool_pools</command>および<command>SHOW pool_processes</command>内のまれなセグメンテーション違反を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ セグメンテーション違反はget_pools()とget_processes()にありました。
+ それらは、最初に共有メモリ上の特定のプロセス情報スロットのpidを抽出し、次にキーとして pid を使ってスロットを再び検索していました。
+ これらのステップはロックによって保護されていなかったため、プロセス終了時に新しい子プロセスのフォークを担う親プロセスによって pid が上書きされた場合、
+ pid を使った検索が失敗し、NULLを返す可能性がありました。
+ その結果、それに続くNULLポインタの参照によってセグメンテーション違反が発生していました。
+ </para>
+ <para>
+ 解決策は、最初にプロセス情報スロットへのポインタを取得し、次にポインタからpidメンバを抽出することです。
+ この方法でも、親プロセスによる共有メモリ情報の同時更新は可能ですが(出力におかしな結果をもたらす可能性があります)、少なくともセグメンテーション違反は回避できます。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-12 [7b288c6]
+ -->
+ <para>
+ 無効な長さのUnixドメインソケットパスを使えないように修正しました。(Masaya Kawamoto)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>ドキュメント修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-14 [5d5d4a2]
+ -->
+ <para>
+ Doc: Aurora設定例内のタイポを修正しました。(Tatsuo Ishii)
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-11-22 [eb99b63]
+ -->
+ <para>
+ Doc: 制限事項のセクションを拡充しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ pg_terminate_backendによって発生する不要なフェイルオーバを回避するため、
+ failover_on_backend_shutdownが使えることに言及しました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-07 [0acb52b]
+ -->
+ <para>
+ Doc: memqcache_methodの説明を拡充しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ どの方式を使うべきかの説明を追加しました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-08-28 [4551ef6]
+ -->
+ <para>
+ Doc: ヘルスチェックプロセスでSSLが使えることに言及しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ ストリーミングレプリケーションのチェックでもSSLが使えることに言及しました。
+ これは2010年以降に使えていたはずです。
+ </para>
+ <para>
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-August/004188.html">[pgpool-hackers: 4187]</ulink>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>回帰テスト修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-17 [2985853]
+ -->
+ <para>
+ 環境変数を使ってPGPOOLDIRを定義できるようにしました。
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=766">bug 766</ulink>) (Bo Peng)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-3-3">
<title>リリース 4.3.3</title>
<note>
<!-- doc/src/sgml/release-4.4.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-4-1">
+ <title>リリース 4.4.1</title>
+ <note>
+ <title>リリース日</title>
+ <simpara>2022-12-22</simpara>
+ </note>
+
+ <sect2>
+ <title>変更点</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2022-12-16 [6311565]
+ -->
+ <para>
+ ストリーミングレプリケーションLOGメッセージ"standby_delay: 54"をDEBUG1にダウングレードしました。(Tatsuo Ishii)
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-12-12 [dfcc21e]
+ -->
+ <para>
+ LOGメッセージ"we have hit the ceiling"をDEBUG5にダウングレードしました。(Tatsuo Ishii)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>不具合修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-20 [f6cbfe2]
+ -->
+ <para>
+ タイムスタンプのリライト処理の不具合を修正しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ <productname>Pgpool-II</productname> 4.4のoutfuncsモジュールでは、boolean定数が無視され、空の文字列になり、構文エラーが発生しました。
+ </para>
+ <para>
+ この問題はMichiel van Leeningによって報告されました。
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2022-December/008581.html">[pgpool-general: 8521]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-12-20 [7bc3176]
+ -->
+ <para>
+ <xref linkend="guc-failover-require-consensus">の問題を修正しました。(Muhammad Usama)
+ </para>
+ <para>
+ Watchdogクラスタ全体のヘルスチェックパラメータの最大値に基づいて、フェイルオーバコマンドのタイムアウトを動的に設定するように修正しました。
+ </para>
+ <para>
+ Tatsuo Ishiiによってレビューおよびテストされました。
+ 議論: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-November/004228.html">[pgpool-hackers: 4227]</ulink>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>ドキュメント修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-19 [8e5f5eb]
+ -->
+ <para>
+ Doc: パフォーマンスセクションを強化しました。(Tatsuo Ishii)
+ </para>
+ <para>
+ 動的なプロセス管理について言及しました。
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-12-14 [5d5d4a2]
+ -->
+ <para>
+ Doc: Aurora設定例内のタイポを修正しました。(Tatsuo Ishii)
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-12-12 [83dcd83]
+ -->
+ <para>
+ Doc: 動的なプロセス管理ドキュメントを強化しました。(Tatsuo Ishii)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>回帰テスト修正</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-17 [2985853]
+ -->
+ <para>
+ 環境変数を使ってPGPOOLDIRを定義できるようにしました。
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=766">bug 766</ulink>) (Bo Peng)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-4-0">
<title>リリース 4.4.0</title>
<note>
</itemizedlist>
</sect2>
+ <sect2>
+ <title>バグ修正</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ このリリースでは、<productname>Pgpool-II</productname> 4.3.4と同じバグ修正がすでに適用されています。
+ これらの修正の詳細については、<xref linkend="release-4-3-4">を参照してください。
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
<sect2>
<title>ドキュメントの変更</title>
<itemizedlist>
<!-- doc/src/sgml/release-3.7.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-3-7-26">
+ <title>Release 3.7.26</title>
+ <note>
+ <title>Release Date</title>
+ <simpara>2022-12-22</simpara>
+ </note>
+
+ <sect2>
+ <title>Changes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2022-12-03 [bcea238]
+ -->
+ <para>
+ Downgrade LOG messages "new IPC connection received" to DEBUG1.
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=775">bug 775</ulink>) (Bo Peng)
+ </para>
+ <para>
+ It is a normal messages and should not be logged as LOG.
+ Patch is created by pstef and reviewed by Bo Peng.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Bug fixes</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-09-23 [50f0285]
+ -->
+ <para>
+ Fix rare segfaults in <command>pcp_proc_info</command>, <command>SHOW pool_pools</command>
+ and <command>SHOW pool_processes</command>. (Tatsuo Ishii)
+ </para>
+ <para>
+ The segfaults were in get_pools() and get_processes(). They first
+ extracted pid of particular process info slot on shared memory then
+ searched the slot again by using pid as the key. Because these steps
+ were not protected by any locking, it was possible that the search
+ using the pid failed and returned NULL if the process id is
+ overwritten by pgpool parent which is responsible for forking new
+ child process after the process exiting. As a result any subsequent
+ reference to the NULL pointer generated segfaults.
+ </para>
+ <para>
+ Solution is, first get the pointer to the process info slot then
+ extract the process id member from the pointer. This way, still
+ concurrent updating to the shared memory info by the parent process is
+ possible (which may lead to strange results in the output) but at
+ least we can avoid segfaults.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-12 [7b288c6]
+ -->
+ <para>
+ Fix to not allow Unix-domain socket path with invalid length. (Masaya Kawamoto)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Documents</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-10-07 [0acb52b]
+ -->
+ <para>
+ Doc: enhance description about memqcache_method. (Tatsuo Ishii)
+ </para>
+ <para>
+ Add explanation which method should be used.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-08-28 [4551ef6]
+ -->
+ <para>
+ Doc: mention that health check process may use SSL. (Tatsuo Ishii)
+ </para>
+ <para>
+ Also mention that streaming replication check may use SSL too.
+ This should have been added since 2010.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-August/004188.html">[pgpool-hackers: 4187]</ulink>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Regression Tests</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-17 [2985853]
+ -->
+ <para>
+ Allow to define PGPOOLDIR using environment variable.
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=766">bug 766</ulink>) (Bo Peng)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-3-7-25">
<title>Release 3.7.25</title>
<note>
<!-- doc/src/sgml/release-4.0.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-0-21">
+ <title>Release 4.0.21</title>
+ <note>
+ <title>Release Date</title>
+ <simpara>2022-12-22</simpara>
+ </note>
+
+ <sect2>
+ <title>Changes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2022-12-03 [bcea238]
+ -->
+ <para>
+ Downgrade LOG messages "new IPC connection received" to DEBUG1.
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=775">bug 775</ulink>) (Bo Peng)
+ </para>
+ <para>
+ It is a normal messages and should not be logged as LOG.
+ Patch is created by pstef and reviewed by Bo Peng.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Bug fixes</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-20 [7bc3176]
+ -->
+ <para>
+ Fix issue with <xref linkend="guc-failover-require-consensus">. (Muhammad Usama)
+ </para>
+ <para>
+ The fix is to dynamically set the failover command timeout based on the maximum
+ value of health check parameters across the watchdog cluster.
+ </para>
+ <para>
+ Reviewed and tested by Tatsuo Ishii.
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-November/004228.html">[pgpool-hackers: 4227]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-11-24 [77fdaca]
+ -->
+ <para>
+ Fix not to print warnings of use of backslashes in parser. (Tatsuo Ishii)
+ </para>
+ <para>
+ When <varname>standard_conforming_strings = off</varname> and <varname>escape_string_warning = on</varname>,
+ <productname>PostgreSQL</productname> prints warnings if backslashes are used in string
+ literal. This is fine. But previously <productname>Pgpool-II</productname>'s parser printed the
+ same message too. This is redundant.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-27 [573b84b]
+ -->
+ <para>
+ Deal with idle_session_timeout. (Tatsuo Ishii)
+ </para>
+ <para>
+ If <varname>idle_session_timeout</varname> (added in PostgreSQL 14) is enabled and the
+ timeout fires, followings happen:
+ <itemizedlist>
+ <listitem>
+ <para>
+ If failover_on_backend_error is on (the default), Pgpool-II will trigger failover.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>
+ If only one of PostgreSQL servers enables idle_session_timeout, Pgpool-II could hang.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ To deal with idle_session_timeout detect_idle_session_timeout_error()
+ is added to detect the error code for idle_session_timeout. If the
+ error is detected, Pgpool-II returns the error code to frondend as a
+ fatal error and disconnects the session. This is a similar fix
+ implemented for idle_in_transaction_session_timeout.
+ <ulink url="https://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=3f5986eee360f12e6a0bb77aa46f95abf5f6bc10">3f5986eee360f12e6a0bb77aa46f95abf5f6bc10</ulink>
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-October/004209.html">[pgpool-hackers: 4208]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-14 [963391b]
+ -->
+ <para>
+ Deal with SSL error SSL_ERROR_ZERO_RETURN. (Tatsuo Ishii)
+ </para>
+ <para>
+ Previously this caused failover, which was actually unnecessary because
+ it means the server is just going to close the connection.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2022-September/008425.html">[pgpool-general: 8366]</ulink>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-September/004194.html">[pgpool-hackers: 4193]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-01 [c360057]
+ -->
+ <para>
+ Fix: Setting memory cache size greater than 2GB causes a segfault. (Muhammad Usama)
+ </para>
+ <para>
+ The problem was in the block_address() function that returns the memory address
+ for a given cache block, It was using 32bit integers to calculate the offset of
+ the block within the shared memory space that is only good until the 2GB limit.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-23 [50f0285]
+ -->
+ <para>
+ Fix rare segfaults in <command>pcp_proc_info</command>, <command>SHOW pool_pools</command>
+ and <command>SHOW pool_processes</command>. (Tatsuo Ishii)
+ </para>
+ <para>
+ The segfaults were in get_pools() and get_processes(). They first
+ extracted pid of particular process info slot on shared memory then
+ searched the slot again by using pid as the key. Because these steps
+ were not protected by any locking, it was possible that the search
+ using the pid failed and returned NULL if the process id is
+ overwritten by pgpool parent which is responsible for forking new
+ child process after the process exiting. As a result any subsequent
+ reference to the NULL pointer generated segfaults.
+ </para>
+ <para>
+ Solution is, first get the pointer to the process info slot then
+ extract the process id member from the pointer. This way, still
+ concurrent updating to the shared memory info by the parent process is
+ possible (which may lead to strange results in the output) but at
+ least we can avoid segfaults.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-12 [7b288c6]
+ -->
+ <para>
+ Fix to not allow Unix-domain socket path with invalid length. (Masaya Kawamoto)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Documents</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-10-07 [0acb52b]
+ -->
+ <para>
+ Doc: enhance description about memqcache_method. (Tatsuo Ishii)
+ </para>
+ <para>
+ Add explanation which method should be used.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-08-28 [4551ef6]
+ -->
+ <para>
+ Doc: mention that health check process may use SSL. (Tatsuo Ishii)
+ </para>
+ <para>
+ Also mention that streaming replication check may use SSL too.
+ This should have been added since 2010.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-August/004188.html">[pgpool-hackers: 4187]</ulink>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Regression Tests</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-17 [2985853]
+ -->
+ <para>
+ Allow to define PGPOOLDIR using environment variable.
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=766">bug 766</ulink>) (Bo Peng)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-0-20">
<title>Release 4.0.20</title>
<note>
<!-- doc/src/sgml/release-4.1.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-1-14">
+ <title>Release 4.1.14</title>
+ <note>
+ <title>Release Date</title>
+ <simpara>2022-12-22</simpara>
+ </note>
+
+ <sect2>
+ <title>Changes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2022-12-03 [bcea238]
+ -->
+ <para>
+ Downgrade LOG messages "new IPC connection received" to DEBUG1.
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=775">bug 775</ulink>) (Bo Peng)
+ </para>
+ <para>
+ It is a normal messages and should not be logged as LOG.
+ Patch is created by pstef and reviewed by Bo Peng.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Bug fixes</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-20 [7bc3176]
+ -->
+ <para>
+ Fix issue with <xref linkend="guc-failover-require-consensus">. (Muhammad Usama)
+ </para>
+ <para>
+ The fix is to dynamically set the failover command timeout based on the maximum
+ value of health check parameters across the watchdog cluster.
+ </para>
+ <para>
+ Reviewed and tested by Tatsuo Ishii.
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-November/004228.html">[pgpool-hackers: 4227]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-11-24 [77fdaca]
+ -->
+ <para>
+ Fix not to print warnings of use of backslashes in parser. (Tatsuo Ishii)
+ </para>
+ <para>
+ When <varname>standard_conforming_strings = off</varname> and <varname>escape_string_warning = on</varname>,
+ <productname>PostgreSQL</productname> prints warnings if backslashes are used in string
+ literal. This is fine. But previously <productname>Pgpool-II</productname>'s parser printed the
+ same message too. This is redundant.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-27 [573b84b]
+ -->
+ <para>
+ Deal with idle_session_timeout. (Tatsuo Ishii)
+ </para>
+ <para>
+ If <varname>idle_session_timeout</varname> (added in PostgreSQL 14) is enabled and the
+ timeout fires, followings happen:
+ <itemizedlist>
+ <listitem>
+ <para>
+ If failover_on_backend_error is on (the default), Pgpool-II will trigger failover.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>
+ If only one of PostgreSQL servers enables idle_session_timeout, Pgpool-II could hang.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ To deal with idle_session_timeout detect_idle_session_timeout_error()
+ is added to detect the error code for idle_session_timeout. If the
+ error is detected, Pgpool-II returns the error code to frondend as a
+ fatal error and disconnects the session. This is a similar fix
+ implemented for idle_in_transaction_session_timeout.
+ <ulink url="https://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=3f5986eee360f12e6a0bb77aa46f95abf5f6bc10">3f5986eee360f12e6a0bb77aa46f95abf5f6bc10</ulink>
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-October/004209.html">[pgpool-hackers: 4208]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-14 [963391b]
+ -->
+ <para>
+ Deal with SSL error SSL_ERROR_ZERO_RETURN. (Tatsuo Ishii)
+ </para>
+ <para>
+ Previously this caused failover, which was actually unnecessary because
+ it means the server is just going to close the connection.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2022-September/008425.html">[pgpool-general: 8366]</ulink>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-September/004194.html">[pgpool-hackers: 4193]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-01 [c360057]
+ -->
+ <para>
+ Fix: Setting memory cache size greater than 2GB causes a segfault. (Muhammad Usama)
+ </para>
+ <para>
+ The problem was in the block_address() function that returns the memory address
+ for a given cache block, It was using 32bit integers to calculate the offset of
+ the block within the shared memory space that is only good until the 2GB limit.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-23 [50f0285]
+ -->
+ <para>
+ Fix rare segfaults in <command>pcp_proc_info</command>, <command>SHOW pool_pools</command>
+ and <command>SHOW pool_processes</command>. (Tatsuo Ishii)
+ </para>
+ <para>
+ The segfaults were in get_pools() and get_processes(). They first
+ extracted pid of particular process info slot on shared memory then
+ searched the slot again by using pid as the key. Because these steps
+ were not protected by any locking, it was possible that the search
+ using the pid failed and returned NULL if the process id is
+ overwritten by pgpool parent which is responsible for forking new
+ child process after the process exiting. As a result any subsequent
+ reference to the NULL pointer generated segfaults.
+ </para>
+ <para>
+ Solution is, first get the pointer to the process info slot then
+ extract the process id member from the pointer. This way, still
+ concurrent updating to the shared memory info by the parent process is
+ possible (which may lead to strange results in the output) but at
+ least we can avoid segfaults.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-12 [7b288c6]
+ -->
+ <para>
+ Fix to not allow Unix-domain socket path with invalid length. (Masaya Kawamoto)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Documents</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-10-07 [0acb52b]
+ -->
+ <para>
+ Doc: enhance description about memqcache_method. (Tatsuo Ishii)
+ </para>
+ <para>
+ Add explanation which method should be used.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-08-28 [4551ef6]
+ -->
+ <para>
+ Doc: mention that health check process may use SSL. (Tatsuo Ishii)
+ </para>
+ <para>
+ Also mention that streaming replication check may use SSL too.
+ This should have been added since 2010.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-August/004188.html">[pgpool-hackers: 4187]</ulink>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Regression Tests</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-17 [2985853]
+ -->
+ <para>
+ Allow to define PGPOOLDIR using environment variable.
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=766">bug 766</ulink>) (Bo Peng)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-1-13">
<title>Release 4.1.13</title>
<note>
<!-- doc/src/sgml/release-4.2.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-2-11">
+ <title>Release 4.2.11</title>
+ <note>
+ <title>Release Date</title>
+ <simpara>2022-12-22</simpara>
+ </note>
+
+ <sect2>
+ <title>Changes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2022-12-03 [bcea238]
+ -->
+ <para>
+ Downgrade LOG messages "new IPC connection received" to DEBUG1.
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=775">bug 775</ulink>) (Bo Peng)
+ </para>
+ <para>
+ It is a normal messages and should not be logged as LOG.
+ Patch is created by pstef and reviewed by Bo Peng.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Bug fixes</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-20 [7bc3176]
+ -->
+ <para>
+ Fix issue with <xref linkend="guc-failover-require-consensus">. (Muhammad Usama)
+ </para>
+ <para>
+ The fix is to dynamically set the failover command timeout based on the maximum
+ value of health check parameters across the watchdog cluster.
+ </para>
+ <para>
+ Reviewed and tested by Tatsuo Ishii.
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-November/004228.html">[pgpool-hackers: 4227]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-11-24 [77fdaca]
+ -->
+ <para>
+ Fix not to print warnings of use of backslashes in parser. (Tatsuo Ishii)
+ </para>
+ <para>
+ When <varname>standard_conforming_strings = off</varname> and <varname>escape_string_warning = on</varname>,
+ <productname>PostgreSQL</productname> prints warnings if backslashes are used in string
+ literal. This is fine. But previously <productname>Pgpool-II</productname>'s parser printed the
+ same message too. This is redundant.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-27 [573b84b]
+ -->
+ <para>
+ Deal with idle_session_timeout. (Tatsuo Ishii)
+ </para>
+ <para>
+ If <varname>idle_session_timeout</varname> (added in PostgreSQL 14) is enabled and the
+ timeout fires, followings happen:
+ <itemizedlist>
+ <listitem>
+ <para>
+ If failover_on_backend_error is on (the default), Pgpool-II will trigger failover.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>
+ If only one of PostgreSQL servers enables idle_session_timeout, Pgpool-II could hang.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ To deal with idle_session_timeout detect_idle_session_timeout_error()
+ is added to detect the error code for idle_session_timeout. If the
+ error is detected, Pgpool-II returns the error code to frondend as a
+ fatal error and disconnects the session. This is a similar fix
+ implemented for idle_in_transaction_session_timeout.
+ <ulink url="https://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=3f5986eee360f12e6a0bb77aa46f95abf5f6bc10">3f5986eee360f12e6a0bb77aa46f95abf5f6bc10</ulink>
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-October/004209.html">[pgpool-hackers: 4208]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-14 [963391b]
+ -->
+ <para>
+ Deal with SSL error SSL_ERROR_ZERO_RETURN. (Tatsuo Ishii)
+ </para>
+ <para>
+ Previously this caused failover, which was actually unnecessary because
+ it means the server is just going to close the connection.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2022-September/008425.html">[pgpool-general: 8366]</ulink>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-September/004194.html">[pgpool-hackers: 4193]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-01 [c360057]
+ -->
+ <para>
+ Fix: Setting memory cache size greater than 2GB causes a segfault. (Muhammad Usama)
+ </para>
+ <para>
+ The problem was in the block_address() function that returns the memory address
+ for a given cache block, It was using 32bit integers to calculate the offset of
+ the block within the shared memory space that is only good until the 2GB limit.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-23 [50f0285]
+ -->
+ <para>
+ Fix rare segfaults in <command>pcp_proc_info</command>, <command>SHOW pool_pools</command>
+ and <command>SHOW pool_processes</command>. (Tatsuo Ishii)
+ </para>
+ <para>
+ The segfaults were in get_pools() and get_processes(). They first
+ extracted pid of particular process info slot on shared memory then
+ searched the slot again by using pid as the key. Because these steps
+ were not protected by any locking, it was possible that the search
+ using the pid failed and returned NULL if the process id is
+ overwritten by pgpool parent which is responsible for forking new
+ child process after the process exiting. As a result any subsequent
+ reference to the NULL pointer generated segfaults.
+ </para>
+ <para>
+ Solution is, first get the pointer to the process info slot then
+ extract the process id member from the pointer. This way, still
+ concurrent updating to the shared memory info by the parent process is
+ possible (which may lead to strange results in the output) but at
+ least we can avoid segfaults.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-12 [7b288c6]
+ -->
+ <para>
+ Fix to not allow Unix-domain socket path with invalid length. (Masaya Kawamoto)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Documents</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-14 [5d5d4a2]
+ -->
+ <para>
+ Doc: fix typo in Aurora example. (Tatsuo Ishii)
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-07 [0acb52b]
+ -->
+ <para>
+ Doc: enhance description about memqcache_method. (Tatsuo Ishii)
+ </para>
+ <para>
+ Add explanation which method should be used.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-08-28 [4551ef6]
+ -->
+ <para>
+ Doc: mention that health check process may use SSL. (Tatsuo Ishii)
+ </para>
+ <para>
+ Also mention that streaming replication check may use SSL too.
+ This should have been added since 2010.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-August/004188.html">[pgpool-hackers: 4187]</ulink>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Regression Tests</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-17 [2985853]
+ -->
+ <para>
+ Allow to define PGPOOLDIR using environment variable.
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=766">bug 766</ulink>) (Bo Peng)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-2-10">
<title>Release 4.2.10</title>
<note>
<!-- doc/src/sgml/release-4.3.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-3-4">
+ <title>Release 4.3.4</title>
+ <note>
+ <title>Release Date</title>
+ <simpara>2022-12-22</simpara>
+ </note>
+
+ <sect2>
+ <title>Changes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2022-12-03 [bcea238]
+ -->
+ <para>
+ Downgrade LOG messages "new IPC connection received" to DEBUG1.
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=775">bug 775</ulink>) (Bo Peng)
+ </para>
+ <para>
+ It is a normal messages and should not be logged as LOG.
+ Patch is created by pstef and reviewed by Bo Peng.
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Bug fixes</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-20 [7bc3176]
+ -->
+ <para>
+ Fix issue with <xref linkend="guc-failover-require-consensus">. (Muhammad Usama)
+ </para>
+ <para>
+ The fix is to dynamically set the failover command timeout based on the maximum
+ value of health check parameters across the watchdog cluster.
+ </para>
+ <para>
+ Reviewed and tested by Tatsuo Ishii.
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-November/004228.html">[pgpool-hackers: 4227]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-11-25 [b7b5bae]
+ -->
+ <para>
+ Fix ROLLBACK TO command to work in aborted transaction. (Tatsuo Ishii)
+ </para>
+ <para>
+ Commit: <ulink url="https://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=eea522ebfcf791a623e865deaa1aa6fb59e3c50b">eea522ebfcf791a623e865deaa1aa6fb59e3c50b</ulink>
+ fixed some cases in aborted transaction so that SQL commands except
+ COMMIT/ROLLBACK are not forwarded to backend. But it missed ROLLBACK
+ TO command. As a result even if ROLLBACK TO command is issued, the
+ command was not forwarded to backend and the transaction keeps on in
+ aborted state.
+ Back patched through 4.3 which the commit was brought in.
+ Also add a test case for ROLLBACK TO to test 078.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-general-jp/2022-November/001715.html">[pgpool-general-jp: 1716]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-11-24 [77fdaca]
+ -->
+ <para>
+ Fix not to print warnings of use of backslashes in parser. (Tatsuo Ishii)
+ </para>
+ <para>
+ When <varname>standard_conforming_strings = off</varname> and <varname>escape_string_warning = on</varname>,
+ <productname>PostgreSQL</productname> prints warnings if backslashes are used in string
+ literal. This is fine. But previously <productname>Pgpool-II</productname>'s parser printed the
+ same message too. This is redundant.
+ </para>
+ </listitem>
+
+
+ <listitem>
+ <!--
+ 2022-10-27 [573b84b]
+ -->
+ <para>
+ Deal with idle_session_timeout. (Tatsuo Ishii)
+ </para>
+ <para>
+ If <varname>idle_session_timeout</varname> (added in PostgreSQL 14) is enabled and the
+ timeout fires, followings happen:
+ <itemizedlist>
+ <listitem>
+ <para>
+ If failover_on_backend_error is on (the default), Pgpool-II will trigger failover.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <itemizedlist>
+ <listitem>
+ <para>
+ If only one of PostgreSQL servers enables idle_session_timeout, Pgpool-II could hang.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ To deal with idle_session_timeout detect_idle_session_timeout_error()
+ is added to detect the error code for idle_session_timeout. If the
+ error is detected, Pgpool-II returns the error code to frondend as a
+ fatal error and disconnects the session. This is a similar fix
+ implemented for idle_in_transaction_session_timeout.
+ <ulink url="https://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=3f5986eee360f12e6a0bb77aa46f95abf5f6bc10">3f5986eee360f12e6a0bb77aa46f95abf5f6bc10</ulink>
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-October/004209.html">[pgpool-hackers: 4208]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-14 [963391b]
+ -->
+ <para>
+ Deal with SSL error SSL_ERROR_ZERO_RETURN. (Tatsuo Ishii)
+ </para>
+ <para>
+ Previously this caused failover, which was actually unnecessary because
+ it means the server is just going to close the connection.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2022-September/008425.html">[pgpool-general: 8366]</ulink>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-September/004194.html">[pgpool-hackers: 4193]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-01 [c360057]
+ -->
+ <para>
+ Fix: Setting memory cache size greater than 2GB causes a segfault. (Muhammad Usama)
+ </para>
+ <para>
+ The problem was in the block_address() function that returns the memory address
+ for a given cache block, It was using 32bit integers to calculate the offset of
+ the block within the shared memory space that is only good until the 2GB limit.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-23 [50f0285]
+ -->
+ <para>
+ Fix rare segfaults in <command>pcp_proc_info</command>, <command>SHOW pool_pools</command>
+ and <command>SHOW pool_processes</command>. (Tatsuo Ishii)
+ </para>
+ <para>
+ The segfaults were in get_pools() and get_processes(). They first
+ extracted pid of particular process info slot on shared memory then
+ searched the slot again by using pid as the key. Because these steps
+ were not protected by any locking, it was possible that the search
+ using the pid failed and returned NULL if the process id is
+ overwritten by pgpool parent which is responsible for forking new
+ child process after the process exiting. As a result any subsequent
+ reference to the NULL pointer generated segfaults.
+ </para>
+ <para>
+ Solution is, first get the pointer to the process info slot then
+ extract the process id member from the pointer. This way, still
+ concurrent updating to the shared memory info by the parent process is
+ possible (which may lead to strange results in the output) but at
+ least we can avoid segfaults.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-09-12 [7b288c6]
+ -->
+ <para>
+ Fix to not allow Unix-domain socket path with invalid length. (Masaya Kawamoto)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Documents</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-14 [5d5d4a2]
+ -->
+ <para>
+ Doc: fix typo in Aurora example. (Tatsuo Ishii)
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-11-22 [eb99b63]
+ -->
+ <para>
+ Doc: enhance restrictions section. (Tatsuo Ishii)
+ </para>
+ <para>
+ Mention that failover_on_backend_shutdown can be used to avoid
+ unwanted failover caused by pg_terminate_backend.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-10-07 [0acb52b]
+ -->
+ <para>
+ Doc: enhance description about memqcache_method. (Tatsuo Ishii)
+ </para>
+ <para>
+ Add explanation which method should be used.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-08-28 [4551ef6]
+ -->
+ <para>
+ Doc: mention that health check process may use SSL. (Tatsuo Ishii)
+ </para>
+ <para>
+ Also mention that streaming replication check may use SSL too.
+ This should have been added since 2010.
+ </para>
+ <para>
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-August/004188.html">[pgpool-hackers: 4187]</ulink>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Regression Tests</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-17 [2985853]
+ -->
+ <para>
+ Allow to define PGPOOLDIR using environment variable.
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=766">bug 766</ulink>) (Bo Peng)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-3-3">
<title>Release 4.3.3</title>
<note>
<!-- doc/src/sgml/release-4.4.sgml -->
<!-- See header comment in release.sgml about typical markup -->
+<sect1 id="release-4-4-1">
+ <title>Release 4.4.1</title>
+ <note>
+ <title>Release Date</title>
+ <simpara>2022-12-22</simpara>
+ </note>
+
+ <sect2>
+ <title>Changes</title>
+ <itemizedlist>
+ <listitem>
+ <!--
+ 2022-12-16 [6311565]
+ -->
+ <para>
+ Downgrade streaming replication LOG message "standby_delay: 54" to DEBUG1. (Tatsuo Ishii)
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-12-12 [dfcc21e]
+ -->
+ <para>
+ Downgrade LOG messages "we have hit the ceiling" to DEBUG5. (Tatsuo Ishii)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Bug fixes</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-20 [f6cbfe2]
+ -->
+ <para>
+ Fix time stamp rewrite bug. (Tatsuo Ishii)
+ </para>
+ <para>
+ In <productname>Pgpool-II</productname> 4.4 outfuncs module, boolean constant was ignored and turned into
+ an empty string in the rewritten query string, which caused syntax errors.
+ </para>
+ <para>
+ This issue is reported by Michiel van Leening.
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-general/2022-December/008581.html">[pgpool-general: 8521]</ulink>
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-12-20 [7bc3176]
+ -->
+ <para>
+ Fix issue with <xref linkend="guc-failover-require-consensus">. (Muhammad Usama)
+ </para>
+ <para>
+ The fix is to dynamically set the failover command timeout based on the maximum
+ value of health check parameters across the watchdog cluster.
+ </para>
+ <para>
+ Reviewed and tested by Tatsuo Ishii.
+ Discussion: <ulink url="https://www.pgpool.net/pipermail/pgpool-hackers/2022-November/004228.html">[pgpool-hackers: 4227]</ulink>
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Documents</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-19 [8e5f5eb]
+ -->
+ <para>
+ Doc: enhance the performance section. (Tatsuo Ishii)
+ </para>
+ <para>
+ Mention about dynamic process management.
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-12-14 [5d5d4a2]
+ -->
+ <para>
+ Doc: fix typo in Aurora example. (Tatsuo Ishii)
+ </para>
+ </listitem>
+
+ <listitem>
+ <!--
+ 2022-12-12 [83dcd83]
+ -->
+ <para>
+ Doc: enhance dynamic process management document. (Tatsuo Ishii)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Regression Tests</title>
+ <itemizedlist>
+
+ <listitem>
+ <!--
+ 2022-12-17 [2985853]
+ -->
+ <para>
+ Allow to define PGPOOLDIR using environment variable.
+ (<ulink url="https://www.pgpool.net/mantisbt/view.php?id=766">bug 766</ulink>) (Bo Peng)
+ </para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+</sect1>
+
<sect1 id="release-4-4-0">
<title>Release 4.4.0</title>
<note>
</itemizedlist>
</sect2>
+ <sect2>
+ <title>Bug fixes</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ In this release same bug fixes as <productname>Pgpool-II</productname> 4.3.4 are
+ already applied. See <xref linkend="release-4-3-4"> for more details of those fixes.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
<sect2>
<title>Documentation changes</title>
<itemizedlist>