Re: BUG #13985: Segmentation fault on PREPARE TRANSACTION
| От | Tom Lane |
|---|---|
| Тема | Re: BUG #13985: Segmentation fault on PREPARE TRANSACTION |
| Дата | |
| Msg-id | 5857.1456411909@sss.pgh.pa.us обсуждение исходный текст |
| Ответ на | Re: BUG #13985: Segmentation fault on PREPARE TRANSACTION ("Shulgin, Oleksandr" <oleksandr.shulgin@zalando.de>) |
| Ответы |
Re: BUG #13985: Segmentation fault on PREPARE TRANSACTION
Re: BUG #13985: Segmentation fault on PREPARE TRANSACTION |
| Список | pgsql-bugs |
"Shulgin, Oleksandr" <oleksandr.shulgin@zalando.de> writes:
> On Wed, Feb 24, 2016 at 10:52 PM, Andres Freund <andres@anarazel.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
В списке pgsql-bugs по дате отправления: