• T
    Reset CurrentMemoryContext to TopMemoryContext at the beginning of error · f6a3b87c
    Tom Lane 提交于
    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.
    f6a3b87c
postgres.c 41.8 KB