Re: Core reported from vaccum function.

Поиск
Список
Период
Сортировка
Искать
От
Alvaro Herrera
Тема
Re: Core reported from vaccum function.
Дата
Msg-id
20070730163001.GC7628@alvh.no-ip.org
Ответ на
Re: Core reported from vaccum function. (Mavinakuli, Prasanna (STSD))
Список
Дерево обсуждения
Core reported from vaccum function. "Mavinakuli, Prasanna (STSD)" <prasanna.b-m@hp.com>
Re: Core reported from vaccum function. Alvaro Herrera <alvherre@commandprompt.com>
Re: Core reported from vaccum function. "Mavinakuli, Prasanna (STSD)" <prasanna.b-m@hp.com>
Re: Core reported from vaccum function. Alvaro Herrera <alvherre@commandprompt.com>
Re: Core reported from vaccum function. "Mavinakuli, Prasanna (STSD)" <prasanna.b-m@hp.com>
Re: Core reported from vaccum function. Alvaro Herrera <alvherre@commandprompt.com>
Re: Core reported from vaccum function. Bruce Momjian <bruce@momjian.us>
Re: Core reported from vaccum function. "Mavinakuli, Prasanna (STSD)" <prasanna.b-m@hp.com>
Re: Core reported from vaccum function. Tom Lane <tgl@sss.pgh.pa.us>
Timezone - UTC "Manchenahalli, Raghunandan (STSD)" <raghunandan.manchenahalli@hp.com>
Re: Timezone - UTC Tom Lane <tgl@sss.pgh.pa.us>
Re: Core reported from vaccum function. "Mavinakuli, Prasanna (STSD)" <prasanna.b-m@hp.com>
Re: Core reported from vaccum function. Alvaro Herrera <alvherre@commandprompt.com>
Re: Core reported from vaccum function. "Mavinakuli, Prasanna (STSD)" <prasanna.b-m@hp.com>
Mavinakuli, Prasanna (STSD) wrote:
>  
> Hello Alvaro,
> 
> Thanks for your reply.
> 
> We could see 
> "Fix potential-data-corruption bug in how VACUUM FULL handles UPDATE
> chains (Tom, Pavan Deolasee) " in 7.4.17 release notes.
> 
> Could you please elaborate more on the above problem.Meaning what was
> the actual problem and what fix has been done etc?

Here is the CVS log entry:

2007-03-14 14:48  tgl

    * src/backend/commands/vacuum.c (1.263.2.3):

Fix a longstanding bug in VACUUM FULL's handling of update chains.  The code
did not expect that a DEAD tuple could follow a RECENTLY_DEAD tuple in an
update chain, but because the OldestXmin rule for determining deadness is a
simplification of reality, it is possible for this situation to occur
(implying that the RECENTLY_DEAD tuple is in fact dead to all observers,
but this patch does not attempt to exploit that).  The code would follow a
chain forward all the way, but then stop before a DEAD tuple when backing
up, meaning that not all of the chain got moved.  This could lead to copying
the chain multiple times (resulting in duplicate copies of the live tuple at
its end), or leaving dangling index entries behind (which, aside from
generating warnings from later vacuums, creates a risk of wrong query
results or bogus duplicate-key errors once the heap slot the index entry
points to is repopulated).

The fix is to recheck HeapTupleSatisfiesVacuum while following a chain
forward, and to stop if a DEAD tuple is reached.  Each contiguous group
of RECENTLY_DEAD tuples will therefore be copied as a separate chain.
The patch also adds a couple of extra sanity checks to verify correct
behavior.

Per report and test case from Pavan Deolasee.


-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.
В списке pgsql-general по дате отправления
От: Hannes Dorbath
Дата:
Сообщение: Re: Data on NAS / NFS
От: Cultural Sublimation
Дата:
FAQ