[Pgpool-committers] pgpool - pgpool: Fixed kind mismatch error when deadlock error occured.

User Y-asaba y-asaba at pgfoundry.org
Wed Jul 11 01:40:17 UTC 2007


Log Message:
-----------
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:
        pool.h (r1.17 -> r1.18)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgpool/pgpool/pool.h.diff?r1=1.17&r2=1.18)
        pool_process_query.c (r1.49 -> r1.50)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgpool/pgpool/pool_process_query.c.diff?r1=1.49&r2=1.50)
        pool_stream.c (r1.9 -> r1.10)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgpool/pgpool/pool_stream.c.diff?r1=1.9&r2=1.10)


More information about the Pgpool-committers mailing list