<!-- doc/src/sgml/release-3.4.sgml -->
<!-- See header comment in release.sgml about typical markup -->

<sect1 id="release-3-4-12">
  <title>リリース 3.4.12</title>

  <note>
    <title>リリース日</title>
    <simpara>2017-07-11</simpara>
  </note>

  <sect2>
    <title>不具合修正</title>

    <itemizedlist>
    <listitem>
    <!--
    2017-06-29 [0a1b675]
    -->
    <para>
    <productname>PostgreSQL</productname>の<productname>MemoryManager API</productname>に関する最新の変更をインポートしました。(Muhammad Usama)
    </para>
    </listitem>

    <listitem>
    <!--
    2017-06-21 [8991f6e]
    -->
    <para>
    <ulink url="http://www.sraoss.jp/pipermail/pgpool-hackers/2017-June/002390.html">[pgpool-hackers: 2390]</ulink> によって報告されたデーモンモードでの相対パスの問題を修正しました。(Muhammad Usama)
    </para>
    </listitem>

    <listitem>
    <!--
    2017-06-19 [7b90252]
    -->
    <para>
    <productname>PostgreSQL</productname> 10の変更に合わせて以下の関数名を修正しました。(Tatsuo Ishii)
    </para>
    <programlisting>
    pg_current_wal_location     -> pg_current_wal_lsn
    pg_last_wal_replay_location -> pg_last_wal_replay_lsn
    </programlisting>

    </listitem>

    <listitem>
    <!--
    2017-05-31 [4d2281e]
    -->
    <para>
    <productname>node.js</productname>を使用する場合に発生するクエリキャッシュのハングアップの問題を修正しました。(Tatsuo Ishii)
    </para>
    <para>
    詳細は<ulink url="http://www.pgpool.net/pipermail/pgpool-general/2017-May/005569.html">[pgpool-general: 5511]</ulink>を参照してください。
    </para>
    </listitem>

    <listitem>
    <!--
    2017-05-28 [d313520]
    -->
    <para>
    <productname>PostgreSQL</productname> 10のストリーミングレプリケーションの遅延チェックに関する変更に合わせて修正しました。(Tatsuo Ishii)
    </para>
    </listitem>

    <listitem>
    <!--
    2017-05-27 [b755fd4]
    -->
    <para>
    クエリキャッシュのメモリリークを修正しました。(Tatsuo Ishii)
    </para>
    <para>
    oidがないクエリ（<command>BEGIN</command>、<command>CHECKPOINT</command>、<command>VACUUM</command>など）の場合キャッシュバッファがクリアされるべきでしたが、されていませんでした。
    </para>
    </listitem>

    <listitem>
    <!--
    2017-05-10 [e4ce880]
    -->
    <para>
    滅多に発生しない<productname>Pgpool-II</productname>起動時のバグを修正しました。(Tatsuo Ishii)
    </para>
    <para>
    プライマリノードが見つかる前にフェールオーバーの要求が受け入れられる可能性がありました。
    これにより、<productname>Pgpool-II</productname>は奇妙な状態に陥ります。障害が発生したノードはプライマリノードの場合、
    プライマリノードは存在しないと判断していました。（既存のスタンバイが昇格し新しいプライマリノードになった場合でも）
    </para>
    <para>
    詳細は<ulink url="http://www.pgpool.net/pipermail/pgpool-hackers/2017-May/002321.html">[pgpool-hackers: 2321]</ulink>  をご参照下さい。
    </para>
    </listitem>
    </itemizedlist>
  </sect2>

</sect1>

