Re: drop view race condition

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.

Browse pgsql-bugs by date

  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