Re: BUG #14180: Segmentation fault on replication slave

Поиск
Список
Период
Сортировка
От Bo Ørsted Andresen
Тема Re: BUG #14180: Segmentation fault on replication slave
Дата
Msg-id VI1PR04MB14884ECAD7862BCA59A7A8A5CB5D0@VI1PR04MB1488.eurprd04.prod.outlook.com
обсуждение исходный текст
Ответ на Re: BUG #14180: Segmentation fault on replication slave  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: BUG #14180: Segmentation fault on replication slave  (Bo Ørsted Andresen <boa@neogrid.dk>)
Список pgsql-bugs
> On 2016-06-07 20:08, Tom Lane wrote:
> I think the reason for the lack of useful backtrace info is that we've smashed
> the stack.  Note that the original report shows i == 3324 which is much larger
> than the available length of the local items[] array (408).
> So presumably, the passed-in "len" was bogus (much too large).
>
> If you're prepared to build a custom version of Postgres, you could try adding
> this to _bt_restore_page():
>
>         /* Need to copy tuple header due to alignment
> considerations */
>         memcpy(&itupdata, from, sizeof(IndexTupleData));
>         itemsz = IndexTupleDSize(itupdata);
>         itemsz = MAXALIGN(itemsz);
>
> +        if (i >= lengthof(items))
> +            elog(PANIC, "too many items on btree page");
> +
>         items[i] = (Item) from;
>         itemsizes[i] = itemsz;
>         i++;
>
>         from += itemsz;
>
> and then you should get a core dump before the stack is clobbered.
>
> I wonder whether we shouldn't add such a check to the regular sources...

Will give it a shot tomorrow.

Regards,
Bo Ørsted Andresen



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

Предыдущее
От: Bo Ørsted Andresen
Дата:
Сообщение: Re: BUG #14180: Segmentation fault on replication slave
Следующее
От: worden.eric@gmail.com
Дата:
Сообщение: BUG #14181: pg_upgrade: operator family "btree_hstore_ops" does not exist