I wrote:
> #4 0x4e85b4 in ExceptionalCondition (
> conditionName=0x1ac4ac "!(nestLevel > 0 && nestLevel <= GUCNestLevel)",
> errorType=0x1abf44 "FailedAssertion", fileName=0x1abee4 "guc.c",
> lineNumber=3907) at assert.c:57
> #5 0x501f48 in AtEOXact_GUC (isCommit=-86 '�', nestLevel=84) at guc.c:3907
> #6 0x20618c in AbortTransaction () at xact.c:2194
> #7 0x20688c in AbortCurrentTransaction () at xact.c:2568
> #8 0x3b0f84 in AutoVacLauncherMain (argc=2063670312, argv=0x7b03b94c)
> at autovacuum.c:491
On investigation I think that Assert may just be overenthusiastic.
The problem is that StartTransaction is failing at
VirtualXactLockTableInsert, for lack of any shared memory to acquire
the lock with; and then we try to do AbortTransaction and GUC is
unhappy because it's not been initialized yet. So this isn't a
new bug at all, it's been there awhile ...
regards, tom lane