aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--databases/pgcluster/Makefile16
-rw-r--r--databases/pgcluster/distinfo4
-rw-r--r--databases/pgcluster/files/check_pgcluster.pl32
-rw-r--r--databases/pgcluster/files/check_pgreplicate.pl21
-rw-r--r--databases/pgcluster/files/patch-libpq:recovery.c23
-rw-r--r--databases/pgcluster/files/patch-libpq:replicate.c48
-rw-r--r--databases/pgcluster/files/patch-pg_proc.h9
-rw-r--r--databases/pgcluster/files/patch-pgrp:main.c (renamed from databases/pgcluster/files/patch-main.c)160
-rw-r--r--databases/pgcluster/files/patch-pgrp:recovery.c (renamed from databases/pgcluster/files/patch-recovery.c)93
-rw-r--r--databases/pgcluster/files/patch-pgrp:replicate.c124
-rw-r--r--databases/pgcluster/files/patch-pool_process_query.c58
-rw-r--r--databases/pgcluster/files/patch-postmaster.c19
-rw-r--r--databases/pgcluster/files/patch-replicate.c293
13 files changed, 311 insertions, 589 deletions
diff --git a/databases/pgcluster/Makefile b/databases/pgcluster/Makefile
index 010959628f25..9344681a4bf1 100644
--- a/databases/pgcluster/Makefile
+++ b/databases/pgcluster/Makefile
@@ -5,17 +5,16 @@
# $FreeBSD$
PORTNAME= pgcluster
-PORTVERSION= 1.0.6b
-PORTREVISION= 3
+PORTVERSION= 1.0.6c.a13
CATEGORIES= databases
MASTER_SITES= ${MASTER_SITE_PGSQL}
MASTER_SITE_SUBDIR= v${BASEPGSQL}
DISTNAME= postgresql-base-${BASEPGSQL}
DIST_SUBDIR= postgresql
-PATCH_SITES= http://hiroshima.sraw.co.jp/people/mitani/jpug/pgcluster/current/
+PATCH_SITES= http://dist.bsdlab.org/
PATCHFILES= pgcluster-${PORTVERSION}-patch.tar.gz
-PATCH_DIST_STRIP= -p1
+PATCH_DIST_STRIP= -p0
MAINTAINER= kuriyama@FreeBSD.org
COMMENT=The multi-master and synchronous replication system for PostgreSQL
@@ -25,6 +24,7 @@ RUN_DEPENDS= rsync:${PORTSDIR}/net/rsync
WRKSRC?= ${WRKDIR}/postgresql-${BASEPGSQL}
USE_GMAKE= yes
GNU_CONFIGURE= yes
+USE_AUTOCONF_VER= 257
MAKE_FLAGS= # empty
MAKEFILE= # empty
CONFLICTS= postgresql-*
@@ -79,12 +79,12 @@ post-patch:
post-build:
.if !defined(WITHOUT_PGCLUSTER_REPLICATION)
- ${MAKE} WRKSRC=${WRKSRC}/src/pgcluster/pgrp do-configure
- ${MAKE} WRKSRC=${WRKSRC}/src/pgcluster/pgrp do-build
+ ${MAKE} WRKSRC=${WRKSRC}/src/pgcluster/pgrp run-autotools do-configure
+ ${MAKE} WRKSRC=${WRKSRC}/src/pgcluster/pgrp AUTOCONF=autoconf257 do-build
.endif
.if !defined(WITHOUT_PGCLUSTER_LOADBALANCER)
- ${MAKE} WRKSRC=${WRKSRC}/src/pgcluster/pglb do-configure
- ${MAKE} WRKSRC=${WRKSRC}/src/pgcluster/pglb do-build
+ ${MAKE} WRKSRC=${WRKSRC}/src/pgcluster/pglb run-autotools do-configure
+ ${MAKE} WRKSRC=${WRKSRC}/src/pgcluster/pglb AUTOCONF=autconf257 do-build
.endif
pre-install:
diff --git a/databases/pgcluster/distinfo b/databases/pgcluster/distinfo
index 8ae4c7218c19..1e428f04e4ab 100644
--- a/databases/pgcluster/distinfo
+++ b/databases/pgcluster/distinfo
@@ -1,4 +1,4 @@
MD5 (postgresql/postgresql-base-7.3.4.tar.gz) = 2b8600cc0f0c2d80271b533c394c886b
SIZE (postgresql/postgresql-base-7.3.4.tar.gz) = 7137288
-MD5 (postgresql/pgcluster-1.0.6b-patch.tar.gz) = 405ea2a5f61a05c31ef16e3791be3ec4
-SIZE (postgresql/pgcluster-1.0.6b-patch.tar.gz) = 181877
+MD5 (postgresql/pgcluster-1.0.6c.a13-patch.tar.gz) = 298e8510ecf293b7f3d7c91da46705a4
+SIZE (postgresql/pgcluster-1.0.6c.a13-patch.tar.gz) = 197987
diff --git a/databases/pgcluster/files/check_pgcluster.pl b/databases/pgcluster/files/check_pgcluster.pl
index ac585852cf67..8d40d60b75a8 100644
--- a/databases/pgcluster/files/check_pgcluster.pl
+++ b/databases/pgcluster/files/check_pgcluster.pl
@@ -2,7 +2,7 @@
#
# Copyright (c) 2004 IMG SRC, Inc. All rights reserved.
#
-# $Id: check_pgcluster.pl,v 1.2 2004/02/25 06:09:25 kuriyama Exp $
+# $Id: check_pgcluster.pl,v 1.4 2004/03/03 11:51:06 kuriyama Exp $
#
# Plugin for nagios.
#
@@ -29,7 +29,7 @@ use strict;
use Getopt::Std;
use DBI;
-my %O;
+my ($ret, %O, @r) = (0);
getopts('H:p:U:P:w:', \%O);
$O{p} ||= 5432;
@@ -37,25 +37,29 @@ $O{U} ||= "";
$O{P} ||= "";
usage() if (not $O{H} or not $O{w});
-my $dbh = DBI->connect("dbi:Pg:dbname=template1;host=$O{H};port=$O{p}", $O{U}, $O{P});
+my $dbh = DBI->connect("dbi:Pg:dbname=template1;host=$O{H};port=$O{p}",
+ $O{U}, $O{P}, { PrintError => 0 });
-die if (not $dbh);
+if ($dbh) {
+ my $sth = $dbh->prepare("select pgr_current_replicator()") or die;
+ $sth->execute or die;
+ @r = $sth->fetchrow_array;
+ $sth->finish;
-my $sth = $dbh->prepare("select pgr_current_replicator()") or die;
-$sth->execute or die;
-my @r = $sth->fetchrow_array;
-$sth->finish;
+ $dbh->disconnect;
-$dbh->disconnect;
+ if (not defined $r[0] or length($r[0]) < 1) {
+ $ret = 2;
+ } elsif ($r[0] ne $O{w}) {
+ $ret = 1;
+ }
-my $ret = 0;
-if ($r[0] ne $O{w}) {
- $ret = 1;
- $ret = 2 if (length($r[0]) < 1);
+} else {
+ $ret = 2;
}
my %STATUS = (2 => "CRITICAL", 1 => "WARNING", 0 => "OK");
-printf "PGCLUSTER %s: %s\n", $STATUS{$ret}, $r[0];
+printf "PGCLUSTER %s: %s\n", $STATUS{$ret}, $r[0] || "";
exit $ret;
# ============================================================
diff --git a/databases/pgcluster/files/check_pgreplicate.pl b/databases/pgcluster/files/check_pgreplicate.pl
index 7451c3c27c8d..bda8010840ab 100644
--- a/databases/pgcluster/files/check_pgreplicate.pl
+++ b/databases/pgcluster/files/check_pgreplicate.pl
@@ -2,7 +2,7 @@
#
# Copyright (c) 2004 IMG SRC, Inc. All rights reserved.
#
-# $Id: check_pgreplicate.pl,v 1.1 2004/02/23 06:06:13 kuriyama Exp $
+# $Id: check_pgreplicate.pl,v 1.2 2004/04/16 12:10:53 kuriyama Exp $
#
# Plugin for nagios.
#
@@ -39,9 +39,24 @@ my $HOSTNAME_MAX_LENGTH = 128;
my $DBNAME_MAX_LENGTH = 128;
my $USERNAME_MAX_LENGTH = 128;
+# typedef struct ReplicateHeaderType
+# {
+# char cmdSys;
+# char cmdSts;
+# char cmdType;
+# char dummy;
+# char port[INT_LENGTH];
+# char pid[INT_LENGTH];
+# char query_size[INT_LENGTH];
+# char except_host[HOSTNAME_MAX_LENGTH];
+# char from_host[HOSTNAME_MAX_LENGTH];
+# char dbName[DBNAME_MAX_LENGTH];
+# char userName[USERNAME_MAX_LENGTH];
+# struct timeval tv;
+# } ReplicateHeader;
my $query = "dummy";
-my $packet = pack "CCCCllla128a128a128a128ll", 0, 0, 0, ord("o"),
- 0, 0, 5, "except host", "from host", "db name", "user name",
+my $packet = pack "CCCCa12a12a12a128a128a128a128ll", 0, 0, ord("o"), 0,
+ "0", "0", "5", "except host", "from host", "db name", "user name",
time, 0;
print $sock $packet;
diff --git a/databases/pgcluster/files/patch-libpq:recovery.c b/databases/pgcluster/files/patch-libpq:recovery.c
deleted file mode 100644
index 74852c235408..000000000000
--- a/databases/pgcluster/files/patch-libpq:recovery.c
+++ /dev/null
@@ -1,23 +0,0 @@
---- src/backend/libpq/recovery.c.orig Fri Feb 20 11:38:39 2004
-+++ src/backend/libpq/recovery.c Mon Feb 23 14:44:15 2004
-@@ -756,14 +756,14 @@
-
- if (Debug_pretty_print)
- {
-- elog(DEBUG1,"no = %d\n",packet->packet_no);
-- elog(DEBUG1,"max_connect = %d\n",packet->max_connect);
-- elog(DEBUG1,"port = %d\n",packet->port);
-- elog(DEBUG1,"recoveryPort = %d\n",packet->recoveryPort);
-+ elog(DEBUG1,"no = %d",packet->packet_no);
-+ elog(DEBUG1,"max_connect = %d",packet->max_connect);
-+ elog(DEBUG1,"port = %d",packet->port);
-+ elog(DEBUG1,"recoveryPort = %d",packet->recoveryPort);
- if (packet->hostName != NULL)
-- elog(DEBUG1,"hostName = %s\n",packet->hostName);
-+ elog(DEBUG1,"hostName = %s",packet->hostName);
- if (packet->pg_data != NULL)
-- elog(DEBUG1,"pg_data = %s\n",packet->pg_data);
-+ elog(DEBUG1,"pg_data = %s",packet->pg_data);
- }
- }
-
diff --git a/databases/pgcluster/files/patch-libpq:replicate.c b/databases/pgcluster/files/patch-libpq:replicate.c
index 1c7d3fea1b43..51d9d2e550a0 100644
--- a/databases/pgcluster/files/patch-libpq:replicate.c
+++ b/databases/pgcluster/files/patch-libpq:replicate.c
@@ -1,46 +1,18 @@
---- src/backend/libpq/replicate.c.orig.1 Fri Feb 20 11:38:39 2004
-+++ src/backend/libpq/replicate.c Wed Feb 25 09:28:07 2004
-@@ -645,6 +645,7 @@
+--- src/backend/libpq/replicate.c 17 Apr 2004 14:41:22 -0000 1.1.1.11
++++ src/backend/libpq/replicate.c 17 Apr 2004 14:44:29 -0000 1.6
+@@ -635,6 +635,7 @@
return NULL;
}
sock = get_replicate_server_socket( sp , socket_type);
+ elog(DEBUG1, "get_replicate_server_socket() returns %d", sock);
- if (sock == -1)
+ if (sock < 0)
{
if (Debug_pretty_print)
-@@ -668,7 +669,7 @@
- while (send_replicate_packet(sock,&header,query_string) != STATUS_OK)
- {
- if (Debug_pretty_print)
-- elog(DEBUG1,"replication server: %s may be down",sp->hostName);
-+ elog(DEBUG1,"replication server: %s may be down (cnt=%d, sock=%d)", sp->hostName, cnt, sock);
- close_replicate_server_socket ( sp , socket_type);
- sp->useFlag = DATA_ERR;
- sock = search_new_replication_server( sp,socket_type,&header);
-@@ -760,6 +761,11 @@
- fd_set wmask;
- struct timeval timeout;
-
-+ /* check parameter */
-+ if ((sock <= 0) || (header == NULL) || (query_string == NULL))
-+ {
-+ return STATUS_ERROR;
-+ }
- /*header->query_size +=1;*/
- header_size = sizeof(ReplicateHeader);
- buf_size = header_size + header->query_size + 4;
-@@ -776,6 +782,7 @@
- /*
- * Wait for something to happen.
- */
-+ elog(DEBUG1, "send_replicate_packet(%d, %p, %s)", sock, header, query_string);
- FD_ZERO(&wmask);
- FD_SET(sock,&wmask);
- rtn = select(sock+1, (fd_set *)NULL, &wmask, (fd_set *)NULL, &timeout);
-@@ -1767,4 +1774,29 @@
- return false;
+@@ -2067,6 +2068,30 @@
+ return 1;
}
- }
+ return 0;
++}
+
+extern Datum pgr_current_replicator(PG_FUNCTION_ARGS);
+PG_FUNCTION_INFO_V1(pgr_current_replicator);
@@ -64,6 +36,6 @@
+ memcpy(VARDATA(result), buf, len);
+
+ PG_RETURN_TEXT_P(result);
-+}
-+
+ }
+
#endif /* USE_REPLICATION */
diff --git a/databases/pgcluster/files/patch-pg_proc.h b/databases/pgcluster/files/patch-pg_proc.h
index 37eb61e8e6b8..0dbd06e9b515 100644
--- a/databases/pgcluster/files/patch-pg_proc.h
+++ b/databases/pgcluster/files/patch-pg_proc.h
@@ -1,12 +1,11 @@
---- src/include/catalog/pg_proc.h.orig Tue Feb 24 23:17:16 2004
-+++ src/include/catalog/pg_proc.h Tue Feb 24 23:28:44 2004
-@@ -3117,7 +3117,8 @@
+--- src/include/catalog/pg_proc.h 27 Feb 2004 11:57:12 -0000 1.1.1.1
++++ src/include/catalog/pg_proc.h 6 Apr 2004 12:44:53 -0000 1.2
+@@ -3117,6 +3117,8 @@
DATA(insert OID = 2307 ( opaque_out PGNSP PGUID 12 f f t f i 1 2275 "2282" opaque_out - _null_ ));
DESCR("(internal)");
--
+DATA(insert OID = 2400 ( pgr_current_replicator PGNSP PGUID 12 f f t f v 0 25 "" pgr_current_replicator - _null_ ));
+DESCR("Current replication server");
+
/*
* Symbolic values for provolatile column: these indicate whether the result
- * of a function is dependent *only* on the values of its explicit arguments,
diff --git a/databases/pgcluster/files/patch-main.c b/databases/pgcluster/files/patch-pgrp:main.c
index 791b8d460168..36d04566d86d 100644
--- a/databases/pgcluster/files/patch-main.c
+++ b/databases/pgcluster/files/patch-pgrp:main.c
@@ -1,6 +1,6 @@
---- src/pgcluster/pgrp/main.c.orig Fri Feb 20 11:38:40 2004
-+++ src/pgcluster/pgrp/main.c Mon Feb 23 12:45:51 2004
-@@ -148,7 +148,7 @@
+--- src/pgcluster/pgrp/main.c 16 Apr 2004 10:17:45 -0000 1.1.1.9
++++ src/pgcluster/pgrp/main.c 16 Apr 2004 10:21:06 -0000 1.6
+@@ -156,7 +156,7 @@
char * query;
/* set function name */
@@ -9,7 +9,7 @@
if (header == NULL)
{
-@@ -171,7 +171,7 @@
+@@ -179,7 +179,7 @@
}
if (r == 0)
{
@@ -18,48 +18,49 @@
return NULL;
}
read_size += r;
-@@ -258,18 +258,18 @@
+@@ -311,18 +311,18 @@
/* set function name */
set_function("replicate_packet_send");
- show_debug("cmdSts=%c\n",header->cmdSts);
- show_debug("cmdType=%c\n",header->cmdType);
-- show_debug("port=%d\n",header->port);
-- show_debug("pid=%d\n",header->pid);
+- show_debug("port=%d\n",ntohs(header->port));
+- show_debug("pid=%d\n",ntohs(header->pid));
- show_debug("except_host=%s\n",header->except_host);
- show_debug("from_host=%s\n",header->from_host);
- show_debug("dbName=%s\n",header->dbName);
- show_debug("userName=%s\n",header->userName);
-- show_debug("recieve sec=%u\n",header->tv.tv_sec);
-- show_debug("recieve usec=%u\n",header->tv.tv_usec);
-- show_debug("query_size=%d\n",header->query_size);
+- show_debug("recieve sec=%u\n",ntohl(header->tv.tv_sec));
+- show_debug("recieve usec=%u\n",ntohl(header->tv.tv_usec));
+- show_debug("query_size=%d\n",ntohl(header->query_size));
- show_debug("query=%s\n",query);
+ show_debug("cmdSts=%c",header->cmdSts);
+ show_debug("cmdType=%c",header->cmdType);
-+ show_debug("port=%d",header->port);
-+ show_debug("pid=%d",header->pid);
++ show_debug("port=%d",ntohs(header->port));
++ show_debug("pid=%d",ntohs(header->pid));
+ show_debug("except_host=%s",header->except_host);
+ show_debug("from_host=%s",header->from_host);
+ show_debug("dbName=%s",header->dbName);
+ show_debug("userName=%s",header->userName);
-+ show_debug("recieve sec=%u",header->tv.tv_sec);
-+ show_debug("recieve usec=%u",header->tv.tv_usec);
-+ show_debug("query_size=%d",header->query_size);
++ show_debug("recieve sec=%u",ntohl(header->tv.tv_sec));
++ show_debug("recieve usec=%u",ntohl(header->tv.tv_usec));
++ show_debug("query_size=%d",ntohl(header->query_size));
+ show_debug("query=%s",query);
/*
* loop while registrated cluster DB exist
-@@ -277,7 +277,9 @@
- ptr = Host_Tbl_Begin;
+@@ -333,8 +333,10 @@
+ show_debug("useFlag[%d]",ptr->useFlag);
while(ptr->useFlag != DB_TBL_END)
{
+ set_function("replicate_packet_send");
+ same_host = false;
sem_num = ptr->hostNum;
-+ show_debug("loop: cnt=%d, hostNum=%d, hostName=%s, port=%d, recoveryPort=%d, useFlag=%d", cnt, ptr->hostNum, ptr->hostName, ptr->port, ptr->recoveryPort, ptr->useFlag);
++ show_debug("loop: cnt=%d, hostNum=%d, hostName=%s, port=%d, recoveryPort=%d, useFlag=%d", loop_cnt++, ptr->hostNum, ptr->hostName, ptr->port, ptr->recoveryPort, ptr->useFlag);
/*
* check the status of the cluster DB
*/
-@@ -291,7 +293,7 @@
+@@ -348,7 +350,7 @@
*/
if (PGRis_master_in_recovery(ptr->hostName, ptr->port) == true)
{
@@ -68,48 +69,47 @@
ptr ++;
continue;
}
-@@ -368,6 +370,8 @@
- if (sem_num > 0)
- PGRsem_lock(SemID,sem_num);
- rtn = replicate_packet_send_each_server( ptr, cnt,header, query, dest);
-+ set_function("replicate_packet_send");
-+ show_debug("replicate_packet_send_each_server returns %d (useFlag=%d", rtn, ptr->useFlag);
- show_debug("sem_unlock[%d]",sem_num);
- if (sem_num > 0)
- PGRsem_unlock(SemID,sem_num);
-@@ -382,7 +386,8 @@
- cnt ++;
- }
+@@ -371,6 +373,8 @@
+ {
+ snprintf(PGR_Result,PGR_MESSAGE_BUFSIZE,"%d,%u,%u", PGR_SET_CURRENT_TIME_FUNC_NO,(unsigned int)ntohl(header->tv.tv_sec),(unsigned int)ntohl(header->tv.tv_usec));
+ }
++ set_function("replicate_packet_send");
++ show_debug("replicate_packet_send_each_server returns %d (useFlag=%d", rtn, ptr->useFlag);
+ show_debug("sem_lock[%d]",sem_num);
+ if (sem_num > 0)
+ PGRsem_lock(SemID,sem_num);
+@@ -483,7 +487,7 @@
+
ptr ++;
+ PGR_Response_Inf->current_cluster ++;
- }
+ }
-+ show_debug("replicate_packet_send() end");
- return STATUS_OK;
- }
-
-@@ -412,10 +417,10 @@
+ show_debug("replicate_packet_send end");
+ if (status == STATUS_ABORTED)
+ {
+@@ -525,10 +529,10 @@
set_function("replicate_packet_send_each_server");
host = ptr->hostName;
- show_debug("except:%d@%s host:%d@%s\n",
+ show_debug("except:%d@%s host:%d@%s",
- header->port,header->except_host,
+ ntohs(header->port),header->except_host,
ptr->port,ptr->hostName);
- show_debug("send replicate to:%s\n",host);
+ show_debug("send replicate to:%s",host);
/*
* send query to cluster DB
*/
-@@ -427,6 +432,8 @@
- memset(PGR_Result,0,PGR_MESSAGE_BUFSIZE);
+@@ -539,6 +543,8 @@
+ }
rtn = PGRsend_replicate_packet_to_server( ptr, header,query,PGR_Result);
+ set_function("replicate_packet_send_each_server");
+ show_debug("PGRsend_replicate_packet_to_server() returns %d", rtn);
+ /*
if ((header->cmdSts == CMD_STS_QUERY ) &&
((header->cmdType == CMD_TYPE_INSERT) ||
- (header->cmdType == CMD_TYPE_UPDATE)))
-@@ -476,7 +483,7 @@
+@@ -597,7 +603,7 @@
}
send_ptr = PGR_Result;
buf_size = PGR_MESSAGE_BUFSIZE;
@@ -118,7 +118,7 @@
if (buf_size < 1)
buf_size = 1;
-@@ -491,7 +498,7 @@
+@@ -612,7 +618,7 @@
rtn = select(dest+1, (fd_set *)NULL, &wmask, (fd_set *)NULL, &timeout);
if (rtn && FD_ISSET(dest, &wmask))
{
@@ -127,25 +127,25 @@
for (;;)
{
s = send(dest,send_ptr + send_size,buf_size - send_size ,0);
-@@ -513,7 +520,7 @@
+@@ -634,7 +640,7 @@
send_size += s;
if (send_size == buf_size)
{
- show_debug("%d send",send_size);
-+ show_debug("%d bytes sent", send_size);
++ show_debug("%d bytes sent",send_size);
status = STATUS_OK;
if (wait == PGR_WAIT_ANSWER)
{
-@@ -560,7 +567,7 @@
+@@ -682,7 +688,7 @@
rtn = select(dest+1, &rmask, (fd_set *)NULL, (fd_set *)NULL, &timeout);
if (rtn && FD_ISSET(dest, &rmask))
{
-- show_debug("read_answer selected\n");
+- show_debug("read_answer selected");
+ show_debug("read_answer selected (dest=%d)", dest);
answer = NULL;
answer = read_packet(dest,&header);
- show_debug("answer[%s]",answer);
-@@ -630,6 +637,43 @@
+ if (answer == NULL)
+@@ -773,6 +779,43 @@
return NULL;
}
@@ -189,7 +189,7 @@
/*--------------------------------------------------------------------
* SYMBOL
* replicate_loop()
-@@ -665,11 +709,11 @@
+@@ -811,11 +854,11 @@
}
if (pid == 0)
{
@@ -206,7 +206,7 @@
setpgid(0,pgid);
/* child loop */
-@@ -687,14 +731,21 @@
+@@ -833,20 +876,27 @@
FD_ZERO(&rmask);
FD_SET(sock,&rmask);
rtn = select(sock+1, &rmask, (fd_set *)NULL, (fd_set *)NULL, &timeout);
@@ -222,25 +222,31 @@
- if (query == NULL)
+ if (query == NULL && errno != 0)
{
-- show_error("read_packet failed");
+- show_error("session closed");
+ show_error("read_packet failed (errno=%d)", errno);
-+ break;
-+ }
-+ if (header.cmdType == 'o') {
-+ dump_status(sock);
- break;
- }
- if (header.cmdSts == 0)
-@@ -708,7 +759,7 @@
+ if (PGR_Cascade == true)
+ {
+ PGRupper_session_closed();
}
+ break;
}
- gettimeofday(&(header.tv),NULL);
++ if (header.cmdType == 'o') {
++ dump_status(sock);
++ break;
++ }
+ if (header.cmdSys == CMD_SYS_CASCADE )
+ {
+ PGR_Cascade = true;
+@@ -869,7 +919,7 @@
+ gettimeofday(&tv,NULL);
+ header.tv.tv_sec = htonl(tv.tv_sec);
+ header.tv.tv_usec = htonl(tv.tv_usec);
- show_debug("query :: %s\n",query);
+ show_debug("query :: %s",query);
RecoveryStatus = PGRget_recovery_status();
PGRcheck_recovered_host();
-@@ -781,7 +832,7 @@
+@@ -965,7 +1015,7 @@
show_error("fopen failed: (%s)",strerror(errno));
return STATUS_ERROR;
}
@@ -249,35 +255,25 @@
/*
* read configuration file
-@@ -915,10 +966,10 @@
- /* set load balance table */
- for ( i = 0 ; i <= lb_cnt ; i ++)
- {
-+ memset((LoadBalanceTbl + i),0,sizeof(RecoveryTbl));
+@@ -1130,7 +1180,7 @@
(LoadBalanceTbl + i)->port = -1;
(LoadBalanceTbl + i)->sock = -1;
}
- memset((LoadBalanceTbl + i),0,sizeof(RecoveryTbl));
++ memset((LoadBalanceTbl + i),0,sizeof(RecoveryTbl)); /* kuriyama: needed? */
PGR_Free_Conf_Data();
/* allocate result buffer of query */
-@@ -954,13 +1005,13 @@
- /* set function name */
- set_function("replicate_main");
-
-- show_debug("replicate mail %d port bind\n",Port_Number);
-+ show_debug("replicate mail %d port bind",Port_Number);
- status = PGR_Create_Socket_Bind(&fd, "", Port_Number);
- if (status != STATUS_OK)
+@@ -1219,7 +1269,7 @@
{
PGRreplicate_exit(0);
}
-- show_debug("replicate mail %d port bind OK \n",Port_Number);
-+ show_debug("replicate mail %d port bind OK",Port_Number);
+- show_debug("replicate main %d port bind OK \n",Port_Number);
++ show_debug("replicate main %d port bind OK",Port_Number);
- for (;;)
- {
-@@ -976,11 +1027,14 @@
+ start_up_replication_server();
+
+@@ -1237,11 +1287,14 @@
*/
FD_ZERO(&rmask);
FD_SET(fd,&rmask);
@@ -294,9 +290,9 @@
/*
* get recovery status.
*/
-@@ -1315,12 +1369,12 @@
+@@ -1597,12 +1650,12 @@
- if (init_server_tbl(path) != STATUS_OK)
+ if (init_server_tbl(PGR_Data_Path) != STATUS_OK)
{
- show_debug("init_server_tbl error\n");
+ show_debug("init_server_tbl error");
@@ -309,7 +305,7 @@
PGRreplicate_exit(0);
}
pgid = getpgid(0);
-@@ -1332,10 +1386,10 @@
+@@ -1614,10 +1667,10 @@
}
if (pid == 0)
{
diff --git a/databases/pgcluster/files/patch-recovery.c b/databases/pgcluster/files/patch-pgrp:recovery.c
index 4ae303c5fc3a..834b279235d8 100644
--- a/databases/pgcluster/files/patch-recovery.c
+++ b/databases/pgcluster/files/patch-pgrp:recovery.c
@@ -1,5 +1,5 @@
---- src/pgcluster/pgrp/recovery.c.orig Fri Feb 20 11:38:40 2004
-+++ src/pgcluster/pgrp/recovery.c Fri Feb 20 16:25:21 2004
+--- src/pgcluster/pgrp/recovery.c 16 Apr 2004 10:17:45 -0000 1.1.1.4
++++ src/pgcluster/pgrp/recovery.c 16 Apr 2004 10:21:06 -0000 1.5
@@ -121,7 +121,7 @@
int packet_size = 0;
@@ -37,8 +37,8 @@
}
count ++;
@@ -331,18 +331,18 @@
- Target->port = packet->port;
- Target->recoveryPort = packet->recoveryPort;
+ Target->port = ntohs(packet->port);
+ Target->recoveryPort = ntohs(packet->recoveryPort);
Target->sock = *sock;
- show_debug("1st setup target %s\n",Target->hostName);
- show_debug("1st setup port %d\n",Target->port);
@@ -57,7 +57,7 @@
- show_debug(" already recovery job runing\n");
+ show_debug(" already recovery job runing");
memset(packet,0,sizeof(packet));
- packet->packet_no = RECOVERY_ERROR_OCCUPIED ;
+ PGRset_recovery_packet_no(packet, RECOVERY_ERROR_OCCUPIED) ;
status = send_packet(Target,packet);
@@ -352,7 +352,7 @@
/*
@@ -66,7 +66,7 @@
- show_debug("add recovery target to host table\n");
+ show_debug("add recovery target to host table (%s)", packet->hostName);
memcpy(host_tbl.hostName,packet->hostName,sizeof(host_tbl.hostName));
- host_tbl.port = packet->port;
+ host_tbl.port = ntohs(packet->port);
PGRset_recovered_host(&host_tbl,DB_TBL_INIT);
@@ -365,7 +365,7 @@
/*
@@ -75,18 +75,18 @@
- show_debug("set RECOVERY_PGDATA_REQ packet data\n");
+ show_debug("set RECOVERY_PGDATA_REQ packet data");
memset(packet,0,sizeof(RecoveryPacket));
- packet->packet_no = RECOVERY_PGDATA_REQ ;
- master = PGRget_master();
-@@ -374,7 +374,7 @@
+ PGRset_recovery_packet_no(packet, RECOVERY_PGDATA_REQ );
+
+@@ -376,7 +376,7 @@
/*
* connection error , master may be down
*/
- show_error("get master info error , master may be down\n");
+ show_error("get master info error , master may be down");
- packet->packet_no = RECOVERY_ERROR_CONNECTION;
+ PGRset_recovery_packet_no(packet, RECOVERY_ERROR_CONNECTION);
status = send_packet(Target, packet);
reset_recovery_prepare();
-@@ -385,14 +385,14 @@
+@@ -387,14 +387,14 @@
Master->sock = -1;
Master->port = master->port;
Master->recoveryPort = master->recoveryPort;
@@ -100,10 +100,19 @@
*/
- show_error("connection error , master may be down\n");
+ show_error("connection error , master may be down");
- packet->packet_no = RECOVERY_ERROR_CONNECTION;
- status = send_packet(Target, packet);
- reset_recovery_prepare();
-@@ -409,10 +409,10 @@
+ PGRset_host_status(master,DB_TBL_ERROR);
+ goto retry_connect_master ;
+ /*
+@@ -405,7 +405,7 @@
+ return loop_end;
+ */
+ }
+-
++
+ /*
+ * start prepare of recovery
+ * set recovery status to "prepare start"
+@@ -415,10 +415,10 @@
/*
* wait answer from master server
*/
@@ -113,38 +122,42 @@
read_packet_from_master(Master, packet);
- show_debug("get answer from master\n");
+ show_debug("get answer from master");
- if (packet->packet_no == RECOVERY_PGDATA_ANS)
+ if (ntohs(packet->packet_no) == RECOVERY_PGDATA_ANS)
{
/*
-@@ -455,7 +455,7 @@
+@@ -461,7 +461,7 @@
status = PGRwait_transaction_count_clear();
if (status != STATUS_OK)
{
- show_error("transaction is too busy, please try again after\n");
+ show_error("transaction is too busy, please try again after");
- packet->packet_no = RECOVERY_ERROR_CONNECTION;
+ PGRset_recovery_packet_no(packet, RECOVERY_ERROR_CONNECTION);
status = send_packet(Target,packet);
status = send_packet(Master,packet);
-@@ -473,7 +473,7 @@
+@@ -479,7 +479,7 @@
/*
* connection error , master may be down
*/
- show_error("connection error , master may be down\n");
+ show_error("connection error , master may be down");
- packet->packet_no = RECOVERY_ERROR_CONNECTION;
+ PGRset_recovery_packet_no(packet, RECOVERY_ERROR_CONNECTION);
status = send_packet(Target,packet);
status = send_packet(Master,packet);
-@@ -502,7 +502,7 @@
+@@ -508,7 +508,7 @@
}
else
{
- show_debug("failer answer returned\n");
+ show_debug("failer answer returned");
- packet->packet_no = RECOVERY_ERROR_CONNECTION;
+ PGRset_recovery_packet_no(packet, RECOVERY_ERROR_CONNECTION);
status = send_packet(Target,packet);
status = send_packet(Master,packet);
-@@ -534,20 +534,20 @@
- show_error("there is no master ");
+@@ -538,23 +538,23 @@
+
+ if (master == (RecoveryTbl *)NULL)
+ {
+- show_error("there is no master ");
++ show_error("there is no master");
return STATUS_ERROR;
}
- show_debug("master %s - %d\n",master->hostName,master->port);
@@ -168,16 +181,16 @@
return STATUS_ERROR;
}
}
-@@ -590,7 +590,7 @@
- free(msg_query);
+@@ -621,7 +621,7 @@
+ {
+ free(msg_header);
}
- free(msg_header);
- show_debug("send_queue return status %d\n",status);
+ show_debug("send_queue return status %d",status);
return status;
}
-@@ -611,7 +611,7 @@
+@@ -642,7 +642,7 @@
set_function("pgrecovery_loop");
count = 0;
@@ -186,24 +199,16 @@
while ((status = PGR_Create_Acception(fd,&sock,"",Recovery_Port_Number)) != STATUS_OK)
{
show_error("PGR_Create_Acception failed");
-@@ -651,7 +651,7 @@
+@@ -682,7 +682,7 @@
continue;
}
-- show_debug("receive packet no:%d\n",packet.packet_no);
-+ show_debug("receive packet no:%d",packet.packet_no);
+- show_debug("receive packet no:%d\n",ntohs(packet.packet_no));
++ show_debug("receive packet no:%d",ntohs(packet.packet_no));
- switch (packet.packet_no)
+ switch (ntohs(packet.packet_no))
{
-@@ -694,6 +694,7 @@
- if (status == STATUS_OK)
- {
- show_debug("PGRsend_queue ok");
-+ memset(&new_host, 0, sizeof(new_host));
- memcpy(new_host.hostName,Target.hostName,sizeof(new_host.hostName));
- new_host.port = Target.port;
- new_host.recoveryPort = Target.recoveryPort;
-@@ -708,7 +709,7 @@
+@@ -739,7 +739,7 @@
status = send_packet(&Target,&packet);
}
/*
@@ -212,7 +217,7 @@
*/
finish_recovery();
loop_end = true;
-@@ -721,7 +722,7 @@
+@@ -752,7 +752,7 @@
memset((char *)&MasterPacketData,0,sizeof(RecoveryPacket));
break;
case RECOVERY_ERROR_ANS :
@@ -220,8 +225,8 @@
+ show_debug("recovery error accept. top queueing and initialise recovery status");
status = PGRsend_queue(&Master,NULL);
memset(&packet,0,sizeof(RecoveryPacket));
- packet.packet_no = RECOVERY_ERROR_ANS ;
-@@ -776,7 +777,7 @@
+ PGRset_recovery_packet_no(&packet, RECOVERY_ERROR_ANS);
+@@ -807,7 +807,7 @@
*/
FD_ZERO(&rmask);
FD_SET(fd,&rmask);
diff --git a/databases/pgcluster/files/patch-pgrp:replicate.c b/databases/pgcluster/files/patch-pgrp:replicate.c
new file mode 100644
index 000000000000..e8fb1c89d41c
--- /dev/null
+++ b/databases/pgcluster/files/patch-pgrp:replicate.c
@@ -0,0 +1,124 @@
+--- src/pgcluster/pgrp/replicate.c 16 Apr 2004 10:17:45 -0000 1.1.1.9
++++ src/pgcluster/pgrp/replicate.c 16 Apr 2004 10:21:06 -0000 1.5
+@@ -141,7 +141,7 @@
+ ptr = Dbserver_Tbl_Begin;
+ while (ptr != NULL)
+ {
+- show_debug("search host(%d):port(%d):db(%s)",ptr->hostIP,ptr->port,ptr->dbName);
++ show_debug("search host(%08x):port(%d):db(%s)",ptr->hostIP,ptr->port,ptr->dbName);
+ if ((ptr->useFlag == DB_TBL_USE) &&
+ (ptr->hostIP == host) &&
+ (ptr->port == host_ptr->port) &&
+@@ -393,6 +393,7 @@
+ show_error("insertTransactionTbl failed");
+ return (TransactionTbl *)NULL;
+ }
++ show_debug("setTransactionTbl return %p (hostIP=%08x, port=%d, srcHostIP=%08x", ptr, work.hostIP, work.port, work.srcHostIP);
+ return ptr;
+ }
+
+@@ -581,8 +582,10 @@
+ set_function("PGRadd_HostTbl");
+
+ ptr = PGRget_HostTbl(conf_data->hostName, conf_data->port);
++ set_function("PGRadd_HostTbl");
+ if (ptr != (HostTbl*)NULL)
+ {
++ show_debug("found ptr");
+ PGRset_host_status(ptr,useFlag);
+ return ptr;
+ }
+@@ -606,6 +609,7 @@
+ {
+ (ptr + 1) -> useFlag = DB_TBL_END;
+ }
++ show_debug("not found, allocate new one");
+ ptr->hostNum = cnt;
+ memcpy(ptr->hostName,conf_data->hostName,sizeof(ptr->hostName));
+ ptr->port = conf_data->port;
+@@ -624,19 +628,22 @@
+ set_function("PGRget_master");
+
+ host_tbl = Host_Tbl_Begin;
++ show_debug("start get_master loop");
+ while(host_tbl->useFlag != DB_TBL_END)
+ {
+- show_debug("name %s flg %d port %d recoveryPort %d ",
++ show_debug(" %s:%d flg %d recoveryPort %d",
+ host_tbl->hostName,
+- host_tbl->useFlag,
+ host_tbl->port,
++ host_tbl->useFlag,
+ host_tbl->recoveryPort);
+ if (host_tbl->useFlag == DB_TBL_USE)
+ {
++ show_debug("found master");
+ return host_tbl;
+ }
+ host_tbl ++;
+ }
++ show_debug("not found master");
+ return (HostTbl *)NULL;
+ }
+
+@@ -651,6 +658,9 @@
+ PGRsem_lock(SemID,SEM_NUM_OF_RECOVERY);
+ if (Recovery_Status_Inf != (RecoveryStatusInf *)NULL)
+ {
++ if (Recovery_Status_Inf->recovery_status != status) {
++ show_debug("status change %d -> %d", Recovery_Status_Inf->recovery_status, status);
++ }
+ Recovery_Status_Inf->recovery_status = status;
+ }
+ PGRsem_unlock(SemID,SEM_NUM_OF_RECOVERY);
+@@ -799,7 +809,7 @@
+ {
+ if (Recovery_Status_Inf->useFlag != DB_TBL_FREE)
+ {
+- show_debug("check recovered host %d",Recovery_Status_Inf->useFlag);
++ show_debug("check recovered host (useFlag=%d)",Recovery_Status_Inf->useFlag);
+ ptr = PGRadd_HostTbl((HostTbl *)&(Recovery_Status_Inf->target_host),Recovery_Status_Inf->useFlag);
+ if (ptr == (HostTbl *) NULL)
+ {
+@@ -830,6 +840,8 @@
+ if (target != (HostTbl*)NULL)
+ {
+ memcpy((HostTbl *)&(Recovery_Status_Inf->target_host),target,sizeof(HostTbl));
++ set_function("PGRset_recovered_host");
++ show_debug("status=%d", useFlag);
+ PGRset_host_status(target,useFlag);
+ }
+
+@@ -1027,6 +1039,7 @@
+ {
+ return STATUS_ERROR;
+ }
++ show_debug("hostName=%s, port=%d, recoveryPort=%d, hostNum=%d, useFlag=%d", host_ptr->hostName, host_ptr->port, host_ptr->recoveryPort, host_ptr->hostNum, host_ptr->useFlag);
+ if (host_ptr->useFlag != status)
+ {
+ host_ptr->useFlag = status;
+@@ -1251,6 +1264,7 @@
+ show_debug("send_replicate_packet_to_server query=%s",query);
+ }
+
++ set_function("PGRsend_replicate_packet_to_server");
+ if (conn == NULL)
+ {
+ show_error("[%d@%s] may be down",host_ptr->port,host_ptr->hostName);
+@@ -1311,7 +1325,7 @@
+
+ if (res == NULL)
+ {
+- show_error("PQexec error ");
++ show_error("PQexec error");
+ if ( header->cmdSts != CMD_STS_NOTICE )
+ {
+ PGRset_host_status(host_ptr,DB_TBL_ERROR);
+@@ -1501,6 +1515,7 @@
+
+ len = strlen(hostName);
+ ptr = Host_Tbl_Begin;
++ show_debug("hostName=%s, port=%d", hostName, port);
+ if (len > sizeof(ptr->hostName))
+ {
+ len = sizeof(ptr->hostName);
diff --git a/databases/pgcluster/files/patch-pool_process_query.c b/databases/pgcluster/files/patch-pool_process_query.c
deleted file mode 100644
index e895ee978714..000000000000
--- a/databases/pgcluster/files/patch-pool_process_query.c
+++ /dev/null
@@ -1,58 +0,0 @@
---- src/pgcluster/pglb/pool_process_query.c.orig.orig Wed Feb 4 23:35:56 2004
-+++ src/pgcluster/pglb/pool_process_query.c Wed Feb 4 23:37:29 2004
-@@ -459,20 +459,31 @@
-
- pool_write(frontend, &size, sizeof(int));
- size = htonl(size) - 4;
-- buf = malloc(size);
-- if (buf == NULL)
-+
-+ /* read and send actual data only when size > 0 */
-+ if (size > 0)
- {
-- show_error("AsciiRow: out of memory");
-- return POOL_END;
-+ buf = malloc(size);
-+ if (buf == NULL)
-+ {
-+ show_error("AsciiRow: out of memory");
-+ return POOL_END;
-+ }
-+ /* actual data */
-+ if (pool_read(backend, buf, size) < 0)
-+ {
-+ free(buf);
-+ return POOL_END;
-+ }
-+ pool_write(frontend, buf, size);
-+ snprintf(msgbuf, Min(sizeof(msgbuf), size), "%s", buf);
-+ free(buf);
-+ }
-+ else
-+ {
-+ *msgbuf = '\0';
- }
-- /* actual data */
-- if (pool_read(backend, buf, size) < 0)
-- return POOL_END;
--
-- pool_write(frontend, buf, size);
-- snprintf(msgbuf, Min(sizeof(msgbuf), size), "%s", buf);
- show_debug("AsciiRow: len:%d data: %s", size, msgbuf);
-- free(buf);
- }
- mask >>= 1;
- }
-@@ -728,10 +739,11 @@
- static POOL_STATUS EmptyQueryResponse(POOL_CONNECTION *frontend,
- POOL_CONNECTION *backend)
- {
-+ char c;
-+
- /* set function name */
- set_function("EmptyQueryResponse");
-
-- char c;
- if (pool_read(backend, &c, sizeof(c)) < 0)
- return POOL_END;
-
diff --git a/databases/pgcluster/files/patch-postmaster.c b/databases/pgcluster/files/patch-postmaster.c
deleted file mode 100644
index 61a7f5afd458..000000000000
--- a/databases/pgcluster/files/patch-postmaster.c
+++ /dev/null
@@ -1,19 +0,0 @@
---- src/backend/postmaster/postmaster.c.orig.1 Mon Feb 23 15:33:29 2004
-+++ src/backend/postmaster/postmaster.c Mon Feb 23 15:34:53 2004
-@@ -610,7 +610,7 @@
- */
- checkDataDir(potential_DataDir); /* issues error messages */
- SetDataDir(potential_DataDir);
--
-+ ProcessConfigFile(PGC_POSTMASTER);
- #ifdef USE_REPLICATION
- PGR_Get_Conf_Data( potential_DataDir, CLUSTER_CONF_FILE );
- PGR_Init_Replicate_Server_Data();
-@@ -627,7 +627,6 @@
- }
- }
- #endif /* USE_REPLICATION */
-- ProcessConfigFile(PGC_POSTMASTER);
-
- /*
- * Check for invalid combinations of GUC settings.
diff --git a/databases/pgcluster/files/patch-replicate.c b/databases/pgcluster/files/patch-replicate.c
deleted file mode 100644
index c99f7b21eda6..000000000000
--- a/databases/pgcluster/files/patch-replicate.c
+++ /dev/null
@@ -1,293 +0,0 @@
---- src/pgcluster/pgrp/replicate.c.orig Fri Feb 20 11:38:40 2004
-+++ src/pgcluster/pgrp/replicate.c Sat Feb 21 20:50:01 2004
-@@ -133,7 +133,7 @@
- ptr = Dbserver_Tbl_Begin;
- while (ptr != NULL)
- {
--show_debug("search host(%d):port(%d):db(%s)",ptr->hostIP,ptr->port,ptr->dbName);
-+show_debug("search host(%08x):port(%d):db(%s)",ptr->hostIP,ptr->port,ptr->dbName);
- if ((ptr->useFlag == DB_TBL_USE) &&
- (ptr->hostIP == host) &&
- (ptr->port == host_ptr->port) &&
-@@ -165,7 +165,7 @@
- hostName = host_ptr->hostName;
-
-
-- show_debug("host:%s dbName:%s\n",hostName,dbName);
-+ show_debug("host:%s dbName:%s",hostName,dbName);
- if ((hostName == NULL ) || (dbName == NULL))
- {
- show_error("hostName or dbName is NULL");
-@@ -215,7 +215,7 @@
-
- if ((host_ptr == (HostTbl *)NULL) || (datap == (DBServerTbl*)NULL))
- {
-- show_error("insertDBServerTbl datap error\n");
-+ show_error("insertDBServerTbl datap error");
- return (DBServerTbl *)NULL;
- }
- workp = Dbserver_Tbl_End;
-@@ -258,7 +258,7 @@
- if ((host1[0] == '\0' ) || (host2[0] == '\0') ||
- (port1 <= 0) || (port2 <= 0))
- {
-- show_debug("not same host:\n");
-+ show_debug("not same host:");
- return false;
- }
- ip1 = get_ip_by_name( host1);
-@@ -266,10 +266,10 @@
-
- if ((ip1 == ip2) && (port1 == port2))
- {
-- show_debug("same host:%d@%x - %d@%x\n",port1,ip1,port2,ip2);
-+ show_debug("same host:%d@%x - %d@%x",port1,ip1,port2,ip2);
- return true;
- }
-- show_debug("not same host:%d@%x - %d@%x\n",port1,ip1,port2,ip2);
-+ show_debug("not same host:%d@%x - %d@%x",port1,ip1,port2,ip2);
- return false;
- }
-
-@@ -326,7 +326,7 @@
- }
- cnt ++;
- }
-- show_debug("PQsetdbLogin ok!!\n");
-+ show_debug("PQsetdbLogin ok!!");
- return conn;
- }
-
-@@ -379,6 +379,7 @@
- show_error("insertTransactionTbl failed");
- return (TransactionTbl *)NULL;
- }
-+ show_debug("setTransactionTbl return %p (hostIP=%08x, port=%d, srcHostIP=%08x", ptr, work.hostIP, work.port, work.srcHostIP);
- return ptr;
- }
-
-@@ -451,12 +452,12 @@
- (!memcmp(ptr->dbName,header->dbName,strlen(ptr->dbName))) &&
- (ptr->pid == header->pid))
- {
-- show_debug("hit !! transaction tbl host %s db:%s pid:%d\n",host_ptr->hostName,ptr->dbName,ptr->pid);
-+ show_debug("hit !! transaction tbl host %s db:%s pid:%d",host_ptr->hostName,ptr->dbName,ptr->pid);
- return ptr;
- }
- ptr = (TransactionTbl*)ptr->next;
- }
-- show_debug("not found in transaction tbl host %s db:%s pid:%d\n",header->from_host,header->dbName,header->pid);
-+ show_debug("not found in transaction tbl host %s db:%s pid:%d",header->from_host,header->dbName,header->pid);
- return (TransactionTbl * )NULL;
- }
-
-@@ -561,8 +562,10 @@
- set_function("PGRadd_HostTbl");
-
- ptr = PGRget_HostTbl(conf_data->hostName, conf_data->port);
-+ set_function("PGRadd_HostTbl");
- if (ptr != (HostTbl*)NULL)
- {
-+ show_debug("found ptr");
- PGRset_host_status(ptr,useFlag);
- return ptr;
- }
-@@ -586,6 +589,7 @@
- {
- (ptr + 1) -> useFlag = DB_TBL_END;
- }
-+ show_debug("not found, allocate new one");
- ptr->hostNum = cnt;
- memcpy(ptr->hostName,conf_data->hostName,sizeof(ptr->hostName));
- ptr->port = conf_data->port;
-@@ -604,19 +608,22 @@
- set_function("PGRget_master");
-
- host_tbl = Host_Tbl_Begin;
-+ show_debug("start get_master loop");
- while(host_tbl->useFlag != DB_TBL_END)
- {
-- show_debug("name %s flg %d port %d recoveryPort %d \n",
-+ show_debug(" %s:%d flg %d recoveryPort %d",
- host_tbl->hostName,
-- host_tbl->useFlag,
- host_tbl->port,
-+ host_tbl->useFlag,
- host_tbl->recoveryPort);
- if (host_tbl->useFlag == DB_TBL_USE)
- {
-+ show_debug("found master");
- return host_tbl;
- }
- host_tbl ++;
- }
-+ show_debug("not found master");
- return (HostTbl *)NULL;
- }
-
-@@ -629,6 +636,9 @@
- PGRsem_lock(SemID,SEM_NUM_OF_RECOVERY);
- if (Recovery_Status_Inf != (RecoveryStatusInf *)NULL)
- {
-+ if (Recovery_Status_Inf->recovery_status != status) {
-+ show_debug("status change %d -> %d", Recovery_Status_Inf->recovery_status, status);
-+ }
- Recovery_Status_Inf->recovery_status = status;
- }
- PGRsem_unlock(SemID,SEM_NUM_OF_RECOVERY);
-@@ -763,7 +773,7 @@
- {
- if (Recovery_Status_Inf->useFlag != DB_TBL_FREE)
- {
-- show_debug("check recovered host %d\n",Recovery_Status_Inf->useFlag);
-+ show_debug("check recovered host (useFlag=%d)",Recovery_Status_Inf->useFlag);
- ptr = PGRadd_HostTbl((HostTbl *)&(Recovery_Status_Inf->target_host),Recovery_Status_Inf->useFlag);
- if (ptr == (HostTbl *) NULL)
- {
-@@ -792,6 +802,8 @@
- if (target != (HostTbl*)NULL)
- {
- memcpy((HostTbl *)&(Recovery_Status_Inf->target_host),target,sizeof(HostTbl));
-+ set_function("PGRset_recovered_host");
-+ show_debug("status=%d", useFlag);
- PGRset_host_status(target,useFlag);
- }
-
-@@ -961,6 +973,7 @@
- return STATUS_ERROR;
- }
- host_ptr->useFlag = status;
-+ show_debug("hostName=%s, port=%d, recoveryPort=%d, hostNum=%d, useFlag=%d", host_ptr->hostName, host_ptr->port, host_ptr->recoveryPort, host_ptr->hostNum, host_ptr->useFlag);
- switch( host_ptr->useFlag)
- {
- case DB_TBL_FREE:
-@@ -990,7 +1003,6 @@
- host_ptr->hostName);
- break;
- }
--
- return STATUS_OK;
- }
-
-@@ -1144,7 +1156,7 @@
- /*
- * re-use the connection data
- */
-- show_debug("find conn in db_server_tbl %d\n",db_server_tbl->conn);
-+ show_debug("find conn in db_server_tbl %d",db_server_tbl->conn);
- if ((db_server_tbl->conn != (PGconn *)NULL) &&
- (db_server_tbl->conn->sock <= 0) )
- {
-@@ -1153,17 +1165,18 @@
- }
- }
- conn = db_server_tbl->conn;
-- show_debug("send_replicate_packet_to_server query=%s\n",query);
-+ show_debug("send_replicate_packet_to_server query=%s",query);
- }
-
-+ set_function("PGRsend_replicate_packet_to_server");
- if (conn == NULL)
- {
-- show_error("conn is null\n");
-+ show_error("conn is null");
- PGRset_host_status(host_ptr,DB_TBL_ERROR);
- return STATUS_ERROR;
- }
-
-- show_debug("db:%s port:%s user:%s host:%s query:%s\n",
-+ show_debug("db:%s port:%s user:%s host:%s query:%s",
- database,port,userName,host,query);
- /*
- * execute query
-@@ -1184,7 +1197,7 @@
- (header->cmdType == CMD_TYPE_COPY_DATA_END))
- {
- /* copy data replication */
-- show_debug("query(%s) size(%d)\n",query,header->query_size);
-+ show_debug("query(%s) size(%d)",query,header->query_size);
- rtn =PQputnbytes(conn, query,header->query_size);
- if (header->cmdType == CMD_TYPE_COPY_DATA_END)
- {
-@@ -1201,11 +1214,11 @@
-
- if (res == NULL)
- {
-- show_error("PQexec error \n");
-+ show_error("PQexec error");
- PGRset_host_status(host_ptr,DB_TBL_ERROR);
- return STATUS_ERROR;
- }
-- show_debug("PQexec send :%s\n",query);
-+ show_debug("PQexec send :%s",query);
-
- str = PQcmdStatus(res);
- if ((str == NULL) || (*str == '\0'))
-@@ -1258,7 +1271,7 @@
- }
- }
- }
-- show_debug("PQexec end\n");
-+ show_debug("PQexec end");
- if ((! strcmp(database,"template1")) ||
- (! strcmp(database,"template0")))
- {
-@@ -1337,12 +1350,12 @@
- * send header data to queue
- */
- rtn = msgsnd(RecoveryMsgid, msg_header, sizeof(ReplicateHeader), IPC_NOWAIT);
-- show_debug("msgsnd header rtn:%d\n",rtn);
-+ show_debug("msgsnd header rtn:%d",rtn);
- /*
- * send query data to queue
- */
- rtn = msgsnd(RecoveryMsgid, msg_query, header->query_size, IPC_NOWAIT);
-- show_debug("msgsnd query rtn:%d\n",rtn);
-+ show_debug("msgsnd query rtn:%d",rtn);
-
- /*
- * release memory
-@@ -1364,6 +1377,7 @@
-
- len = strlen(hostName);
- ptr = Host_Tbl_Begin;
-+ show_debug("hostName=%s, port=%d", hostName, port);
- if (len > sizeof(ptr->hostName))
- {
- len = sizeof(ptr->hostName);
-@@ -1379,10 +1393,12 @@
- }
- if (ptr->useFlag != DB_TBL_END)
- {
-+ show_debug("found: %s:%d", ptr->hostName, ptr->port);
- return ptr;
- }
- else
- {
-+ show_debug("not found");
- return (HostTbl*)NULL;
- }
- }
-@@ -1392,7 +1408,6 @@
- {
- char buf[256];
- char log[288];
-- int len1;
- char * p;
- va_list ap;
- time_t t;
-@@ -1410,13 +1425,12 @@
- {
- *p = ' ';
- }
-- len1 = strlen(log);
- va_start(ap,fmt);
- vsnprintf(buf,sizeof(buf),fmt,ap);
- va_end(ap);
- strcat(log,buf);
- strcat(log,"\n");
-- if (fputs(log,LogFp) > 0)
-+ if (fputs(log,LogFp) >= 0)
- {
- fflush(LogFp);
- }