From: | "Ed L(dot)" <pgsql(at)bluepolka(dot)net> |
---|---|
To: | pgsql-bugs(at)postgresql(dot)org |
Subject: | Re: drop view race condition |
Date: | 2004-12-05 19:56:07 |
Message-ID: | 200412051256.07275.pgsql@bluepolka.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
On Sunday December 5 2004 12:54, Ed L. wrote:
> There appears to be a race condition in which dropping a view and
> replacing it with an identically-named table inside one transaction while
> other transactions are concurrently updating the view/table causes the
> following error:
>
> WARNING: Error occurred while executing PL/pgSQL function f
> WARNING: line 16 at SQL statement
> ERROR: RelationClearRelation: relation NNN deleted while still in use
>
> Here's basically how to reproduce this bug:
>
> create table foo_1...
> create table foo_2... (identical to foo_1)
> create view foo as select * from foo_1 union all select * from foo_2;
> create "do instead" rule on foo view that redirects foo inserts into
> foo_2;
>
> create table bar...
> create trigger+func that inserts into foo on insert to bar;
>
> Next, start a couple of processes that continually insert one row at a
> time into bar as fast as possible (they should result in rows inserted
> into foo_1);
>
> Finally, run the following in a transaction:
>
> begin;
> drop view foo cascade;
> alter table foo_2 rename to foo;
> end;
>
> Sometimes this works without error, but many times it will result in the
> above error. Wratcheting up the number of processes writing to bar seems
> to increase the odds of encountering the race condition error.
>
> Ed
Forgot to mention this occurs on 7.3.4 and 7.4.6.
From | Date | Subject | |
---|---|---|---|
Next Message | Devrim GUNDUZ | 2004-12-05 19:59:26 | Re: Configure error on Openssl with Beta5 |
Previous Message | Tom Lane | 2004-12-05 19:54:38 | Re: serial drop error |