<sect1 id="release-3-4-11">
  <title>リリース 3.4.11</title>

  <note>
    <title>リリース日</title>
    <simpara>2017-04-28</simpara>
  </note>

  <sect2>
    <title>不具合修正</title>

    <itemizedlist>
    <listitem>
    <!--
    2017-04-12 [60ae422]
    -->
    <para>
     pool_hba.confファイルのリロード時に発生するエラーを修正しました。<ulink url="http://www.pgpool.net/mantisbt/view.php?id=299">(Bug 299)</ulink> (Muhammad Usama)
    </para>
    </listitem>

    <listitem>
    <!--
    2017-04-04 [877e7ad]
    -->
    <para>
     coverity警告を修正しました。(Muhammad Usama)
    </para>
    </listitem>

    <listitem>
    <!--
    2017-03-31 [6f25856]
    -->
    <para>
     <ulink url="http://www.sraoss.jp/pipermail/pgpool-general/2017-March/005454.html">[pgpool-general: 5396]</ulink>
        pam ldapが失敗する不具合を修正しました。(Muhammad Usama)
    </para>
    </listitem>

    <listitem>
    <!--
    2017-03-24 [1172e6c]
    -->
    <para>
    [Service] が Type=forking に設定されている場合、Pgpool-II 3.6.2 が systemd によって強制終了されていた不具合を修正しました。
    <ulink url="http://www.pgpool.net/mantisbt/view.php?id=296">(Bug 296)</ulink> (Muhammad Usama)
    </para>
    </listitem>

    </itemizedlist>

  </sect2>

</sect1>

<sect1 id="release-3-4-10">
  <title>リリース 3.4.10</title>

  <note>
    <title>リリース日</title>
    <simpara>2017-03-17</simpara>
  </note>

  <sect2>
    <title>不具合修正</title>

    <itemizedlist>

    <listitem>
    <!--
    2017-03-17 [ba1bcc3]
    -->
    <para>
    pgpool.serviceファイルに"Wants=network.target"を追加しました。
    (<ulink url="http://www.pgpool.net/mantisbt/view.php?id=294">bug 294</ulink>) (Bo Peng)
    </para>
    </listitem>

    <listitem>
    <!--
    2017-03-09 [1ddb7f1]
    -->
    <para>
 <link linkend="PCP-PROMOTE-NODE">pcp_promote_node</link>を使ってノード0の昇格に失敗する不具合を修正しました。(Yugo Nagata)
    </para>
    <para>
失敗したときのエラーメッセージは以下のとおりです。
    </para>

    <programlisting>
  FATAL: invalid pgpool mode for process recovery request
  DETAIL: specified node is already primary node, can't promote node id 0
    </programlisting>

    <para>
ストリーミングレプリケーションモードでは、<productname>Pgpool-II</productname>がプライマリノードを何らかの理由で「スタンバイ」とみなしていました。たとえば、<productname>Pgpool-II</productname>が起動中で、pg_ctl promoteを手動で実行したとき、<productname>Pgpool-II</productname>はプライマリノードが存在しないと認識します。
    </para>

    <para>
この状態の不一致は、pcp_promote_nodeコマンドによって直されるはずですが、昇格させたいノードがマスターノード（最初のアライブノード）である場合、上記のように失敗しました。
失敗した理由は次のとおりです。ステータスを変更する前に、pcp_promote_nodeコマンドがPRIMARY_NODE_IDのノードIDと比較することによって、指定されたノードが既にプライマリであるかどうかをチェックします。ただし、プライマリが存在しない場合<productname>Pgpool-II</productname>のビューでは、PRIMARY_NODE_IDが0に設定されます。これはMASTER_NODE_IDと同じです。したがって、マスタノードを昇格させるように指定する場合、pcp_promote_nodeはこのノードが既にプライマリであるとのエラーを返して終了しました。
    </para>

    <para>
これを修正するには、pcp_promote_nodeは指定したノードがプライマリーノードであるかどうかをチェックするとき、PRIMARY_NODE_IDではなくREAL_PRIMARY_NODE_IDを使うように修正しました。REAL_PRIMARY_NODE_IDはプライマリが存在しない場合、-1に設定されます。
    </para>
    </listitem>

    <listitem>
    <!--
      2017-02-28 [5b4f78c]
     -->
    <para>
READMEに最新リリースノートへのリンクを追加しました。(Bo Peng)
    </para>
    </listitem>

    <listitem>
    <!--
    2017-02-23 [7ed400b]
    -->
    <para>
特定の場合に、<productname>Pgpool-II</productname>が終了したときに共有メモリセグメントを解放しない不具合を修正しました。
(<ulink url="http://www.pgpool.net/mantisbt/view.php?id=272">bug 272</ulink>) (Tatsuo Ishii)
    </para>
    </listitem>

    <listitem>
    <!--
    2017-02-06 [8fa731a]
    -->
    <para>
