View Issue Details

IDProjectCategoryView StatusLast Update
0000766Pgpool-IIBugpublic2022-12-26 16:55
Reporternakamura.kenichi Assigned Topengbo  
PrioritylowSeveritytrivialReproducibilityalways
Status closedResolutionopen 
PlatformLinuxOSRed Hat Enterprise LinuxOS Version8.1
Product Version4.2.10 
Target Version4.2.11Fixed in Version4.2.11 
Summary0000766: Pgpool-IIのRPMを用いてのリグレッションテストが失敗する
Description2点報告致します。
いずれも Pgpool-II ソースファイル内リグレッションテストの実施によって確認したものです。

(1)regress.sh に -c オプションを付与してリグレッションテストを実施したところ、
027.auto_failback のテストだけが failed になりました。

対象:Pgpool-II 4.2.10

regress.sh に -c オプションを付与することで発生する差分が理由と考えます。
・-c を付けない場合、failover.sh と follow_primsry.sh は regress.sh の中で作成される。
・-c を付けると、/etc/pgpool-II/ から、failover.sh.sample と follow_primary.sh.sample をコピーする。

このシェルの違いが、試験結果の成否に影響しているものと考えます。

なお、-c を付けない場合に作成される failover.sh と follow_primsry.sh を用いることで、
027.auto_failback のテストが正常に完了することを確認しています。
※ただし -c を付けないだけだと、以下(2)と同じ問題が発生しました。


(2)regress.sh を実行すると、いくつかの試験が failed になりました。

対象:Pgpool-II 4.1.13、Pgpool-II 4.0.20、Pgpool-II 3.7.25、(regress.sh に -c を付けないPgpool-II 4.2.10)

今回の修正では、regress.sh の中で環境変数 PGPOOLDIR=$PGPOOL_INSTALL_DIR/etc を定義するようになっています。
Pgpool-IIのRPMをインストールして試験をする場合は /etc/pgpool-II にある pgpool.conf.sample-xxxx を
コピーする必要がありますが、環境変数PGPOOLDIR が /etc/pgppol-II を指していないため、
必要なファイルがコピーできず、いくつかのテストが failed になっています。

これまでは手動で export PGPOOLDIR=/etc/pgpool-II を定義してから regress.sh を実行していました。
⇒regress.sh 内の PGPOOLDIR=$PGPOOL_INSTALL_DIR/etc の行をコメントアウトすることで、
 テストが正常に完了することは確認できています。

以上です、ご確認のほど、よろしくお願い致します。
Steps To Reproduce・Pgpool-IIのRPMをインストールする
・インストールしたRPMと同じバージョンのPgpool-IIのソースを展開し、--with-pgsql=/usr/pgsql-14 および make する
・以下のコマンドを実行する
(1)
$ export PGPOOLDIR=/etc/pgpool-II/
$ export PGPOOL_INSTALL_DIR=/usr
$ export PGBIN=/usr/pgsql-14/bin
$ export JDBC_DRIVER=/tmp/postgresql-42.4.2.jar
$ export LANG=en_US.UTF8

$ cd src/test/regression
$ ./regress.sh -p /usr/pgsql-14/bin -i /usr -m noinstall -j /tmp/postgresql-42.4.2.jar -s /var/run/postgresql -c
Additional Information(2)は、(1)のオプション -c がないだけで、試験の手順は同じです。
TagsNo tags attached.

Activities

pengbo

2022-09-12 13:13

developer   ~0004120

ご報告ありがとうございます。

> (1)regress.sh に -c オプションを付与してリグレッションテストを実施したところ、
> 027.auto_failback のテストだけが failed になりました。

こちらのテストの失敗は、認識済です。
-c を付けてテストを実行すると、レプリケーションスロットが有効になります。
レプリケーションスロットが有効な場合、auto_failback が動作しない可能性がありますので、
027.auto_failback のテストを無効にしてください。

ドキュメント:
https://www.pgpool.net/docs/latest/ja/html/runtime-config-failover.html#GUC-AUTO-FAILBACK
注意: レプリケーションスロットを使用している場合、auto_failbackが動作しない可能性があることに注意してください。 スタンバイノードがダウンした際にfailover_commandによりスタンバイのレプリケーションスロットが削除され、レプリケーションが停止している可能性があるためです。

> (2)regress.sh を実行すると、いくつかの試験が failed になりました。

こちらについては、確認できました。
環境変数で設定できるように regress.sh を修正します。

pengbo

2022-12-26 16:55

developer   ~0004180

Fixed: https://git.postgresql.org/gitweb/?p=pgpool2.git;a=commit;h=d22f38582fbb0dbb7c0d027562e35bd9f358ff06

Issue History

Date Modified Username Field Change
2022-09-08 18:30 nakamura.kenichi New Issue
2022-09-12 13:03 pengbo Assigned To => pengbo
2022-09-12 13:03 pengbo Status new => assigned
2022-09-12 13:13 pengbo Note Added: 0004120
2022-09-12 13:14 pengbo Status assigned => feedback
2022-09-12 13:14 pengbo Target Version => 4.2.11
2022-12-26 16:55 pengbo Status feedback => closed
2022-12-26 16:55 pengbo Fixed in Version => 4.2.11
2022-12-26 16:55 pengbo Note Added: 0004180