> Bruce Momjian <maillist@candle.pha.pa.us> writes:
> > I think I may know the cause. The at_exit removal of the temp tables is
> > taking place in a failed transaction. Let me test that idea tomorrow.
>
> Take a look at the code for cleaning up the listen/notify table
> (Async_UnlistenOnExit() in backend/commands/async.c). It used to
> have problems with cleaning up when the last transaction executed
> by the backend had failed. I fixed that by aborting any old transaction
> and starting/committing a new one. I believe that any at_exit,
> on_shmem_exit, etc routine that tries to perform database changes will
> need to be coded similarly.
Thanks. I have added AbortOutOfAnyTransaction() to the fix. I did not
have that function call.
--
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