ExecStopとExecReloadコマンドをsystemdサービス設定ファイルに追加しました。(Muhammad Usama)
    </para>
    </listitem>

    <listitem>
    <!--
    2017-01-27 [7512482]
    -->
    <para>
<function>wd_get_cmd</function>関数のバッファオーバーフローを修正しました。
(<ulink url="http://www.pgpool.net/mantisbt/view.php?id=280">bug 280</ulink>)(Muhammad Usama)
    </para>
    </listitem>

    <listitem>
    <!--
    2017-01-11 [29b61eb]
    -->
    <para>
シグナルハンドラがelog/ereportを呼び出さないように修正しました。(Tatsuo Ishii)
    </para>
    <para>
詳しくは<ulink url="http://www.pgpool.net/pipermail/pgpool-hackers/2016-December/001950.html">[pgpool-hackers: 1950]</ulink>をご参照ください。
    </para>
    </listitem>

    <listitem>
    <!--
    2017-01-10 [39d24e7]
    -->
    <para>
FreeBSDでlisten_addresses = '*'の場合、INETドメインソケットが作成できない不具合を修正しました。(bug 202)(Bo Peng)
    </para>
    </listitem>

    <listitem>
    <!--
    2017-01-04 [8598d5a]
    -->
    <para>
特定に場合にwatchdogがデエスカレーションに失敗する不具合を修正しました。
(<ulink url="http://www.pgpool.net/mantisbt/view.php?id=249">bug 249</ulink>)(Muhammad Usama)
    </para>

    <para>
WNOHANGオプションなしで<function>waitpid()</function>システムコールを使用するように修正しました。
    </para>
    </listitem>

    <listitem>
    <!--
    2017-01-04 [bd92a11]
    -->
    <para>
authentication_timeoutが有効な場合、connection_life_timeが正しく処理されない不具合を修正しました。(Yugo Nagata)
    </para>
    </listitem>

    <listitem>
    <!--
    2016-12-28 [afebadf]
    -->
    <para>
クライアント接続直後に発生しうる認証タイムアウトを修正しました。(Yugo Nagata)
    </para>
    </listitem>

    </itemizedlist>

  </sect2>

</sect1>


<sect1 id="release-3-4-9">
<!--
  <title>Release 3.4.9</title>
  -->
  <title>リリース 3.4.9</title>

  <note>
  <!--
    <title>Release Date</title>
    -->
    <title>リリース日</title>
    <simpara>2016-12-26</simpara>
  </note>

  <sect2>
  <!--
    <title>Bug fixes</title>
    -->
    <title>不具合修正</title>

    <itemizedlist>

      <listitem>
	<!--
	    2016-12-23 [f5e9a2a]
	  -->
	<para>
    <!--
      Tightening up the watchdog security. (Muhammad Usama)
    -->
watchdog のセキュリティを強化しました。(Muhammad Usama)
    </para>

    <para>
    <!--
      Now wd_authkey uses the HMAC SHA-256 hashing.
    -->
wd_authkeyは、HMAC SHA-256ハッシングを使用するようになりました。
	</para>
      </listitem>

      <listitem>
	<!--
	    2016-12-22 [79f1ba8]
	  -->
	<para>
	<!--
	  Add pgpool_adm extension. (Bo Peng)
    -->
<productname>Pgpool-II</productname>のRPM にpgpool_adm extension が含まれるように修正しました。(Bo Peng)
	</para>
      </listitem>

      <listitem>
	<!--
	    2016-12-20 [888ac16]
	  -->
	<para>
    <!--
	  Fix occasional segfault when query cache is enabled. (Tatsuo Ishii)
    -->
クエリキャッシュが有効になっている場合に、時々発生しうるセグメンテーション違反を修正しました。(bug 263) (Tatsuo Ishii)
	</para>
      </listitem>

      <listitem>
	<!--
	    2016-10-27 [1fe3ab1]
	  -->
	<para>
    <!--
	  Do not cancel a query when the query resulted in an error other than in native replication mode. (Tatsuo Ishii)
    -->
ネイティブレプリケーションモード以外の場合、エラーが発生した場合は、クエリをキャンセルしないように修正しました。(Tatsuo Ishii)
	</para>
	<para>
    <!--
	  It was intended to keep the consistency, but there's no point in other
	  than native replication mode.
      -->
