deadlock - Mailing list pgsql-general

From Alexey Nalbat
Subject deadlock
Date
Msg-id 200704091324.05033.nalbat@price.ru
Whole thread Raw
Responses Re: deadlock  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: deadlock  (Scott Marlowe <smarlowe@g2switchworks.com>)
List pgsql-general
Hello.

I've encountered deadlock on postgresql 8.1. Here is the simple example.

create table t1 (
 id1 integer primary key,
 val1 integer
);
create table t2 (
 id2 integer primary key,
 id1 integer references t1 on delete cascade,
 val1 integer,
 val2 integer,
 val3 integer
);
insert into t1 select
 generate_series(1,10) as id1;
insert into t2 select
 generate_series(1,100) as id2,
 generate_series(1,10) as id1;

Then three concurrent transaction start.

/*1*/ begin;
/*1*/ update t2 set val1=1 where id2=50;
/*1*/ update t2 set val2=2 where id2=50;
        /*2*/ begin;
        /*2*/ update t2 set val1=1 where id2=40;
        /*2*/ update t2 set val2=2 where id2=40;
        /*2*/ commit;
                /*3*/ begin;
                /*3*/ update t1 set val1=1 where id1=10;
/*1*/ update t2 set val3=3 where id2=50;

Here we have deadlock for transactions 1 and 3.

Is it bug? And if so, will it be fixed?

Or is it not a bug? What should I do then?

Thank you. Sorry for bad english.

--
Alexey A. Nalbat

Price Express
http://www.price.ru/
http://www.tyndex.ru/

pgsql-general by date:

Previous
From: "Avdhoot Kishore Saple"
Date:
Subject: local selectivity estimation - computing frequency of predicates
Next
From: ptjm@interlog.com (Patrick TJ McPhee)
Date:
Subject: Re: The rule question before, request official documentation on the problem