pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Geoffrey <esoteric@3times25.net>
To: pgsql-general@postgresql.org
To: pgsql-interfaces@postgresql.org
Subject: Re: help with error message from perl Pg
Date: Tue, 20 Jun 2006 10:20:19 -0400
Message-ID: <44980423.7080109@3times25.net> (raw)
In-Reply-To: <20060620135945.GB25678@svana.org>
References: <4497F919.7050203@3times25.net>
	<20060620135945.GB25678@svana.org>

Martijn van Oosterhout wrote:
> On Tue, Jun 20, 2006 at 09:33:13AM -0400, Geoffrey wrote:
>> We have an unusual problem with some perl code that is processing data 
>> via DBD facility.  Basically, the code consists of various subroutines 
>> that are identified in a hash.  The primary script then references the 
>> subroutines through a &$prog(...) syntax.  What appears to happen is 
>> that all subroutines will run just fine if they do not need to do any 
>> deletes or updates to the database.  Any subroutine that does a delete 
>> or update runs fine, but the subsequent routine fails with the following 
>> error:
>>
>> prgcaphlg: FATAL:  invalid frontend message type 78
> 
> Errors in the FE-BE protocol are usually caused by users trying to use
> the same connection from multiple threads simultaneously. libpq doesn't
> handle that and so ends up sending things out of order.
> 
> Are you using threads?

Not intentionally.  I'm assuming I would have to specify a threaded 
process explicitly.

> Also, the database connection, how is the handle passed around? Youre
> not closing it accedently somewhere?

We considered that and have verified that we are not closing it.  But, 
the question came up, should we be passing it by reference or value?  We 
are doing the following:

my $conn = Pg::connectdb ("dbname=$db port=$port");
.
.
my $retVal = &$prog($conn, @args);

Question is, should we be doing:

my $retVal = &$prog(\$conn, @args);


FYI, there's no expectation of changing $conn in anyway within the sub 
routines.

-- 
Until later, Geoffrey

Any society that would give up a little liberty to gain a little
security will deserve neither and lose both.  - Benjamin Franklin



view thread (9+ messages)  latest in thread

Message-ID: <44980423.7080109@3times25.net>
Permalink:  ../44980423.7080109@3times25.net/
Also on:    postgresql.org/message-id/44980423.7080109@3times25.net

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: esoteric@3times25.net, pgsql-general@postgresql.org
  Subject: Re: help with error message from perl Pg
  In-Reply-To: <44980423.7080109@3times25.net>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox