> > In this case, SIGINT (query cancel) will not help, because
> all locks
> > held by the transaction will still be held.
>
> Wrong.
Really?
Please point out where I am wrong in this:
SESSION A: BEGIN TRANSACTION
SESSION A: LOCK TABLE foo IN ACCESS EXCLUSIVE MODE
SESSION B: SELECT * FROM foo <-- blocks (expected)!
not-in-session: KILL -INT <pid_of_session_A>(at this point, <pid_of_session_A> is listed as "idle in transaction")
SESSION B: <-- still blcoks....
SESSION A: ROLLBACK
SESSION B: <-- now completes
If I kill it with TERM instead of INT, SESSION B is released at that
point.
Am I missing something very obvious here?
This is on:PostgreSQL 7.4.2 on i686-pc-linux-gnu, compiled by GCC 2.95.3
//Magnus