Re: [COMMITTERS] pgsql: Use asynchronous connect API in libpqwalreceiver
Andrew Dunstan <andrew.dunstan@2ndquadrant.com>
From: Andrew Dunstan <andrew.dunstan@2ndquadrant.com>
To: Tom Lane <tgl@sss.pgh.pa.us>,
Peter Eisentraut <peter.eisentraut@2ndquadrant.com>
Cc: pgsql-hackers@postgreSQL.org
Date: 2017-03-15T00:29:04Z
Lists: pgsql-hackers
On 03/03/2017 11:11 PM, Tom Lane wrote: > Peter Eisentraut <peter.eisentraut@2ndquadrant.com> writes: >> On 3/3/17 19:16, Tom Lane wrote: >>> Peter Eisentraut <peter_e@gmx.net> writes: >>>> Use asynchronous connect API in libpqwalreceiver >>> Buildfarm member bowerbird has been failing in the pg_rewind test since >>> this patch went in. It looks like it's failing to complete connections >>> from the standby; which suggests that something platform-specific is >>> missing from this commit, but I dunno what. >> Hmm, I wonder how widely tested the async connection API is on Windows >> at all. I only see bowerbird and jacana running bin-check on Windows. > Yeah, I was wondering if this is just exposing a pre-existing bug. > However, the "normal" path operates by repeatedly invoking PQconnectPoll > (cf. connectDBComplete) so it's not immediately obvious how such a bug > would've escaped detection. > > (After a long period of fruitless empirical testing I turned to the code) Maybe I'm missing something, but connectDBComplete() handles a return of PGRESS_POLLING_OK as a success while connectDBStart() seems not to. I don't find anywhere in our code other than libpqwalreceiver that actually uses that interface, so it's not surprising if it's now failing. So my bet is it is indeed a long-standing bug. cheers andr4ew -- Andrew Dunstan https://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
Commits
-
Fix WaitEventSetWait() to handle write-ready waits properly on Windows.
- f7819baa618c 10.0 landed
- 8e6333e1cb77 9.6.3 landed
-
Rewrite async-connection loop in libpqwalreceiver.c, once again.
- b5dd50f2c0ad 10.0 landed
-
Use asynchronous connect API in libpqwalreceiver
- 1e8a85009447 10.0 cited