> This means either that libpq got a corrupt message from the server, or
> that libpq itself contains a bug in message parsing.  Given that no one
> else has reported similar problems, the idea that your app is somehow
> clobbering the libpq message buffer (and thus corrupting the message "in
> transit") has to be taken seriously.

Gee. My code corrupting memory. Like that's never happened before ;-) I just
had to ask though since I'm not seeing other signs right now.

> You mention pooling so I suppose this is a multi-threaded application
> ... are you being careful not to let any two threads try to use the same
> libpq PGconn at the same time?  libpq itself does not contain any
> locking that would make that safe, you need to provide the locking
> yourself.

I have a queue of pgconns. When a thread needs one it pops it off the queue,
and when it's done it pushes the pgconn back on, wrapped by a
stack-allocated class whose constructor and destructor take care of
acquiring and releasing the pgconn. The queue is a Mac OS thing, not my
code, so it's not a problem with sharing them, unfortunately. So I'll have
to keep looking for memory-munging bugs.

-- 
Scott Ribe
[EMAIL PROTECTED]
http://www.killerbytes.com/
(303) 722-0567 voice



---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

Reply via email to