diff options
-rw-r--r-- | databases/pgcluster/Makefile | 16 | ||||
-rw-r--r-- | databases/pgcluster/distinfo | 4 | ||||
-rw-r--r-- | databases/pgcluster/files/check_pgcluster.pl | 32 | ||||
-rw-r--r-- | databases/pgcluster/files/check_pgreplicate.pl | 21 | ||||
-rw-r--r-- | databases/pgcluster/files/patch-libpq:recovery.c | 23 | ||||
-rw-r--r-- | databases/pgcluster/files/patch-libpq:replicate.c | 48 | ||||
-rw-r--r-- | databases/pgcluster/files/patch-pg_proc.h | 9 | ||||
-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.c | 124 | ||||
-rw-r--r-- | databases/pgcluster/files/patch-pool_process_query.c | 58 | ||||
-rw-r--r-- | databases/pgcluster/files/patch-postmaster.c | 19 | ||||
-rw-r--r-- | databases/pgcluster/files/patch-replicate.c | 293 |
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); - } |