[pgpool-general-jp: 347] Re: 答えが変わる
Tatsuo Ishii
ishii @ sraoss.co.jp
2008年 1月 2日 (水) 17:45:04 JST
石井です。
pgpool-II 2.0.2というのはまだリリースされていませんので,CVS HEADで確
認してみました。
> ERROR: pid 2328: health check failed. master at port 5432 is down
これ,本当にpgpool-IIですか?こういうエラーメッセージはpgpool-II 2.xに
はないずですが...
--
Tatsuo Ishii
SRA OSS, Inc. Japan
> こんにちは。陶山です。
>
> pgpool-II 2.0.2 を正常に起動できない点についてもう少ししつこくテスト
> してみました。
>
>
> バックエンドのポートを変更しても pgpool-II は常に .s.PGSQL.5432 を
> Unix domain socket とみなしているようです。
> ポートを3通りに変えてテストしてみました。
> (A):5434、(B):5432、(C):5455
> 結果は後載します。(起動したように見えますが log にエラーが現われます)
>
> 起動しているプロセスをみてみると
> postgres @ main:~$ ps ax | grep pgpool
> 2331 ? S 0:00 /usr/local/bin/pgpool -n -d
> 2367 ? S 0:00 pgpool: wait for connection request
> 起動しているように見えるので、psqlコマンドを実行してみました
>
> postgres @ main:~$ psql -p 5439 -l
> psql: server closed the connection unexpectedly
> This probably means the server terminated abnormally
> before or while processing the request.
> というエラーです。このときのログも最後に掲載します。
>
> 初めてpgpool を使おうとしているのでよくはわかりませんが、どうも
> pgpool-II 2.0.2 自体の不具合ではないだろうかと思います。
> 設定ファイルpgpool.conf や postgresql.conf は、pgpool-II 2.0.1
> のときのものと同じです(ポート番号以外)
>
>
> 以下詳細情報です。
> ===================================
> ★実験(A)
> ■ポート設定
> postgresql.conf port= 5434
> pgpool.conf backend0_port0 = 5434
>
> ■main:~# ls -al /var/run/postgresql/
> total 16
> drwxrwsr-x 2 postgres postgres 4096 Jan 2 15:27 .
> drwxr-xr-x 10 root root 4096 Jan 2 15:27 ..
> srwxrwxrwx 1 postgres postgres 0 Jan 2 15:27 .s.PGSQL.5434
> -rw------- 1 postgres postgres 34 Jan 2 15:27 .s.PGSQL.5434.lock
> srwxrwxrwx 1 root postgres 0 Jan 2 15:27 .s.PGSQL.5439
> -rw------- 1 postgres postgres 5 Jan 2 15:27 8.1-main.pid
>
> ■/var/log/postgresql/pgpool.log の一部
> DEBUG: pid 2328: key: backend_hostname0
> DEBUG: pid 2328: value: 'localhost' kind: 4
> DEBUG: pid 2328: key: backend_port0
> DEBUG: pid 2328: value: 5434 kind: 2
> DEBUG: pid 2328: key: backend_weight0
> DEBUG: pid 2328: value: 1 kind: 2
> DEBUG: pid 2328: key: backend_data_directory0
> DEBUG: pid 2328: value: '/etc/postgresql/8.1/main/pgdata' kind: 4
>
> LOG: pid 2328: pgpool successfully started
> LOG: pid 2328: starting health checking
> DEBUG: pid 2328: connecting postmaster Unix domain socket: /var/run/postgresql/.s.PGSQL.5432
> ERROR: pid 2328: connect_unix_domain_socket: connect() failed: No such file or directory
> ERROR: pid 2328: health check failed. master at port 5432 is down
> DEBUG: pid 2328: failover_handler called
> LOG: pid 2328: starting degeneration. shutdown master host (5432)
>
> ■Unix domain socket を
> /var/run/postgresql/.s.PGSQL.5432
> と間違って認識しているため、見つけられないでいる(ように見える)
>
> =====================================
> ★実験(B)
> ■ポート設定
> postgresql.conf port= 5432
> pgpool.conf backend0_port0 = 5432
>
> ■main:~# ls -al /var/run/postgresql/
> total 16
> drwxrwsr-x 2 postgres postgres 4096 Jan 2 15:48 .
> drwxr-xr-x 10 root root 4096 Jan 2 15:48 ..
> srwxrwxrwx 1 postgres postgres 0 Jan 2 15:48 .s.PGSQL.5432
> -rw------- 1 postgres postgres 34 Jan 2 15:48 .s.PGSQL.5432.lock
> srwxrwxrwx 1 root postgres 0 Jan 2 15:48 .s.PGSQL.5439
> -rw------- 1 postgres postgres 5 Jan 2 15:48 8.1-main.pid
>
> ■/var/log/postgresql/pgpool.log の一部
> DEBUG: pid 2328: key: backend_hostname0
> DEBUG: pid 2328: value: 'localhost' kind: 4
> DEBUG: pid 2328: key: backend_port0
> DEBUG: pid 2328: value: 5432 kind: 2
> DEBUG: pid 2328: key: backend_weight0
> DEBUG: pid 2328: value: 1 kind: 2
> DEBUG: pid 2328: key: backend_data_directory0
> DEBUG: pid 2328: value: '/etc/postgresql/8.1/main/pgdata' kind: 4
>
> LOG: pid 2328: pgpool successfully started
> LOG: pid 2328: starting health checking
> DEBUG: pid 2328: connecting postmaster Unix domain socket: /var/run/postgresql/.s.PGSQL.5432
> DEBUG: pid 2328: connected to postmaster Unix domain socket: /var/run/postgresql/.s.PGSQL.5432 fd: 8
> ERROR: pid 2328: health check failed during write. master at port 5432 is down
> DEBUG: pid 2328: failover_handler called
> LOG: pid 2328: starting degeneration. shutdown master host (5432)
>
> Unix domain socket: /var/run/postgresql/.s.PGSQL.5432
> を見つけたものの書き込みに失敗している(ように見える)
>
> =====================================
> ★実験(C)
> ■ポート設定
> postgresql.conf port= 5455
> pgpool.conf backend0_port0 = 5455
>
> ■main:~# ls -al /var/run/postgresql/
> total 16
> drwxrwsr-x 2 postgres postgres 4096 Jan 2 15:58 .
> drwxr-xr-x 10 root root 4096 Jan 2 15:58 ..
> srwxrwxrwx 1 root postgres 0 Jan 2 15:58 .s.PGSQL.5439
> srwxrwxrwx 1 postgres postgres 0 Jan 2 15:58 .s.PGSQL.5455
> -rw------- 1 postgres postgres 34 Jan 2 15:58 .s.PGSQL.5455.lock
> -rw------- 1 postgres postgres 5 Jan 2 15:58 8.1-main.pid
>
> ■/var/log/postgresql/pgpool.log の一部
> DEBUG: pid 2331: key: backend_hostname0
> DEBUG: pid 2331: value: 'localhost' kind: 4
> DEBUG: pid 2331: key: backend_port0
> DEBUG: pid 2331: value: 5455 kind: 2
> DEBUG: pid 2331: key: backend_weight0
> DEBUG: pid 2331: value: 1 kind: 2
> DEBUG: pid 2331: key: backend_data_directory0
> DEBUG: pid 2331: value: '/etc/postgresql/8.1/main/pgdata' kind: 4
>
> LOG: pid 2331: starting health checking
> DEBUG: pid 2331: connecting postmaster Unix domain socket: /var/run/postgresql/.s.PGSQL.5432
> ERROR: pid 2331: connect_unix_domain_socket: connect() failed: No such file or directory
> ERROR: pid 2331: health check failed. master at port 5432 is down
> DEBUG: pid 2331: failover_handler called
> LOG: pid 2331: starting degeneration. shutdown master host (5432)
>
> 実験(A)と同じようです。
> ===================================
> ★ psql -p 5439 -l のエラー時の pgpool.log
>
> DEBUG: pid 2398: I am 2398 accept fd 8
> DEBUG: pid 2398: Protocol Major: 3 Minor: 0 database: postgres user: postgres
> DEBUG: pid 2398: connecting postmaster Unix domain socket: /var/run/postgresql/.s.PGSQL.0
> ERROR: pid 2398: connect_unix_domain_socket: connect() failed: No such file or directory
> LOG: pid 2398: notice_backend_error: master: 1 fail over request from pid 2398
> DEBUG: pid 2331: failover_handler called
> DEBUG: pid 2331: reap_handler called
> DEBUG: pid 2331: child 2398 exits with status 256 by signal 0
> DEBUG: pid 2581: I am 2581
> DEBUG: pid 2331: fork a new child pid 2581
>
> Unix domain socket を /var/run/postgresql/.s.PGSQL.0 と認識している
> 時点で怪しい
>
> _______________________________________________
> pgpool-general-jp mailing list
> pgpool-general-jp @ sraoss.jp
> http://www.sraoss.jp/mailman/listinfo/pgpool-general-jp
pgpool-general-jp メーリングリストの案内