On Tue, 2009-09-15 at 09:41 +0300, Heikki Linnakangas wrote:
> Simon Riggs wrote:
> > In recovery of GIN operations using CVS HEAD I see consistently
> >
> > TRAP: FailedAssertion("!(((bool) ((spcNode) != ((Oid) 0))))", File:
> > "tablespace.c", Line: 116)
> >
> > Looking at code, "new list page" WAL record is a GIN record type and at
> > line 115 in gin/ginfast.c I see that the value of the node is unset.
> > That means XLOG_GIN_INSERT_LISTPAGE always has specNode == 0 and so
> > triggers the assertion failure.
>
> Yeah, so it seems. The fix should be as simple as:
I can't speak for anything more than that it stops it from failing with
an assertion. That is very good since it allows me to bypass it and
continue with my own testing.
> This means that the WAL replay of that record type has never been tested
> correctly :-(.
This must have been added after mid-Feb this year. I notice there are a
few places where functionality is tested against temp tables, which may
mask other non-recoverable issues in this and other rmgrs. We should
make it standard practice to include only non-temp tables to cover
functionality other than specific temp table commands.
--
Simon Riggs www.2ndQuadrant.com