Thread: CLUSTER bug
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 whileplaying 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 toits 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.
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 whileplaying 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 backto 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
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
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
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 whileplaying 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 backto 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