[Pgpool-committers] pgpool - pgpool-II: Fix segfault in following scenario: - Add new node

User T-ishii t-ishii at pgfoundry.org
Tue Aug 23 04:36:58 UTC 2011


Log Message:
-----------
Fix segfault in following scenario:
- Add new node in pgpool.conf.
- Reload pgpool.conf. At this point new is in down status.
- Connect using psql and do some query.
- Failback the new node.
- Do another query and pgpool child segfaults.
- Worker child segfaults

To fix this,

- Initialize private_backend_status with MAX_NUM_BACKENDS, rather than
  NUM_BACKENDS.

- Add signal handler to worker process and pcp child process. When a
  failback event occurs, pgpool main sends SIGUSR1 to those processes.

- Those processes set restart request flag and restart whenever
  convenient.

Fix suggested by Gurjeet Singh.

Modified Files:
--------------
    pgpool-II:
        child.c (r1.72 -> r1.73)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgpool/pgpool-II/child.c?r1=1.72&r2=1.73)
        main.c (r1.108 -> r1.109)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgpool/pgpool-II/main.c?r1=1.108&r2=1.109)
        pcp_child.c (r1.25 -> r1.26)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgpool/pgpool-II/pcp_child.c?r1=1.25&r2=1.26)
        pool.h (r1.92 -> r1.93)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgpool/pgpool-II/pool.h?r1=1.92&r2=1.93)
        pool_worker_child.c (r1.11 -> r1.12)
        (http://cvs.pgfoundry.org/cgi-bin/cvsweb.cgi/pgpool/pgpool-II/pool_worker_child.c?r1=1.11&r2=1.12)


More information about the Pgpool-committers mailing list