Thread: Create table doesn't always respect atomicity of transactions.

Create table doesn't always respect atomicity of transactions.

From
Zalman Stern
Date:
Off and on, I've been seeing a situation where the following code:begin;create table foo (name text);abort; leaves a
filecalled "foo" in the database directory and
 
further attempts to create a relation called foo or to select anything from
it all fail.  The database has been left in an inconsistent state.

I filed a bug report on this earlier today as it seemed dead on repeatable.
But then I recompiled with debug symbols to have a go at figuring out what
was up and the problem went away. So I recompiled with full optimization
again and the problem still doesn't occur now. I've been starting over each
time with a fresh database so if it was some property of the database
itself, then that state is lost. But this is not the first time I've seen
this. Has any one else seen such a thing? Its rather troublesome 'cause when
it does happen, the database is somewhat unuseable until I remove the file
in question and I hate going in and removing files that are supposed to be
under Postgres' control...

Glancing at the code, I'm wondering if it is possible for a database to get
stuck in "bootstrap mode." It looks like that would cause problems with
transactions not properly unlink'ing files. Though I haven't scoped out the
details of that...

-Z-


Re: [SQL] Create table doesn't always respect atomicity of transactions.

From
Bruce Momjian
Date:
> Off and on, I've been seeing a situation where the following code:
>     begin;
>     create table foo (name text);
>     abort; leaves a file called "foo" in the database directory and
> further attempts to create a relation called foo or to select anything from
> it all fail.  The database has been left in an inconsistent state.
> 
> I filed a bug report on this earlier today as it seemed dead on repeatable.
> But then I recompiled with debug symbols to have a go at figuring out what
> was up and the problem went away. So I recompiled with full optimization
> again and the problem still doesn't occur now. I've been starting over each
> time with a fresh database so if it was some property of the database
> itself, then that state is lost. But this is not the first time I've seen
> this. Has any one else seen such a thing? Its rather troublesome 'cause when
> it does happen, the database is somewhat unuseable until I remove the file
> in question and I hate going in and removing files that are supposed to be
> under Postgres' control...

We fixed this problem in 6.4 or 6.5.  Not sure why it goes away.

--  Bruce Momjian                        |  http://www.op.net/~candle maillist@candle.pha.pa.us            |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026