[Pgpool-general] pgpool-II 2.2 RC1 released

Tatsuo Ishii ishii at sraoss.co.jp
Fri Feb 20 01:39:04 UTC 2009


Thanks for the report. I think what happend here was, exiting pgpool
children tried to close connections to backend, which did not exist
actually since a new node just had been added. I have committed the
fix. Included is the patch against RC1 (and beta1/2).
--
Tatsuo Ishii
SRA OSS, Inc. Japan

> On Sun, Feb 15, 2009 at 6:43 AM, Tatsuo Ishii <ishii at sraoss.co.jp> wrote:
> 
> > pgpool-II 2.2 RC1 is released. Changes from beta2:
> 
> While trying to reproduce the problem with reloading PostgreSQL
> (change log_connections and log_statements) while under load, I
> decided to do an online recovery. I used version beta 2.
> 
> And got this nasty error in the syslog where pgpool-II is executing
> (the master node):
> 
> Feb 18 14:52:45 pgsql1 pgpool[11708]: Rsyncing directory pg_xlog
> Feb 18 14:52:56 pgsql1 pgpool[11712]: Rsyncing file recovery.conf
> (with source deletion)
> Feb 18 14:52:56 pgsql1 pgpool[11715]: Executing pg_stop_backup
> Feb 18 14:52:56 pgsql1 pgpool: LOG:   pid 12706: 1st stage is done
> Feb 18 14:52:56 pgsql1 pgpool: LOG:   pid 12706: starting 2nd stage
> Feb 18 14:53:26 pgsql1 pgpool: LOG:   pid 3307: pool_process_query:
> child connection forced to terminate due to
> client_idle_limit_in_recovery(30) reached
> Feb 18 14:53:26 pgsql1 pgpool: LOG:   pid 24993: pool_process_query:
> child connection forced to terminate due to
> client_idle_limit_in_recovery(30) reached
> Feb 18 14:53:26 pgsql1 pgpool: LOG:   pid 3314: pool_process_query:
> child connection forced to terminate due to
> client_idle_limit_in_recovery(30) reached
> Feb 18 14:53:29 pgsql1 pgpool: LOG:   pid 12706: all connections from
> clients have been closed
> Feb 18 14:53:29 pgsql1 pgpool: LOG:   pid 12706: CHECKPOINT in the 2nd
> stage done
> Feb 18 14:53:29 pgsql1 pgpool: LOG:   pid 12706: starting recovery
> command: "SELECT pgpool_recovery('pgpool-recovery-pitr',
> 'pgsql2.freyatest.domain', '/var/l
> ib/postgresql/8.3/main')"
> Feb 18 14:53:29 pgsql1 pgpool[11725]: Executing pgpool-recovery-pitr
> as user postgres
> Feb 18 14:53:29 pgsql1 pgpool[11726]: Executing pg_switch_xlog
> Feb 18 14:53:29 pgsql1 pgpool[11730]: pg_switch_xlog executed successfully.
> Feb 18 14:53:29 pgsql1 pgpool[11734]: Executing pgpool_remote_start as
> user postgres
> Feb 18 14:53:29 pgsql1 pgpool[11735]: Starting remote PostgreSQL server
> Feb 18 14:53:34 pgsql1 pgpool: LOG:   pid 12706: 1 node restarted
> Feb 18 14:53:34 pgsql1 pgpool: LOG:   pid 12706:
> send_failback_request: fail back 1 th node request from pid 12706
> Feb 18 14:53:34 pgsql1 pgpool: LOG:   pid 12669: starting fail back.
> reconnect host pgsql2.freyatest.domain(5432)
> Feb 18 14:53:34 pgsql1 pgpool: LOG:   pid 12669: execute command:
> /var/lib/postgresql/8.3/main/pgpool-failback 1 pgsql2.freyatest.domain
> 5432 /var/lib/postgre
> sql/8.3/main 0 0
> Feb 18 14:53:34 pgsql1 pgpool[11768]: Executing pgpool-failback as
> user postgres
> Feb 18 14:53:34 pgsql1 pgpool[11769]: Failback of node 1 at hostname
> pgsql2.freyatest.domain. New master node is 0. Old master node was 0.
> Feb 18 14:53:34 pgsql1 kernel: [2427427.254118] pgpool[3307] segfault
> at 10 ip 4137ac sp 7fff12fb3930 error 4 in pgpool[400000+b0000]
> Feb 18 14:53:34 pgsql1 pgpool: LOG:   pid 12669: failover_handler: set
> new master node: 0
> Feb 18 14:53:34 pgsql1 kernel: [2427427.267249] pgpool[3314] segfault
> at 10 ip 4137ac sp 7fff12fb3930 error 4 in pgpool[400000+b0000]
> Feb 18 14:53:34 pgsql1 pgpool: LOG:   pid 12669: failback done.
> reconnect host pgsql2.freyatest.domain(5432)
> Feb 18 14:53:34 pgsql1 pgpool: LOG:   pid 12706: recovery done
> 
> The thing is that pgpool-II was active and both nodes seemed to be
> online, but the error gave me the creeps. I got so scared that now I
> am using RC1 with the createindex patch you submitted and doing all
> the tests from scratch again. Recovering again did not produce the
> same error (using RC1 with the patch), although it was a quick
> operation as it did not have to transfer tons of gigabytes of
> information (they were already transfered before, when it gave the
> error).
> 
> I'll submit more as soon as I can. Too damn busy these days and can't
> really test as much as I would like :'(
> 
> -- 
> Jaume Sabater
> http://linuxsilo.net/
> 
> "Ubi sapientas ibi libertas"
> _______________________________________________
> Pgpool-general mailing list
> Pgpool-general at pgfoundry.org
> http://pgfoundry.org/mailman/listinfo/pgpool-general
-------------- next part --------------
Index: pool_process_query.c
===================================================================
RCS file: /cvsroot/pgpool/pgpool-II/pool_process_query.c,v
retrieving revision 1.137
retrieving revision 1.138
diff -c -r1.137 -r1.138
*** pool_process_query.c	6 Feb 2009 15:30:51 -0000	1.137
--- pool_process_query.c	10 Feb 2009 01:11:43 -0000	1.138
***************
*** 1,6 ****
  /* -*-pgsql-c-*- */
  /*
!  * $Header: /cvsroot/pgpool/pgpool-II/pool_process_query.c,v 1.137 2009/02/06 15:30:51 t-ishii Exp $
   *
   * pgpool: a language independent connection pool server for PostgreSQL 
   * written by Tatsuo Ishii
--- 1,6 ----
  /* -*-pgsql-c-*- */
  /*
!  * $Header: /cvsroot/pgpool/pgpool-II/pool_process_query.c,v 1.138 2009/02/10 01:11:43 t-ishii Exp $
   *
   * pgpool: a language independent connection pool server for PostgreSQL 
   * written by Tatsuo Ishii
***************
*** 3910,3917 ****
  		T_ViewStmt,		/* CREATE VIEW */
  		T_LoadStmt,
  		T_CreateDomainStmt,
! 		T_CreatedbStmt,
! 		T_DropdbStmt,
  		T_CreateSeqStmt,
  		T_AlterSeqStmt,
  		T_VariableSetStmt,		/* SET */
--- 3910,3919 ----
  		T_ViewStmt,		/* CREATE VIEW */
  		T_LoadStmt,
  		T_CreateDomainStmt,
! 		/*
! 		  T_CreatedbStmt,	CREATE DATABASE/DROP DATABASE cannot execute inside a transaction block
! 		  T_DropdbStmt,
! 		*/
  		T_CreateSeqStmt,
  		T_AlterSeqStmt,
  		T_VariableSetStmt,		/* SET */


More information about the Pgpool-general mailing list