Обсуждение: CLUSTER bug

Поиск
Список
Период
Сортировка

CLUSTER bug

От
Darren Steven
Дата:
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.

Re: CLUSTER bug

От
Bruce Momjian
Дата:
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

Re: CLUSTER bug

От
Bruce Momjian
Дата:
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

Re: CLUSTER bug

От
Tom Lane
Дата:
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

Re: CLUSTER bug

От
Bruce Momjian
Дата:
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