Re: Do we force dependency? - Mailing list pgsql-hackers

From Qingqing Zhou
Subject Re: Do we force dependency?
Date
Msg-id d80gjj$1td1$1@news.hub.org
Whole thread Raw
In response to Do we force dependency?  (Qingqing Zhou <zhouqq@cs.toronto.edu>)
List pgsql-hackers
"Tom Lane" <tgl@sss.pgh.pa.us> writes
>
> That should be impossible because drop/create take out locks at the
> table level.  Can you provide a reproducible test case?
>

To reproduce it:
Concurrently execute the following sql script serveral times:
("without oids","tablespace testsp" should be optional)

---

drop table T_ST;
drop table T_IT;
drop table T_DS;
drop table T_WR;

CREATE TABLE T_WR (
col1 int not NULL,
primary key(col1))
without oids tablespace testsp
;

CREATE TABLE T_DS (
col1 int not NULL,
col2 int not NULL,
primary key(col1, col2),
foreign key (col1) references T_WR(col1))
without oids tablespace testsp
;

CREATE TABLE T_IT (
col1 int not NULL,
primary key(col1))
without oids tablespace testsp
;

CREATE TABLE T_ST (
col1 int not null,
col2 int not null,
other_cols char (50) NULL ,
primary key(col1, col2),
foreign key(col1) references T_WR(col1),
foreign key(col2) references T_IT(col1))
without oids tablespace testsp
;

---

Actually I reproduced it at least 3 times on Pg8.0.1.

> If you can't make it happen easily by hand, one possible way to proceed
> is to run one or both sessions under gdb and set breakpoints at key
> places like recursiveDeletion().  If there is a timing issue it should
> be possible to expose it by delaying a process at the right places in
> this way.
>

Ok, I will do this and try to locate the exact place.

Regards,
Qingqing




pgsql-hackers by date:

Previous
From: Tom Lane
Date:
Subject: Re: Do we force dependency?
Next
From: "Qingqing Zhou"
Date:
Subject: Re: unsafe use of hash_search(... HASH_ENTER ...)