Subject: multi user bug Postgres4.1

From: [email-masked] (Chris Bunting 95334)
Date: Fri, 28 Aug 92 08:04:57 -0700

We have installed the 4.1 release of postgres and have found that the database stands up well with multi users. There is one small bug however that makes it difficult to use.

When a backend dies enexpectedly  it is supposed to kill all other backends.
We sometimes get the speal that 
NOTICE:Aug 28 23:12:05:I have been signalled by the postmaster.
NOTICE:Aug 28 23:12:05:Some backend process has died unexpectedly and possibly
NOTICE:Aug 28 23:12:05:corrupted shared memory.  The current transaction was
NOTICE:Aug 28 23:12:05:aborted, and I am going to exit.  Please resend the
NOTICE:Aug 28 23:12:05:last query. -- The postgres backend
and the backend kill the front end and everything is honky dory

However we consistantly get some back end that sit around trying to user 100% cpu that have to be given the kill -9 treatment.

I have attached a dbx trace for your information if it is helpful

(dbxtool) debug postgres 23495
Reading symbolic information...
Read 142700 symbols
(dbxtool) where
S_LOCK(addr = 0xf767004d), line 123 in "s_lock.c"
ExclusiveLock(lockid = 5), line 971 in "/export6/postgres/obj.sparc.debug/storage/ipc/ipc.c"
SpinAcquire(lock = 5), line 92 in "spin.c"
LockReleaseAll(tableId = 1, lockQueue = 0xf76249c8), line 884 in "lock.c"
ProcKill(exitStatus = 0, pid = 23495), line 275 in "proc.c"
exitpg(code = 0), line 131 in "/export6/postgres/obj.sparc.debug/storage/ipc/ipc.c"
ExitPostgres(status = 0), line 56 in "miscinit.c"
die(), line 900 in "postgres.c"
_sigtramp() at 0x11da9c
ReturnZero() at 0xa9264
S_LOCK(addr = 0xf767004d), line 123 in "s_lock.c"
ExclusiveLock(lockid = 5), line 971 in "/export6/postgres/obj.sparc.debug/storage/ipc/ipc.c"
SpinAcquire(lock = 5), line 92 in "spin.c"
HandleDeadLock(), line 558 in "proc.c"
_sigtramp() at 0x11da9c
syscall() at 0x11db48
semop() at 0x11d170
IpcSemaphoreLock(semId = 2401, sem = 0, lock = -255), line 456 in "/export6/postgres/obj.sparc.debug/storage/ipc/ipc.c"
ProcSleep(queue = 0xf7622fc0, spinlock = 5, token = 1, prio = 2, lock = 0xf7622fac), line 428 in "proc.c"
WaitOnLock(ltable = 0x180b38, tableId = 1, lock = 0xf7622fac, lockt = 1), line 649 in "lock.c"
LockAcquire(tableId = 1, lockName = 0xf7ffd6b4, lockt = 1), line 488 in "lock.c"
MultiAcquire(tableId = 1, tag = 0xf7ffd738, lockt = 1, level = 0), line 278 in "multi.c"
MultiLockReln(linfo = 0x19ae00, lockt = 1), line 124 in "multi.c"
RelationSetLockForWrite(relation = 0x19afa8), line 458 in "lmgr.c"
heap_replace(relation = 0x19afa8, otid = 0xf7ffd990, tup = 0x1d1cf0), line 1420 in "obj.sparc/access/heap/heapam.c"
ExecReplace(slot = 0x1ce940, tupleid = 0xf7ffd990, estate = 0x1ce310, parseTree = 0x1cf0d8, newlocks = (nil)), line 1322 in "obj.sparc/executor/ex_main.c"
ExecutePlan(estate = 0x1ce310, plan = 0x1cd278, parseTree = 0x1cf0d8, operation = 277, numberTuples = 0, direction = 1, printfunc = &printtup() at 0x673c), line 774 in "obj.sparc/executor/ex_main.c"
ExecMain(queryDesc = 0x1ce118, estate = 0x1ce310, feature = 0x1ce5a8), line 184 in "obj.sparc/executor/ex_main.c"
ProcessQueryDesc(queryDesc = 0x1ce118), line 463 in "pquery.c"
ProcessQuery(parsertree = 0x1cf0d8, plan = 0x1cd278, argv = (nil), typev = (nil), nargs = 0, dest = Remote), line 511 in "pquery.c"
pg_eval_dest(query_string = 0xf7ffdc78 "replace INDEX ( CallNo = "PAS.STE"::text) ^I^I^I^I^Iwhere INDEX.Id = "PAS552"", argv = (nil), typev = (nil), nargs = 0, dest = Remote), line 786 in "postgres.c"
pg_eval(query_string = 0xf7ffdc78 "replace INDEX ( CallNo = "PAS.STE"::text) ^I^I^I^I^Iwhere INDEX.Id = "PAS552"", argv = (nil), typev = (nil), nargs = 0), line 634 in "postgres.c"
PostgresMain(argc = 5, argv = 0xf7fffd64), line 1511 in "postgres.c"
main(argc = 5, argv = 0xf7fffd64), line 26 in "obj.sparc/main/main.c"
(dbxtool) 

Thank in advance
		chris