Re: BUG #13985: Segmentation fault on PREPARE TRANSACTION

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: "Shulgin, Oleksandr" <oleksandr(dot)shulgin(at)zalando(dot)de>
Cc: Andres Freund <andres(at)anarazel(dot)de>, Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>, chris(dot)tessels(at)inergy(dot)nl, Pg Bugs <pgsql-bugs(at)postgresql(dot)org>
Subject: Re: BUG #13985: Segmentation fault on PREPARE TRANSACTION
Date: 2016-02-25 14:51:49
Message-ID: 5857.1456411909@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

"Shulgin, Oleksandr" <oleksandr(dot)shulgin(at)zalando(dot)de> writes:
> On Wed, Feb 24, 2016 at 10:52 PM, Andres Freund <andres(at)anarazel(dot)de> wrote:
> At the very least ISTM that we have to make pgprocno volatile (or use a
>> memory barrier - but we don't have sufficient support for those in the
>> older branches), and move the PGPROC/PGXACT lookups after the == -1
>> check.

> Use of volatile doesn't change the resulting code dramatically for me.

Marking pgprocno volatile is silly. What *is* missing is this:

- ProcArrayStruct *arrayP = procArray;
+ volatile ProcArrayStruct *arrayP = procArray;

which corresponds directly to what the problem is: the storage arrayP
is pointing at may change asynchronously.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message el_froggy 2016-02-25 15:20:19 BUG #13991: Installing results in Failed to load sql modules into the database cluster
Previous Message Esi_POO 2016-02-25 12:43:02 ¿Es posible restringir permisos a nivel de registro? - Is it possible to restrict permissions row level?