[pgpool-general: 3627] Re: PGPool sending r/w queries to wrong DB node

Pablo Sanchez pablo at blueoakdb.com
Wed Apr 15 22:22:23 JST 2015


[ Comments below, in-line ]

On 04/15/2015 07:01 AM, Yugo Nagata wrote:
> Hi,

Hi Yugo,

> How did you terminate the DELETE? If you terminated by
> pg_terminal_backend(), this caused the degerenation.  I confirmed
> this by issuing "SELECT pg_sleep(100)" through pgpool-II.

Aha!  I did terminate the DELETEs as follows:

    SELECT pg_terminate_backend(pid)
    FROM   pg_stat_activity
    WHERE  query LIKE 'delete%'
    AND    state ='active';

At the time we had this "pgpool.conf" setting:

    fail_over_on_backend_error = on

As I mentioned earlier in the thread, after the error I've changed it
to:

    fail_over_on_backend_error = off

With "fail_over_on_backend_error = off", I tried the Unit Test you
provided and pgpool did not degenerate.  :)

Does pg_cancel_backend() also cause a degeneration?

In an effort to improve the documentation ... the current pgpool-II
user manual doesn't mention anything about a pg_terminate_backend()
causing a failover.

    http://www.pgpool.net/docs/latest/pgpool-en.html:

Perhaps we can append to the "fail_over_on_backend_error" section the
following:

     fail_over_on_backend_error V2.3 -

     ... old text here ...

     CAUTION:  when set to /on/, a pg_terminate_backend() or
     pg_cancel_backend() will cause a failover.

Cheers,
--
Pablo Sanchez - Blueoak Database Engineering, Inc
Ph:    819.459.1926         Blog:  http://pablo-blog.blueoakdb.com
iNum:  883.5100.0990.1054



More information about the pgpool-general mailing list