Обсуждение: PQExec returns null question

Поиск
Список
Период
Сортировка

PQExec returns null question

От
Donald Carlile
Дата:
Our OS X application uses PostgreSQL as a back end through pqlib. Some of our customers are reporting occasional
PGRES_FATAL_ERRORs,but PQresultErrorMessage returns a blank string. I have looked at the sources, and as far as I can
tell,this condition can only occur when PQExec returns a null. The docs say that this shouldn’t happen except in out of
memoryconditions. I am not using any Copy actions. 

I have two broad questions. 1) What can I do to prevent this from happening? 2) If it does happen, how can I remedy it?

I have increased the shared memory, and that seems to have helped somewhat, but it still occurs. In our experience,
oncethis starts happening, it continues for every subsequent query.  WE have found that restarting the machine will
remedyit for a time, but is there a less drastic action we can take that will also remedy it? Perhaps stopping and
startingPostgreSQL? Or are system resources being consumed to the level that a system restart is required? 

Many Thanks,
Don Carlile


Re: PQExec returns null question

От
Tom Lane
Дата:
Donald Carlile <carlile@me.com> writes:
> Our OS X application uses PostgreSQL as a back end through pqlib. Some of our customers are reporting occasional
PGRES_FATAL_ERRORs,but PQresultErrorMessage returns a blank string. I have looked at the sources, and as far as I can
tell,this condition can only occur when PQExec returns a null. The docs say that this shouldn�t happen except in out of
memoryconditions. I am not using any Copy actions.
 
> I have two broad questions. 1) What can I do to prevent this from happening? 2) If it does happen, how can I remedy
it?

There's a recent bug report
http://www.postgresql.org/message-id/20141019003736.2662.84048@wrigleys.postgresql.org
suggesting that this might happen after a loss of connection.  It'd be a
libpq bug that it's not providing a more useful error message in such a
case, but probably the more interesting question from your standpoint
is why is the server dropping the connection.  Have you looked into the
postmaster log to see if anything gets logged when this happens?

If it's not a connection-loss case then you've found some new bug that
we ought to look into, but without a reproducible test case it's hard
to do much in that line.
        regards, tom lane



Re: PQExec returns null question

От
Donald Carlile
Дата:
Tom,
Thanks for the reply. I had thought we were testing for loss of connection before we send a query, but it doesn’t
appearthat we are. I’ll go back and look at the postmaster log to see if I can find more information. I’ll also check
tosee if there’s a way to really test connection before we send a query. 

Regards,
Don

On Oct 20, 2014, at 10:31 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

> Donald Carlile <carlile@me.com> writes:
>> Our OS X application uses PostgreSQL as a back end through pqlib. Some of our customers are reporting occasional
PGRES_FATAL_ERRORs,but PQresultErrorMessage returns a blank string. I have looked at the sources, and as far as I can
tell,this condition can only occur when PQExec returns a null. The docs say that this shouldn’t happen except in out of
memoryconditions. I am not using any Copy actions. 
>> I have two broad questions. 1) What can I do to prevent this from happening? 2) If it does happen, how can I remedy
it?
>
> There's a recent bug report
> http://www.postgresql.org/message-id/20141019003736.2662.84048@wrigleys.postgresql.org
> suggesting that this might happen after a loss of connection.  It'd be a
> libpq bug that it's not providing a more useful error message in such a
> case, but probably the more interesting question from your standpoint
> is why is the server dropping the connection.  Have you looked into the
> postmaster log to see if anything gets logged when this happens?
>
> If it's not a connection-loss case then you've found some new bug that
> we ought to look into, but without a reproducible test case it's hard
> to do much in that line.
>
>             regards, tom lane