pgsql/src/backend/tcop (postgres.c) - Mailing list pgsql-committers

From Tom Lane
Subject pgsql/src/backend/tcop (postgres.c)
Date
Msg-id 200004302129.RAA08961@hub.org
Whole thread Raw
List pgsql-committers
  Date: Sunday, April 30, 2000 @ 17:29:23
Author: tgl

Update of /usr/local/cvsroot/pgsql/src/backend/tcop
     from hub.org:/home/tmp/cvs-serv8947

Modified Files:
    postgres.c

-----------------------------  Log Message  -----------------------------

Reset CurrentMemoryContext to TopMemoryContext at the beginning of error
cleanup, ie, as soon as we have caught the longjmp.  This ensures that
current context will be a valid context throughout error cleanup.  Before
it was possible that current context was pointing at a context that would
get deleted during cleanup, leaving any subsequent pallocs in deep
trouble.  I was able to provoke an Assert failure when compiled with
asserts + -DCLOBBER_FREED_MEMORY, if I did something that would cause
an error to be reported by the backend large-object code, because indeed
that code operates in a context that gets deleted partway through xact
abort --- and CurrentMemoryContext was still pointing at it!  Boo hiss.

pgsql-committers by date:

Previous
From: Tom Lane
Date:
Subject: pgsql/src/backend/storage/lmgr (lock.c)
Next
From: Tatsuo Ishii
Date:
Subject: pgsql/src/backend/utils/init (miscinit.c)