Re: BUG #13985: Segmentation fault on PREPARE TRANSACTION

From: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
To: chris(dot)tessels(at)inergy(dot)nl
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #13985: Segmentation fault on PREPARE TRANSACTION
Date: 2016-02-24 20:52:37
Message-ID: 20160224205237.GA438345@alvherre.pgsql
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

chris(dot)tessels(at)inergy(dot)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

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message asguthrie 2016-02-24 21:05:07 BUG #13988: "plan should not reference subplan's variable" whilst using row level security
Previous Message Ranier VF 2016-02-24 19:03:27 Re: BUG #13980: UNINITIALIZED READ