PQExec returns null question

Lists: Postg와이즈 토토SQL :
From: Donald Carlile <carlile(at)me(dot)com>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: PQExec returns null question
Date: 2014-10-20 16:53:20
Message-ID: D2BB3EEC-5FA7-4EB3-B232-ADBBC06590B0@me.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: Postg와이즈 토토SQL :

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 memory conditions. 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, once this starts happening, it continues for every subsequent query. WE have found that restarting the machine will remedy it for a time, but is there a less drastic action we can take that will also remedy it? Perhaps stopping and starting PostgreSQL? Or are system resources being consumed to the level that a system restart is required?

Many Thanks,
Don Carlile


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Donald Carlile <carlile(at)me(dot)com>
Cc: pgsql-interfaces(at)postgresql(dot)org
Subject: Re: PQExec returns null question
Date: 2014-10-20 17:31:08
Message-ID: 2666.1413826268@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-interfaces

Donald Carlile <carlile(at)me(dot)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 shouldnt happen except in out of memory conditions. 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


From: Donald Carlile <carlile(at)me(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-interfaces(at)postgresql(dot)org
Subject: Re: PQExec returns null question
Date: 2014-10-20 19:28:46
Message-ID: 1C7ADC29-7929-4D53-AB0B-A6CC5A8263CB@me.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-interfaces

Tom,
Thanks for the reply. I had thought we were testing for loss of connection before we send a query, but it doesn’t appear that we are. I’ll go back and look at the postmaster log to see if I can find more information. I’ll also check to see 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(at)sss(dot)pgh(dot)pa(dot)us> wrote:

> Donald Carlile <carlile(at)me(dot)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 memory conditions. 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