BUG #14544: libpq: specifying 'target_session_attrs=read-write' prevents use of PQsendQuery

From: jordal(at)amazon(dot)com
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #14544: libpq: specifying 'target_session_attrs=read-write' prevents use of PQsendQuery
Date: 2017-02-13 19:43:55
Message-ID: 20170213194355.6101.10039@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 14544
Logged by: Jordan Lange
Email address: jordal(at)amazon(dot)com
PostgreSQL version: Unsupported/Unknown
Operating system: Linux
Description:

As a part of the commit that adds support for specifying multiple hosts in
libpq
(https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=721f7bd3cbccaf8c07cad2707826b83f84694832)
I believe there's a small bug in the code that checks a connection to see if
it's writable in PQconnectPoll.

There's a switch statement that consumes the input of 'show
transaction_read_only', but this code doesn't loop on PQgetResult until it
returns NULL which leaves the connection in a state where the application
would need to call PQgetResult once more before being able to submit
queries.

A simple fix would be to call PQgetResult once more after the processing is
done (and before erroring out), perhaps with some simple sanity check that
it then returns NULL.

Repro steps:
1. Establish a connection with PQconnectdb and ensure you add
“target_session_attrs=read-write” to the connection string
2. Try to submit a query using PQsendQuery on the returned connection
object
3. PQsendQuery fails, and the error message gets set to “another command is
already in progress”

Reference libpq doc that says PQgetResult must be called until it returns
NULL: https://www.postgresql.org/docs/current/static/libpq-async.html.

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Michael Paquier 2017-02-14 00:01:32 Re: BUG #14543: libpq fails with group readable ssl keys
Previous Message postgres 2017-02-13 18:43:23 BUG #14543: libpq fails with group readable ssl keys