# リリース 3.2.21

## リリース日

2017-07-11

## 不具合修正

- [pgpool-hackers: 2390] によって報告されたデーモンモードでの相対パスの問題を修正しました。(Muhammad Usama)

- PostgreSQL 10の変更に合わせて以下の関数名を修正しました。(Tatsuo Ishii)

          pg_current_wal_location     -> pg_current_wal_lsn
          pg_last_wal_replay_location -> pg_last_wal_replay_lsn

- node.jsを使用する場合に発生するクエリキャッシュのハングアップの問題を修正しました。(Tatsuo Ishii)

  詳細は[pgpool-general: 5511]を参照してください。

- PostgreSQL 10のストリーミングレプリケーションの遅延チェックに関する変更に合わせて修正しました。(Tatsuo Ishii)

- クエリキャッシュのメモリリークを修正しました。(Tatsuo Ishii)

  oidがないクエリ（`BEGIN`、`CHECKPOINT`、`VACUUM`など）の場合キャッシュバッファがクリアされるべきでしたが、されていませんでした。

## リリース 3.2.20

## リリース日

2017-04-28

## 不具合修正

- pool_hba.confファイルのリロード時に発生するエラーを修正しました。(Bug 299) (Muhammad Usama)

## リリース 3.2.19

## リリース日

2017-03-17

## 不具合修正

- pcp_promote_nodeを使ってノード0の昇格に失敗する不具合を修正しました。(Yugo Nagata)

  失敗したときのエラーメッセージは以下のとおりです。

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

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

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

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

- READMEに最新リリースノートへのリンクを追加しました。(Bo Peng)

- 特定の場合に、Pgpool-IIが終了したときに共有メモリセグメントを解放しない不具合を修正しました。 (bug 272) (Tatsuo Ishii)

- シグナルハンドラがpool_log/pool_errorを呼び出さないように修正しました。(Tatsuo Ishii)

  詳しくは[pgpool-hackers: 1950]をご参照ください。

- 特定に場合にwatchdogがデエスカレーションに失敗する不具合を修正しました。 (bug 249)(Muhammad Usama)

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

- authentication_timeoutが有効な場合、connection_life_timeが正しく処理されない不具合を修正しました。(Yugo Nagata)

- クライアント接続直後に発生しうる認証タイムアウトを修正しました。(Yugo Nagata)

## リリース 3.2.18

## リリース日

2016-12-26

## 不具合修正

- クエリキャッシュが有効になっている場合に、時々発生しうるセグメンテーション違反を修正しました。(bug 263) (Tatsuo Ishii)

- ネイティブレプリケーションモード以外の場合、エラーが発生した場合は、クエリをキャンセルしないように修正しました。(Tatsuo Ishii)

  本来は一貫性を維持するためにキャンセルされるようになっていましたが、ネイティブレプリケーションモード以外の場合ではキャンセルする必要がないので、修正しました。

- MD5 salt を生成するときに、`random()` を使用しないように修正しました。(Tatsuo Ishii)

  `random()`関数はセキュリティ関連のアプリケーションで使用すべきではありません。 `random()`の代わりにPostgreSQLの`PostmasterRandom()` 使用するように変更しました。

- クエリキャッシュが有効な場合、sync メッセージが廃棄されないよう修正しました。(Tatsuo Ishii)