Misunderstanding transactions and locks

From: "Michael P(dot) Soulier" <michael_soulier(at)mitel(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Misunderstanding transactions and locks
Date: 2010-06-16 16:21:16
Message-ID: 20100616162116.GH16761@e-smith.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

I'm using Django with Postgres 8.3.9 on CentOS Linux.

I'm trying to figure out why locking isn't working as I'm expecting. I have a
an operation wrapped in a transaction where I explicitely grab an exclusive
lock on my table. When another process concurrently runs to do the same, it
should block on attempting to acquire the exclusive lock, no?

That is not what I am seeing. I see two processes both doing this

2010-06-16 12:14:31.909608500 LOG: connection received: host=[local]
2010-06-16 12:14:31.909748500 DEBUG: forked new backend, pid=30726 socket=6
2010-06-16 12:14:31.909784500 LOG: connection authorized: user=tugdbuser
database=tugd
b
2010-06-16 12:14:31.911516500 LOG: statement: SET DATESTYLE TO 'ISO'
2010-06-16 12:14:31.911630500 LOG: statement: SHOW client_encoding
2010-06-16 12:14:31.911768500 LOG: statement: SHOW
default_transaction_isolation
2010-06-16 12:14:31.911849500 LOG: statement: SET client_encoding = 'UTF8'
2010-06-16 12:14:31.911972500 LOG: statement: BEGIN; SET TRANSACTION
ISOLATION LEVEL R
EAD COMMITTED
2010-06-16 12:14:31.912028500 LOG: statement: SET TIME ZONE
E'America/New_York'
2010-06-16 12:14:31.912373500 LOG: statement: SELECT version()
...skipping...
2010-06-16 12:14:31.913008500 LOG: statement: LOCK TABLE instances IN ROW
EXCLUSIVE MODE

The first lock does not seem to prevent the second from completing.

Am I misunderstanding how locks work in postgres?

Thanks,
Mike
--
Michael P. Soulier <michael_soulier(at)mitel(dot)com>, 613-592-2122 x2522
"Any intelligent fool can make things bigger and more complex... It takes a
touch of genius - and a lot of courage to move in the opposite direction."
--Albert Einstein

Responses

Browse pgsql-general by date

  From Date Subject
Next Message sunpeng 2010-06-16 16:42:25 hi, i write a function in postgresql source code, how to register this function?
Previous Message Stephen Frost 2010-06-16 16:07:28 Re: GSS Authentication