[pgcluster: 842] レプリケーション起動時のエラーメッセージ

三村 眞史 mimura @ ups.ne.jp
2005年 11月 29日 (火) 14:02:56 JST


お世話になります。
三村と申します。

現在pgcluster-1.1.1aを使用して、実験をしています。
レプリケータ起動時にログファイルに以下のエラーメッセージが
大量に出力されてしまいます。

ERROR:PGRreturn_result():send error: 9(Bad file descriptor)

レプリケーションサーバのスペック
==============================================================
OS:White Box Enterprise Linux release 4
CPU:Intel(R) Pentium(R) 4 CPU 2.60GHz
メモリ:512MB
カーネル:2.6.9-5.0.5.EL

以下pgreplicate.confの設定内容です。
#=============================================================
#  PGReplicate configuration file
#                                     for  PGCluster-1.1.0a
#-------------------------------------------------------------
# file: pgreplicate.conf
#-------------------------------------------------------------
# This file controls:
#       o which hosts & port are cluster server
#       o which port use for replication request from cluster server
#=============================================================
#
#-------------------------------------------------------------
# A setup of Cluster DB(s)
#
#               o Host_Name : The host name of Cluster DB.
#                             -- please write a host name by FQDN.
#                             -- do not write IP address.
#               o Port : The connection port with postmaster.
#               o Recovery_Port : The connection port at the time of
#                                 a recovery sequence .
#               o LifeCheck_Port : connection for life check process
#-------------------------------------------------------------
<Cluster_Server_Info>
    <Host_Name>   CL01  </Host_Name>
    <Port>                5432        </Port>
    <Recovery_Port>       7101        </Recovery_Port>
    <LifeCheck_Port>      7201        </LifeCheck_Port>
</Cluster_Server_Info>
<Cluster_Server_Info>
    <Host_Name>   CL02 </Host_Name>
    <Port>                5432        </Port>
    <Recovery_Port>       7101        </Recovery_Port>
    <LifeCheck_Port>      7201        </LifeCheck_Port>
</Cluster_Server_Info>
#-------------------------------------------------------------
# A setup of Load Balance Server
#-------------------------------------------------------------
<LoadBalance_Server_Info>
    <Host_Name>   LB01  </Host_Name>
    <Recovery_Port>       6101        </Recovery_Port>
    <LifeCheck_Port>      6201        </LifeCheck_Port>
</LoadBalance_Server_Info>
#-------------------------------------------------------------
# A setup of a replication server
#-------------------------------------------------------------
<Status_Log_File>  /tmp/1/pgreplicate.sts  </Status_Log_File>
<Error_Log_File>   /tmp/1/pgreplicate.log  </Error_Log_File>
<Replication_Port>       8001            </Replication_Port>
<Recovery_Port>          8101            </Recovery_Port>
<LifeCheck_Port>         8201            </LifeCheck_Port>
<RLOG_Port>              8301            </RLOG_Port>
#<Response_Mode>        normal            </Response_Mode>
<Response_Mode>        reliable            </Response_Mode>
<Use_Replication_Log>      no            </Use_Replication_Log>
<Reserved_Connections>      1            </Reserved_Connections>


ちなみにデバッグ起動した場合のデバッグ文です。
[postgres @ RP01 ~]$ pgreplicate -D /usr/local/pgsql/data/ -nv
DEBUG:replicate_main():replicate main 8001 port bind OK
DEBUG:PGRreplicate_packet_send():cmdSts=N
DEBUG:PGRreplicate_packet_send():cmdType=
DEBUG:PGRreplicate_packet_send():rlog=0
DEBUG:PGRreplicate_packet_send():request_id=0
DEBUG:PGRreplicate_packet_send():replicate_id=0
DEBUG:PGRreplicate_packet_send():port=0
DEBUG:PGRreplicate_packet_send():pid=0
DEBUG:PGRreplicate_packet_send():from_host=RP01
DEBUG:PGRreplicate_packet_send():dbName=template1
DEBUG:PGRreplicate_packet_send():userName=postgres
DEBUG:PGRreplicate_packet_send():recieve sec=0
DEBUG:PGRreplicate_packet_send():recieve usec=0
DEBUG:PGRreplicate_packet_send():query_size=59
DEBUG:PGRreplicate_packet_send():query=SELECT PGR_SYSTEM_COMMAND_FUNCTION(1,'RP01',8001,8101,8201)
DEBUG:sem_lock[1]
DEBUG:pgr_createConn():PQsetdbLogin host[CL01] port[5432] db[template1] user[postgres]
DEBUG:pgr_createConn():PQsetdbLogin host[CL02] port[5432] db[template1] user[postgres]
DEBUG:pgr_createConn():PQsetdbLogin ok
DEBUG:pgr_createConn():PQsetdbLogin ok
DEBUG:sem_unlock[1]
DEBUG:PGRreturn_result():PGRreturn_result[7]
ERROR:PGRreturn_result():send error: 9(Bad file descriptor)
...以下ERROR:PGRreturn_result():send error:〜が1000行ほど

設定を色々変えてみて起動させていたところ、<Response_Mode>を
reliableにした時に上記エラーメッセージが出力されます。
normalでは出力しませんでした。

原因が分かる方がいらっしゃいましたらご教授いただけますでしょうか。
よろしくお願いいたします。





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