chris.tessels@inergy.nl wrote:
> Core was generated by `postgres: mailinfo_ow mailinfo_ods 10.50.6.6(4188'.
> Program terminated with signal 11, Segmentation fault.
>
> #0 MinimumActiveBackends (min=50) at procarray.c:2472
> 2472 if (pgxact->xid == InvalidTransactionId)
It's not surprising that you're not able to make this crash
consistently, because it looks like the problem might be in concurrent
modifications to the PGXACT array. This routine, MinimumActiveBackends,
walks the PGPROC array explicitely without locks. There are comments
indicating that this is safe, but evidently something has slipped in
there.
Apparently this code is trying to dereference an invalid pgxact, but
it's not clear to me how this happens. Those structs are allocated in
advance, and they are referenced in the code via array indexes, so even
if the pgxact doesn't actually hold data about a valid transaction,
dereferencing the XID shouldn't cause a crash.
--
Álvaro Herrera http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services