Re: Patch: Implement failover on libpq connect level.
Victor Wagner <vitus@wagner.pp.ru>
From: Victor Wagner <vitus@wagner.pp.ru>
To: pgsql-hackers@postgresql.org
Date: 2015-12-10T04:54:19Z
Lists: pgsql-hackers
Attachments
- libpq-failover-5.patch (text/x-patch) patch
On Mon, 07 Dec 2015 15:26:33 -0500
Korry Douglas <korry.douglas@enterprisedb.com> wrote:
> The problem seems to be in PQconnectPoll() in the case for
> CONNECTION_AUTH_OK, specifically this code:
>
> /* We can release the address list now. */
> pg_freeaddrinfo_all(conn->addrlist_family, conn->addrlist);
> conn->addrlist = NULL;
> conn->addr_cur = NULL;
> That frees up the list of alternative host addresses. The state
> machine then progresses to CONNECTION_CHECK_RO (which invokes
> pg_is_in_recovery()), then CONNECTION_CHECK_RW (waiting for the
Thank you for pointing to this problem. I've overlooked it. Probably
I should improve my testing scenario.
I', attaching new version of the patch, which, hopefully, handles
address list freeing correctly.
--
Victor Wagner <vitus@wagner.pp.ru>
Commits
-
libpq: Add target_session_attrs parameter.
- 721f7bd3cbcc 10.0 landed
-
Remove superuser checks in pgstattuple
- fd321a1dfd64 10.0 cited
-
Fix unwanted flushing of libpq's input buffer when socket EOF is seen.
- c405918858c0 9.6.0 cited