CLUSTER bug

Started by Darren Stevenalmost 26 years ago5 messagesbugs
Jump to latest
#1Darren Steven
dsteven@nettas.telstra.com.au

Sorry for a downer on an excellent piece of software.

--
Darren Steven
Applications Specialist
Networking Tasmania
Telstra Australia
Ph.1800 813 302

Attachments:

bug.templatetext/plain; charset=us-ascii; name=bug.templateDownload
#2Bruce Momjian
bruce@momjian.us
In reply to: Darren Steven (#1)
Re: CLUSTER bug

We have gotten sporatic reports of problems with CLUSTER. Perhaps this
will prompt someone to find the problem and FIX IT FOR 7.0.1. :-)

Sorry for a downer on an excellent piece of software.

--
Darren Steven
Applications Specialist
Networking Tasmania
Telstra Australia
Ph.1800 813 302

If PostgreSQL failed to compile on your computer or you found a bug that
is likely to be specific to one platform then please fill out this form
and e-mail it to pgsql-ports@postgresql.org.

To report any other bug, fill out the form below and e-mail it to
pgsql-bugs@postgresql.org.

If you not only found the problem but solved it and generated a patch
then e-mail it to pgsql-patches@postgresql.org instead. Please use the
command "diff -c" to generate the patch.

You may also enter a bug report at http://www.postgresql.org/ instead of
e-mail-ing this form.

============================================================================
POSTGRESQL BUG REPORT TEMPLATE
============================================================================

Your name : Darren Steven
Your email address : dsteven@nettas.telstra.com.au

System Configuration
---------------------
Architecture (example: Intel Pentium) : Intel PIII

Operating System (example: Linux 2.0.26 ELF) : Linux 2.2.14

PostgreSQL version (example: PostgreSQL-6.5.1): PostgreSQL-7.0

Compiler used (example: gcc 2.8.0) : egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)

Please enter a FULL description of your problem:
------------------------------------------------

CLUSTER fails and appears to corrupt database. I don't know if this happened on other releases, found it by mistake while playing with 7.0

PS Great DB by the way.

Please describe a way to repeat the problem. Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------

Create a database, create a table. insert some data. create index on one of fields. CLUSTER indexname ON tablename;

With a large number of rows (so I can see it happeneing), I see the table being copied to a temp, and the renamed back to its original name. the problem is with the index :

dws=# create index testind on accesslog (alclient);
CREATE
dws=# cluster testind on accesslog;
ERROR: temp_674e00 is an index relation

temp_674e00 appears to be a copy of the index file.

psql now tells me the relation accesslog no longer exists

the same error also occurs on small tables.

If you know how this problem might be fixed, list the solution below:
---------------------------------------------------------------------

Sorry. I've looked at cluster.c and if I fix it I'll post it.

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
#3Bruce Momjian
bruce@momjian.us
In reply to: Darren Steven (#1)
Re: CLUSTER bug

Here is a reproducable failure for CLUSTER. Please, someone, find out
why this is happening so we can get it off our TODO list.

I now get:

test=> cluster i_te on prauflage;
ERROR: temp_4c92 is an index relation

---------------------------------------------------------------------------

It works. But why doesn't it work on my tables:

create table prauflage(
nr int4,
au int4,
pl text,
be text,
st int4,
vh bool,
ex int4,
primary key(nr,au));

prd=> create unique index i_te on prauflage(nr,au);
CREATE
prd=> cluster i_te on prauflage;
ERROR: Cannot create unique index. Table contains non-unique values

-- 
  Bruce Momjian                        |  http://www.op.net/~candle
  pgman@candle.pha.pa.us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026
#4Tom Lane
tgl@sss.pgh.pa.us
In reply to: Bruce Momjian (#2)
Re: CLUSTER bug

Bruce Momjian <pgman@candle.pha.pa.us> writes:

We have gotten sporatic reports of problems with CLUSTER. Perhaps this
will prompt someone to find the problem and FIX IT FOR 7.0.1. :-)

The "sporadic" aspect probably had something to do with referencing
already-freed storage, which looks like a bug that'd been there awhile.
However, CLUSTER was definitely broken completely by changes elsewhere
in 7.0. Anyone feel like adding a regression test for it?

regards, tom lane

#5Bruce Momjian
bruce@momjian.us
In reply to: Darren Steven (#1)
Re: CLUSTER bug

This was fixed in 7.0.1.

Sorry for a downer on an excellent piece of software.

--
Darren Steven
Applications Specialist
Networking Tasmania
Telstra Australia
Ph.1800 813 302

If PostgreSQL failed to compile on your computer or you found a bug that
is likely to be specific to one platform then please fill out this form
and e-mail it to pgsql-ports@postgresql.org.

To report any other bug, fill out the form below and e-mail it to
pgsql-bugs@postgresql.org.

If you not only found the problem but solved it and generated a patch
then e-mail it to pgsql-patches@postgresql.org instead. Please use the
command "diff -c" to generate the patch.

You may also enter a bug report at http://www.postgresql.org/ instead of
e-mail-ing this form.

============================================================================
POSTGRESQL BUG REPORT TEMPLATE
============================================================================

Your name : Darren Steven
Your email address : dsteven@nettas.telstra.com.au

System Configuration
---------------------
Architecture (example: Intel Pentium) : Intel PIII

Operating System (example: Linux 2.0.26 ELF) : Linux 2.2.14

PostgreSQL version (example: PostgreSQL-6.5.1): PostgreSQL-7.0

Compiler used (example: gcc 2.8.0) : egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)

Please enter a FULL description of your problem:
------------------------------------------------

CLUSTER fails and appears to corrupt database. I don't know if this happened on other releases, found it by mistake while playing with 7.0

PS Great DB by the way.

Please describe a way to repeat the problem. Please try to provide a
concise reproducible example, if at all possible:
----------------------------------------------------------------------

Create a database, create a table. insert some data. create index on one of fields. CLUSTER indexname ON tablename;

With a large number of rows (so I can see it happeneing), I see the table being copied to a temp, and the renamed back to its original name. the problem is with the index :

dws=# create index testind on accesslog (alclient);
CREATE
dws=# cluster testind on accesslog;
ERROR: temp_674e00 is an index relation

temp_674e00 appears to be a copy of the index file.

psql now tells me the relation accesslog no longer exists

the same error also occurs on small tables.

If you know how this problem might be fixed, list the solution below:
---------------------------------------------------------------------

Sorry. I've looked at cluster.c and if I fix it I'll post it.

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