Re: [HACKERS] NOTICE: SIReadEntryData: cache state reset TRAP: Failed Assertion("!(RelationNameCache->hctl->nkeys == 10):", File: "relcache.c", Line: 1458) - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [HACKERS] NOTICE: SIReadEntryData: cache state reset TRAP: Failed Assertion("!(RelationNameCache->hctl->nkeys == 10):", File: "relcache.c", Line: 1458)
Date
Msg-id 22037.937489727@sss.pgh.pa.us
Whole thread Raw
In response to NOTICE: SIReadEntryData: cache state reset TRAP: Failed Assertion("!(RelationNameCache->hctl->nkeys == 10):", File: "relcache.c", Line: 1458)  (Jason Venner <jason@idiom.com>)
List pgsql-hackers
Jason Venner <jason@idiom.com> writes:
> I get these sporadically and I can't trace them to any particular
> thing other than heavy access.

> NOTICE:  SIReadEntryData: cache state reset
> TRAP: Failed Assertion("!(RelationNameCache->hctl->nkeys == 10):", File: "relcache.c", Line: 1458)
> !(RelationNameCache->hctl->nkeys == 10) (0)

Yeah.  What's happening is that the SI message buffer is overflowing and
you are hitting a bug in the code that is supposed to recover from that
condition.  (I posted a long discussion of what SI is all about a few
days ago and don't feel like repeating it --- check the list archives.)
There are several bugs in that area :-(.

I believe I have fixed all the problems with SI overflow recovery for
6.6, but that's part of a rather extensive set of changes to relcache.c
and sinvaladt.c.  We are talking about back-patching these changes along
with the not-yet-done relation locking change to make a 6.5.3.

In the meantime, your best bet might be to reduce the probability of SI
overflow by raising MAXNUMMESSAGES in src/include/storage/sinvaladt.h.
It's standardly 4000, but the space per message is only a couple dozen
bytes, so you could probably make it 10 times that without hurting
much...
        regards, tom lane


pgsql-hackers by date:

Previous
From: Christof Petig
Date:
Subject: Is there a maintainer for ecpg? patch included
Next
From: Tom Lane
Date:
Subject: Re: [HACKERS] Join syntax