[pgpool-general-jp: 1502] Re: PRMからのインストールでregression test 011、012、013に失敗します

Tatsuo Ishii ishii @ sraoss.co.jp
2018年 2月 27日 (火) 11:10:30 JST


石井です。

> 平光と申します。
> お世話になっております。
> 
> お聞きしたい事があり、初めて投稿させて頂きます。
> 
> pgpool 3.7系のリリースに伴いRPMを評価する目的でpgpool-II 3.7.2をRPMか
> らインストールし、3.7.2のソースに含まれているregress.shを-m noinstall
> オプションを付けて実施したところ以下のテストで失敗してしまいます。
> 
> 環境:
> CentOS 7,4
> pgpool-II 3,7,2
> postgresql 10.2
> 
> ---
> $ ./regress.sh -p /usr/pgsql-10/bin -i /usr -m noinstall -j
> /tmp/postgresql-42.2.1.jar -s /var/run/postgresql
> not installing pgpool for the tests ...
> using pgpool-II at /usr
> ~省略~
> testing 011.watchdoc_quorum_failover...failed.
> testing 012.watchdog_failover_when_quorum_exists...failed.
> testing 013.watchdoc_test_failover_require_consensus...failed.
> ---
> 
> 失敗している箇所は先月の[pgpool-general-jp: 1479]で狩集様が質問されて
> いるものと同じでした。
> 
> なお、pgpool 3.6.2など3.7.0より前では上記の実施方法で全テストがokになっ
> ていました。
> 
> レグレッションテストのスクリプトを確認したところ「backend_down_request」
> ファイルを利用しているテストで失敗しているので
> 以下のコミットで3.7.0から追加されたデバッグ/テスト機能がRPMでインストー
> ルした場合利用できないため失敗していると推察しています。
> https://github.com/pgpool/pgpool2/commit/0f75428cf805bb4cf3127f8ea1470507da0d2c2a
> 
> 試しに同環境でソースから「make HEALTHCHECK_DEBUG=1」でデバッグ機能を有
> 効にしたバイナリを作成し、RPMで入れたバイナリと差し替えて実行してみた
> ところ前述のテストはokになりました。
> 
> RPMからインストールしたpgpoolに対してリグレッションテストを実行するに
> はどのようにすればよろしいでしょうか?
> もしくは、現在のリグレッションテストがRPMインストールには非対応という
> ことでしたら対応のご予定はあるのでしょうか。お教え頂けますと幸いです。

分析いただいたとおりですが、今のところHEALTHCHECK_DEBUGを有効にしたバ
イナリでないとregressionが全部は通らないので、RPMからインストールされ
たバイナリを使ってのregressionが一部が失敗してしまいます。

この機能を開発するにあたって、HEALTHCHECK_DEBUG相当の機能を設定ファイ
ルでon/offすることも考えたのですが、誤って設定ファイルでこの機能を有効
にした場合に、危険な動作になってしまう(フェイルオーバを引き起こせる脆
弱性)ので、あえてデバッグオプションにしました。

このあたりは考え方次第ですが、もし設定ファイルでこの機能のon/offを希望
される方が多い場合は、メジャーバージョンで取り込むことも考えられるので、
ご意見をいただければと思います。
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese:http://www.sraoss.co.jp


pgpool-general-jp メーリングリストの案内