Geoffrey <esoteric@xxxxxxxxxxxx> writes: > ... 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 > server closed the connection unexpectedly > This probably means the server terminated abnormally > before or while processing the request. > Searching google for 'invalid frontend message type 78' returns no hits, > which is a scary thing. 78 would be ASCII 'N', but that's not really significant AFAICS. The problem here is that the frontend and backend have lost sync: the server is expecting to find a message beginning at a place in the frontend data stream that evidently isn't the start of a message. In short, the frontend has sent corrupted data of some sort. Martijn's theory of inadequately locked threaded access is certainly one likely way this can happen, but it's not the only one. It might be useful for you to capture the data stream (with something like tcpdump) and try to get more information about the nature of the corruption. Frequently, if you can identify "ah-hah, THIS data is being inserted into the middle of THAT" or whatever, the cause becomes obvious. Also, before you spend too much time on this, make sure your DBI and DBD::Pg modules are up-to-date. If it's a bug in that level, it'd be foolish to waste much of your own time chasing it. regards, tom lane