> >You must enable Assert to see the crash.
>
> I saw the crash without assertion enabled? This is FreeBSD 2.2.6.
>
> >The cause may be because you are doing a vacuum INSIDE a transaction. I
> >think that also explains the psql -e thing, because that does both
> >commands in the same transaction.
> >
> >Perhaps we need to disable vacuum inside transactions. Vadim?
>
> FYI, it is reported that 6.3.2 does not have the crash.
I am still working on it, but it appears that the vacuuming of pg_class
is causing the failure of the vacuum on 'getting'. Probably the
vacuuming of pg_class it not invalidating the pg_class cache values. I
added additional debugging statements to find out exactly when the cache
lookups start to fail.
UnUsed 0, MinLen 110, MaxLen 144; Re-using: Free/Avail. Space 1496/1496; EndEmpty/Avail. Pages 0/1. Elapsed 0/0
sec.
DEBUG: Index pg_class_relname_index: Pages 2; Tuples 58: Deleted 12. Elapsed 0/0 sec.
DEBUG: Index pg_class_oid_index: Pages 2; Tuples 58: Deleted 12. Elapsed 0/0 sec.
DEBUG: Rel pg_class: Pages: 2 --> 1; Tuple(s) moved: 2. Elapsed 0/0 sec.
DEBUG: Index pg_class_relname_index: Pages 2; Tuples 58: Deleted 2. Elapsed 0/0 sec.
DEBUG: Index pg_class_oid_index: Pages 2; Tuples 58: Deleted 2. Elapsed 0/0 sec.
TRAP: Failed Assertion("!(( (void)((bool) ((! assert_enabled) || (! !((bool)((void*)(lp) != 0))) ||
(ExceptionalCondition("!((bool)((void*)(lp)!= 0))", &( FailedAssertion), (char*) 0, "heapam.c", 1057)))), (bool)
(((lp)->lp_flags& 0x01) != 0) )):", File: "heapam.c", Line: 1057)
!(( (void)((bool) ((! assert_enabled) || (! !((bool)((void*)(lp) != 0))) ||
(ExceptionalCondition("!((bool)((void*)(lp)!= 0))", &( FailedAssertion), (char*) 0, "heapam.c", 1057)))), (bool)
(((lp)->lp_flags& 0x01) != 0) )) (0) [Permission denied]
--
Bruce Momjian | http://www.op.net/~candle
maillist@candle.pha.pa.us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026