"Sergey Aleynikov" <sergey.aleynikov@gmail.com> writes:
> PostgreSQL version: 8.4.1
> Yesterday i've got a non-repeatable database server crash with following
> messages in server log:
> [ crash is within auto_explain according to backtrace ]
I think most likely you got bit by this known bug:
commit 85a646aee39b97b68bd70956db95afd11cde93a8
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: Thu Feb 18 03:06:53 2010 +0000
Force READY portals into FAILED state when a transaction or subtransaction
is aborted, if they were created within the failed xact. This prevents
ExecutorEnd from being run on them, which is a good idea because they may
contain references to tables or other objects that no longer exist.
In particular this is hazardous when auto_explain is active, but it's
really rather surprising that nobody has seen an issue with this before.
I'm back-patching this to 8.4, since that's the first version that contains
auto_explain or an ExecutorEnd hook, but I wonder whether we shouldn't
back-patch further.
IOW, if the query was aborted, it's unsafe to run auto_explain on it
but the system sometimes tried anyway.
Please update to 8.4.3 or later.
regards, tom lane