[Pgpool-hackers] Follow master patch modified

Toshihiro Kitagawa kitagawa at sraoss.co.jp
Wed Mar 30 07:45:34 UTC 2011


Hi,

I've revised Gilles's patch a little and committed it.

* Changes

- The degeneration nodes should not exclude the new master node,
  but the new primary node. Because the new master node is sometimes
  different from the new primary node.

- trigger_failover_command() should call before updating
  Req_info->master_node_id and Req_info->master_node_id,
  otherwise the function cannot get correct '%M'(old master node id)
  and '%P'(old primary node id).
  However, In this case that is using fork, the parent process might
  update them. So I added arguments of them to related functions.

- To fix find_primary_node() is still pending.
  I found a problem such as the following bug report:

  http://pgfoundry.org/pipermail/pgpool-hackers/2011-January/000525.html

  I did the testing in following sequences:

  precondition) failover_command setting is ''(empty string)
  1) node 0 down
  2) node 1 keeps hot standby without primary node

  At this time, the right pgpool's log message is:

     find_primary_node: no primary node found

  But not really:

     find_primary_node: primary node id is 1

  This means failure of the recognition of the primary node.
  We must fix this.

-- 
Toshihiro Kitagawa
SRA OSS, Inc. Japan

On Wed, 09 Mar 2011 09:49:49 +0100
Gilles Darold <gilles.darold at dalibo.com> wrote:

> Tatsuo,
> 
> Le 09/03/2011 08:43, Tatsuo Ishii a écrit :
> > I have applied this patches to the CVS HEAD and got an compile error:
> >
> > gcc -DHAVE_CONFIG_H -DDEFAULT_CONFIGDIR=\"/usr/local/etc\" -I.  -D_GNU_SOURCE -I /usr/local/pgsql/include   -g -O2 -Wall -Wmissing-prototypes -Wmissing-declarations -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.c
> > main.c: In function ‘failover’:
> > main.c:1654: error: ‘POOL_REQUEST_INFO’ has no member named ‘prefered_primary_node_id’
> Oh yes, sorry this is a line from the promote patch, you can safely
> remove it. Or if you prefer I've attached the fixed patch.
> 
> > I thought I needed pcp_promote_node patch and tried to apply the patch but I got:
> >
> > $ patch -b -p1 < ../patch-promote.diff 
> > patching file main.c
> > Hunk #2 succeeded at 167 (offset 2 lines).
> > Hunk #4 succeeded at 1376 (offset 2 lines).
> > Hunk #6 FAILED at 1604.
> > Hunk #7 succeeded at 1660 with fuzz 2 (offset 44 lines).
> > Hunk #8 FAILED at 1686.
> > Hunk #9 FAILED at 2398.
> > Hunk #10 FAILED at 2412.
> > Hunk #11 FAILED at 2441.
> > 5 out of 11 hunks FAILED -- saving rejects to file main.c.rej
> > patching file pcp/Makefile.am
> > patching file pcp/Makefile.in
> > patching file pcp/pcp.c
> > patching file pcp/pcp.h
> > patching file pcp/pcp_promote_node.c
> > patching file pcp_child.c
> > patching file pool_auth.c
> > patching file pool.h
> > patching file pool_query_context.c
> >
> > Any help appreciated.
> Those 2 patches are working on same parts so hunks on main.c are normal,
> you have to applied by hand what have been rejected.
> 
> -- 
> Gilles Darold
> Administrateur de bases de données
> http://dalibo.com - http://dalibo.org
> 



More information about the Pgpool-hackers mailing list