[pgcluster: 180] Re: クラスタサーバの復旧

Jun Kuriyama kuriyama @ imgsrc.co.jp
2004年 2月 28日 (土) 20:55:17 JST


At Fri, 27 Feb 2004 19:29:37 +0900,
Masanari Ishida wrote:
> 試したのはpgcluster-1.0.6/1.0.6b/1.0.6cv1です。構成は以下のとおりです。
> 
> レプリケーションサーバ:1台(REP1:デバッグモードで起動)
> クラスタサーバ:3台(CL1〜3)
> psql実行用:1台(AP1)
> を別々のマシン上で実行しました。
> 
> ------------
> |パターン1|
> ------------
> 
> 1)CL3を停止
>  $ pg_ctl stop -m immediate -o "-i"
> 2)AP1よりpsqlにてCL1に接続し、exitする。
>  REP1のログにCL3がerrorと記録
> 3)CL3を復旧。(だれもクラスタサーバには接続していない。)
>  $ pg_ctl start -o "-i -R"
> 4)AP1よりpsqlでCL1に接続し、INSERT文を実行
>  test_db=# insert into tbl1 values (1);
> 5)REP1に以下が表示され、ログにはCL3がerrorとなる。

 手元でも追試してみましたが、同じようになりました(1.0.6b + パッチいろ
いろ)。

 まだちゃんと追えていませんが、PGRsend_replicate_packet_to_server()
の中で db_server_tbl->conn は !NULL なんだけど、 conn->sock に整数が入っ
ている状態になっていて、そのソケットが既に使えないもの、という状態になっ
ているみたい。

 リカバリした時の処理まわり、かなあ。


-- 
Jun Kuriyama <kuriyama @ imgsrc.co.jp> // IMG SRC, Inc.
             <kuriyama @ FreeBSD.org> // FreeBSD Project



pgcluster メーリングリストの案内