Thread: Strategy for unlocking query

Strategy for unlocking query

From
"Graham Vickrage"
Date:
I have just done a rather large transaction via a telnet/psql session which
executed OK. The problem occured when the telnet session timed out before I
could commit the rows.

This must have locked the rows in question because when I tried to vacuum
the table it just hung.

What is the best way of dealing with this problem as I ended up stopping and
restarting the postmaster?

Also are functions within functions dealt with in a 'transactional' sense?

Cheers

Graham

Attachment

Re: Strategy for unlocking query

From
Tom Lane
Date:
"Graham Vickrage" <graham@digitalplanit.com> writes:
> I have just done a rather large transaction via a telnet/psql session which
> executed OK. The problem occured when the telnet session timed out before I
> could commit the rows.

> This must have locked the rows in question because when I tried to vacuum
> the table it just hung.

Probably the backend process was still there and didn't yet realize that
the client connection had died.  It would notice eventually, but I think
the timeout involved is typically an hour or so (this is determined by
the TCP protocols and isn't under our control).

> What is the best way of dealing with this problem as I ended up stopping and
> restarting the postmaster?

It would've been sufficient to find and SIGTERM the individual backend
from the lost session.
        regards, tom lane