Re: vacuum crash on 6.5.3

From: Tatsuo Ishii <t-ishii(at)sra(dot)co(dot)jp>
To: pgsql-hackers(at)postgresql(dot)org
Subject: Re: vacuum crash on 6.5.3
Date: 2000-12-29 14:16:36
Message-ID: 20001229231636F.t-ishii@sra.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

> Althoug this happens on old 6.5.3, I would like to know if this has
> been already fixed...
>
> Here is the scenario:
>
> 1) before vacuum, table A has 8850 tuples.
>
> 2) vacuum on table A makes postgres crashed.
>
> 3) it crashes at line 1758:
>
> Assert(num_moved == checked_moved);
>
> I examined variables using gdb. num_moved == 8849, check_moved ==
> 8813, num_tuples == 18.
>
> 4) if PostgreSQL is not compiled with assertion, vacuum does not
> crash. However, after vacuum, the number of tuples descreases from
> 8850 to 8814!! (I am not sure which number is correct, though)
>
> I think this is an important problem since a data loss might
> happen. Any idea?

It turns out that this was caused by vacuum's bug. Thanks to Hiroshi,
he has identified the problem. I have checked other version of
PostgreSQL, and found that at we have had the bug at least since
6.3.2, and it has been fixed in 7.0. Included are patches for 6.5.3 and
a test sript to reproduce the bug. Both of them are made by Hiroshi.
--
Tatsuo Ishii

Attachment Content-Type Size
vacuum_test.sql text/plain 1.5 KB
movein.diff text/plain 1.9 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael J Schout 2000-12-29 17:29:21 Re: Upper limit on number of buffers?
Previous Message Tom Lane 2000-12-29 05:32:23 Re: Assuming that TAS() will succeed the first time is verboten