リリース 3.5.7

Pgpool-II 3.6.5 文書
前のページ | 上に戻る | 付録 A. リリースノート | 次のページ

# A.9. リリース 3.5.7

> リリース日: 2017-04-28

## A.9.1. 不具合修正

- Watchdogのソースコードのミスを修正し、いくつかのdebugメッセージを追加しました。(Muhammad Usama)

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

- watchdog 使用時に Pgpool-II 間でバックエンドの状態が一致しない不具合を修正しました。 (Bug 289) (Muhammad Usama)

- Watchdogによるスプリットブレインシナリオの処理を強化しました。(Muhammad Usama)

  watchdogクラスタを使用しmaster/coordinatorノードの再選出が呼び出されていました。その結果、すべてのノードがウォッチドッグネットワークに再結合する必要がありました。これはwatchdogクラスタ全体の再起動と本質的に同じでした。

  今回の修正では、master/coordinatorノードの候補は、次の基準で選択されるようになりました。

  (1) 2つのウォッチドッグノードがクラスタマスターであると主張している場合、エスカレーションを実行したマスターノードはマスター状態を保持し、他のノードはステップダウンするように要求されます。

  (2) 競合がノードのエスカレーション状況によって解決できない場合、クォーラムを保持するノードはマスター/コーディネータのままです。

  (3) 両方の候補のクォーラムステータスが同じ場合、接続されたアライブノードの数が多いノードが優先されます。

  (4) 最後に、上記3つでマスターノードを選出できなかった場合、古いマスター(長期間コーディネーターステータスを持つノード) はマスターのままです。

- 複数の並行コマンドを処理するためにwatchdog内部コマンドのメカニズムを強化しました。(Muhammad Usama)

- コードの互換性のためにboolエンコードおよびデコード関数をJSONフレームワークに追加します。(Muhammad Usama)

- リグレッションの失敗を防ぐために、サポートされていないJavaメソッドを新しいJDBCドライバでコメントアウトしました。(Tatsu Ishii)

- `parse_before_bind()` のログメッセージを debug1 にダウングレードしました。(Tatsuo Ishii)

- coverity警告を修正しました。(Muhammad Usama, Tatsuo Ishii)

- [pgpool-general: 5396] pam ldapが失敗する不具合を修正しました。(Muhammad Usama)

- `SHOW`コマンドを読み込みクエリの一つとして認識するようにしました。(Tatsuo Ishii)

  ストリーミングレプリケーションモードでは、`SHOW`が発行されるとその後のSELECTは明示的なトランザクションでプライマリノードに送信されていました。この制限は不適切でした。また、parseコマンドがエラーを返すときに発生するハングアップを修正しました。

- コミットadcb636によって引き起こされたメモリリークの問題を修正しました。(Tatsuo Ishii)

  Commit adcb636では"pending message queue"を導入しました。メッセージを受信すると、情報がキューに追加され、オブジェクトのコピーが同時に作成されますが、オブジェクトを解放するのを忘れてしまいました。

  今回の修正では、新しい関数`pool_pending_message_free_pending_message()`を作成し、`pool_pending_message_add()`、`pool_pending_message_get()`および`pool_pending_message_pull_out()`の後に呼び出すように修正しました。

- ストリーミングレプリケーションモードで「kind mismatch」(またはそれに関連する)エラーが修正されました。 (Bug 271) (Tatsuo Ishii)

  このエラー原因はデータベースノードがPgpool-IIに送る応答の予測が誤っていたことです。以前使用した「sync map」の実装は弱く、予測に失敗することがありました。今回の修正では、送信されたすべてのメッセージをバックエンドに記録する"pending message queue"を導入しました。このキューの要素には、メッセージのタイプ(parse/bind/execute/describe/close/sync)、メッセージが送信されたデータベースノードの情報などが格納されます。これは単純なFIFOキューです。バックエンドからメッセージが到着すると、"pending message queue"の先頭を見れば、受信したメッセージの種類やデータベースノードを確実に予測できます。 メッセージを受信した後、この要素はキューから削除されます。

  一連のパッチをテストしてくれたSergey Kimさんに感謝します。

  詳細は Bug 271、 [pgpool-hackers: 2043] と [pgpool-hackers: 2140] をご参照下さい。

- [Service] が Type=forking に設定されている場合、Pgpool-II 3.6.2 が systemd によって強制終了されていた不具合を修正しました。 (Bug 296) (Muhammad Usama)

前のページ | ホーム | 次のページ
リリース 3.5.8 | 上に戻る | リリース 3.5.6