本来は一貫性を維持するためにキャセルされるようになっていましたが、ネイティブレプリケーションモード以外の場合ではキャセルする必要がないので、修正しました。
	</para>
      </listitem>

      <listitem>
	<!--
	    2016-10-27 [46579d6]
	  -->
	<para>
    <!--
	  Remove obsoleted option "-c" in pgpool command. (Tatsuo Ishii)
      -->
pgpool コマンドで廃止されたオプション"-c"を削除しました。(Tatsuo Ishii)
	</para>
	<para>
    <!--
	  Also fix typo in the help message.
      -->
また、helpメッセージのタイポを修正しました。
	</para>
      </listitem>

      <listitem>
	<!--
	    2016-09-24 [e0d0bc2]
	  -->
	<para>
    <!--
	  Change the default value of search_primary_node_timeout from 10 to 300. (Tatsuo Ishii)
    -->
<xref linkend="guc-search-primary-node-timeout">のデフォルト値を10から300に変更しました。(Tatstuo Ishii)
	</para>
	<para>
    <!--
	  Prior default value 10 seconds is sometimes too short for a standby to
	  be promoted.
            -->
これまでのデフォルト値10秒は、スタンバイを昇格する際には小さすぎでした。
	</para>
      </listitem>

      <listitem>
	<!--
	    2016-09-21 [0409030]
	  -->
	<para>
    <!--
	  Fix the case when all backends are down then 1 node attached. (Tatsuo Ishii)
    -->
すべてのバックエンドがダウンした後に、1つのノードを復帰させる時の不具合が修正されました。(bug 248) (Tatsuo Ishii)
	</para>
	<para>
    <!--
	  When all backends are down, no connection is accepted. Then 1
	  PostgreSQL becomes up, and attach the node using pcp_attach_node. It
	  successfully finishes. However, when a new connection arrives, still
	  the connection is refused because pgpool child process looks into the
	  cached status, in which the recovered node is still in down status if
	  mode is streaming replication mode (native replication and other modes
	  are fine). Solution is, if all nodes are down, force to restart all
	  pgpool child.
      -->
すべてのノードがダウンすると、すべてのコネクションを受け付けなくなります。
その状態で1つの<productname>PostgreSQL</productname>が起動し、<command>pcp_attach_node</command>コマンドでそのノードを復帰させます。
そしてこのコマンドは成功しました。
しかし、新しい接続が拒否されました。
これは<productname>Pgpool-II</productname> の子プロセスがキャッシュされた古い情報を参照したのが原因でした。
ストリーミングレプリケーションモードでは、このキャッシュされた情報において、復帰させたノードの状態がdownのままでした。
（ネィティブレプリケーションモード、およびそれ以外のモードでは問題ありません）
解決法として、全ノードがダウンした場合、強制的に全 <productname>Pgpool-II</productname>子プロセスを再起動するようにしました。
	</para>
      </listitem>

      <listitem>
	<!--
	    2016-09-09 [85c813c]
	  -->
	<para>
    <!--
	  Do not use random() while generating MD5 salt. (Tatsuo Ishii)
    -->
MD5 salt を生成するときに、<function>random()</function> を使用しないように修正しました。(Tatsuo Ishii)
	</para>
	<para>
        <!--
        <function>random()</function> should not be used in security related applications.  To
        replace <function>random()</function>, import <function>PostmasterRandom()</function> from PostgreSQL.
        -->
<function>random()</function>関数はセキュリティ関連のアプリケーションで使用すべきではありません。
<function>random()</function>の代わりに<productname>PostgreSQL</productname>の<function>PostmasterRandom()</function> 使用するように変更しました。
	</para>
      </listitem>

      <listitem>
	<!--
	    2016-09-06 [f9f098f]
	  -->
	<para>
    <!--
	  Don't ignore sync message from frontend when query cache is enabled. (Tatsuo Ishii)
      -->
クエリキャッシュが有効な場合、sync メッセージが廃棄されないよう修正しました。(Tatsuo Ishii)
	</para>
      </listitem>

    </itemizedlist>

  </sect2>

</sect1>

