[Pgpool-committers] pgpool - pgpool-II: * Change type of InRecovery variable to

User Y-asaba y-asaba at pgfoundry.org
Tue Jul 10 09:56:07 UTC 2007


Log Message:
-----------
* Change type of InRecovery variable to sig_atomic_t*

* Fixed kind mismatch error when deadlock error occured.
The problem is the following senario.

  A: BEGIN:
  B: BEGIN;
  A: LOCK TABLE t1 IN SHARE ROW EXCLUSIVE MODE;
  B: LOCK TABLE t2 IN SHARE ROW EXCLUSIVE MODE;
  A: LOCK TABLE t2 IN SHARE ROW EXCLUSIVE MODE;
  B: LOCK TABLE t1 IN SHARE ROW EXCLUSIVE MODE;

Transaction "A" aborts on master node, but it completes on another
nodes. It causes wrong failover.

So pgpool checks deadlock error(code == '40P01') and sends error query
to another nodes.

Modified Files:
--------------
    pgpool-II:
        main.c (r1.12 -> r1.13)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgpool/pgpool-II/main.c.diff?r1=1.12&r2=1.13)
        pool.h (r1.7 -> r1.8)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgpool/pgpool-II/pool.h.diff?r1=1.7&r2=1.8)
        pool_process_query.c (r1.29 -> r1.30)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgpool/pgpool-II/pool_process_query.c.diff?r1=1.29&r2=1.30)
        pool_stream.c (r1.3 -> r1.4)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgpool/pgpool-II/pool_stream.c.diff?r1=1.3&r2=1.4)


More information about the Pgpool-committers mailing list