Nicholas Wilson <nwilson5@gmail.com> writes:
> I'm running postgresql 9.0.
> I was running several processes and did "sudo service postgres restart" and
> it has thrown a fit.
> 2012-02-24 12:45:13 PST::@:[16968]: PANIC: GIN metapage disappeared
> 2012-02-24 12:45:13 PST::@:[16968]: CONTEXT: xlog redo Update metapage,
> node: 1663/16558714/114537692 blkno: 85
Hmm ... had you recently dropped a GIN index? It looks to me like this
code is not obeying the proper coding conventions for WAL recovery
(in ginxlog.c):
metabuffer = XLogReadBuffer(data->node, GIN_METAPAGE_BLKNO, false);
if (!BufferIsValid(metabuffer))
elog(PANIC, "GIN metapage disappeared");
metapage = BufferGetPage(metabuffer);
A quick-and-dirty patch would be to change the elog call to just a
"return;".
Meanwhile, you should not have gotten into this situation if the server
was allowed to do a clean shutdown ... does your service script do a
"mode immediate" stop? If so, maybe that should be reconsidered.
regards, tom lane