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

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Re: BUG #16036: Segmentation fault while doing an update
Дата
Msg-id 20191004043021.ylfbxcjqyypphfft@alap3.anarazel.de
обсуждение исходный текст
Ответ на Re: BUG #16036: Segmentation fault while doing an update  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: BUG #16036: Segmentation fault while doing an update  (Andres Freund <andres@anarazel.de>)
Список pgsql-bugs
Hi,

On 2019-10-03 23:26:01 -0400, Tom Lane wrote:
> 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.

Here's 1, 2 & 4, working on fixing 3).  While we now have OK-ish
coverage for nodeModifyTable.c and nodeLockRows.c triggered EPQ, there's
not much for the trigger case.

Greetings,

Andres Freund

Вложения

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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: BUG #16036: Segmentation fault while doing an update
Следующее
От: PG Bug reporting form
Дата:
Сообщение: BUG #16037: Assertion fails in varbit_out