From: chris@atlas.onthe.net.au (Chris Dunlop) Date: 7 Jun 1996 10:31:39 +1000 Subject: [PG95]: Re: Postgres95 bug report [Snip...] >Run the SQL-script below. >The abort statement near the end of the script causes the message >"WARN:cannot unlink temp_" > >After the last select-statement the client hangs. [Snip...] This looks like the same problem I found and fixed several weeks ago. The fix went onto the mailing list, but as it's not too large I'll include it again... =========================================================================== Hi all, This is a patch to prevent an endless loop occuring in the Postgres backend when a 'warning' error condition generates another warning error contition in the handler code. A brief summary is: A warning condition generates a SIGHUP which is caught by the signal handler which in turn does a long jump to Warn_restart. Warn_restart then calls AbortCurrentTransaction() to... well... abort the current transaction. The situation I was seeing was that within AbortCurrentTransaction() another warning condition was being generated ('unable to unlink' some temporary files). This, of course, generated another SIGHUP etc... The symptom is that the backend goes into an endless loop, processing these warning conditions. This patch prevents a SIGHUP being generated if we're already processing code within Warn_restart, thus preventing the endless loop. Congratulations to all who use and develop Postgres! - -- Chris Dunlop,