Thread: duplicated tables

duplicated tables

From
Oleg Bartunov
Date:
Hi there,

yesterday, testing GIN fast update with CVS HEAD I was able to crash backend 
(Teodor already fixed the problem in 0.25 version of the patch)
and after restarting backend I found duplicated tables. 
How this can be possible and is this what somebody can see after crash ?
         List of relations Schema | Name  | Type  |  Owner
--------+-------+-------+---------- public | tt    | table | postgres public | tt    | table | postgres public | tt
|table | postgres public | tt    | table | postgres public | tt    | table | postgres public | tt2   | table | postgres
public| tt2   | table | postgres public | tt2   | table | postgres public | tt2   | table | postgres public | tt2   |
table| postgres public | ttins | table | postgres public | ttins | table | postgres public | ttins | table | postgres
public| ttins | table | postgres public | ttins | table | postgres
 
(15 rows)


    Regards,        Oleg
_____________________________________________________________
Oleg Bartunov, Research Scientist, Head of AstroNet (www.astronet.ru),
Sternberg Astronomical Institute, Moscow University, Russia
Internet: oleg@sai.msu.su, http://www.sai.msu.su/~megera/
phone: +007(495)939-16-83, +007(495)939-23-83


Re: duplicated tables

From
Tom Lane
Date:
Oleg Bartunov <oleg@sai.msu.su> writes:
> yesterday, testing GIN fast update with CVS HEAD I was able to crash backend 
> (Teodor already fixed the problem in 0.25 version of the patch)
> and after restarting backend I found duplicated tables. 
> How this can be possible and is this what somebody can see after crash ?

That doesn't look like duplicated tables so much as duplicated
pg_namespace rows --- try doing \d's query by hand and adding display
of pg_class.ctid and pg_namespace.ctid.  However, if that theory is
correct then the next question is what you were doing to pg_namespace...
        regards, tom lane


Re: duplicated tables

From
Teodor Sigaev
Date:
> That doesn't look like duplicated tables so much as duplicated
> pg_namespace rows --- try doing \d's query by hand and adding display
> of pg_class.ctid and pg_namespace.ctid.  However, if that theory is
> correct then the next question is what you were doing to pg_namespace...

The bug was dereferencing uninitialized pointer, and postgres dumps core 
immediately. And patch does nothing with namespace.

-- 
Teodor Sigaev                                   E-mail: teodor@sigaev.ru
  WWW: http://www.sigaev.ru/
 


Re: duplicated tables

From
Euler Taveira de Oliveira
Date:
Teodor Sigaev escreveu:
>> That doesn't look like duplicated tables so much as duplicated
>> pg_namespace rows --- try doing \d's query by hand and adding display
>> of pg_class.ctid and pg_namespace.ctid.  However, if that theory is
>> correct then the next question is what you were doing to pg_namespace...
> 
> The bug was dereferencing uninitialized pointer, and postgres dumps core
> immediately. And patch does nothing with namespace.
> 
Could you post a backtrace or a test case? Maybe it is worth adding an assert
or test at some point in the code.


--  Euler Taveira de Oliveira http://www.timbira.com/