Re: [GENERAL] PANIC: heap_update_redo: no block

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: [GENERAL] PANIC: heap_update_redo: no block
Дата
Msg-id 14448.1143472969@sss.pgh.pa.us
обсуждение исходный текст
Ответы Re: [GENERAL] PANIC: heap_update_redo: no block  (Greg Stark <gsstark@mit.edu>)
Список pgsql-hackers
[ redirecting to a more appropriate mailing list ]

"Alex bahdushka" <bahdushka@gmail.com> writes:

> LOG:  REDO @ D/19176610; LSN D/19176644: prev D/191765E8; xid 81148979: Heap - clean: rel 1663/16386/16559898; blk 0
> LOG:  REDO @ D/19176644; LSN D/191766A4: prev D/19176610; xid 81148979: Heap - move: rel 1663/16386/16559898; tid
1/1;new 0/10
 
> PANIC:  heap_update_redo: no block: target blcknum: 1, relation(1663/16386/16559898) length: 1

I think what's happened here is that VACUUM FULL moved the only tuple
off page 1 of the relation, then truncated off page 1, and now
heap_update_redo is panicking because it can't find page 1 to replay the
move.  Curious that we've not seen a case like this before, because it
seems like a generic hazard for WAL replay.

The simplest fix would be to treat WAL records as no-ops if they refer
to nonexistent pages, but that seems much too prone to hide real failure
conditions.  Another thought is to remember that we ignored this record,
and then complain if we don't see a TRUNCATE that would've removed the
page.  That would be pretty complicated but not impossible.  Anyone have
a better idea?
        regards, tom lane


В списке pgsql-hackers по дате отправления:

Предыдущее
От: "Dave Page"
Дата:
Сообщение: Re: Remote administration contrib module
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Recovery from multi trouble