Re: BUG #16036: Segmentation fault while doing an update

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: BUG #16036: Segmentation fault while doing an update
Дата
Msg-id 11540.1570159561@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: BUG #16036: Segmentation fault while doing an update  (Andres Freund <andres@anarazel.de>)
Ответы Re: BUG #16036: Segmentation fault while doing an update  (Andres Freund <andres@anarazel.de>)
Re: BUG #16036: Segmentation fault while doing an update  (Andres Freund <andres@anarazel.de>)
Список pgsql-bugs
Andres Freund <andres@anarazel.de> writes:
> So I think what we need to do is:
> 1) only call ExecCopySlot() if slot != newslot - this fixes the crash
> 2) Add an assert to ExecCopySlot() ensuring source and target slot are
>    distinct
> 3) Figure out why our tests didn't catch this, this afaict should be a
>    tested scenario
> 4) Fix confusing variable naming around newSlot/newslot in ExecBRUpdateTriggers

Maybe instead of 1+2, change ExecCopySlot like this:

-    dstslot->tts_ops->copyslot(dstslot, srcslot);
+    if (dstslot != srcslot)
+        dstslot->tts_ops->copyslot(dstslot, srcslot);

That would fix other similar instances, not just this one caller.

            regards, tom lane



В списке pgsql-bugs по дате отправления:

Предыдущее
От: Andres Freund
Дата:
Сообщение: Re: BUG #16036: Segmentation fault while doing an update
Следующее
От: Andres Freund
Дата:
Сообщение: Re: BUG #16036: Segmentation fault while doing an update