Re: Computer VARSIZE_ANY(PTR) during debugging

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: Computer VARSIZE_ANY(PTR) during debugging
Дата
Msg-id 20130626150259.GF5940@eldon.alvh.no-ip.org
обсуждение исходный текст
Ответ на Computer VARSIZE_ANY(PTR) during debugging  (Amit Langote <amitlangote09@gmail.com>)
Ответы Re: Computer VARSIZE_ANY(PTR) during debugging  (Amit Langote <amitlangote09@gmail.com>)
Re: Computer VARSIZE_ANY(PTR) during debugging  (Amit Langote <amitlangote09@gmail.com>)
Список pgsql-hackers
Amit Langote escribió:

> The segfault in question happens at line 1141:
> 
> off = att_align_pointer(off, thisatt->attalign, -1, tp + off);
> 
> char       *tp;                         /* ptr to tuple data */
> long        off;                    /* offset in tuple data */
> 
> Disassembling seems to suggest (tp + off) is the faulting address.
> Apparently, the segfault happens when 5th text column is being
> extracted from a tuple (char(n), char(n), int4, char(n), text, ...).
> Since, tp is fixed for the whole duration of loop and only off is
> subject to change over iterations, it may have happened due to wrong
> offset in this iteration.
> 
> Has anything of this kind been encountered/reported before?

Yes, I vaguely recall I have seen this in cases where tuples contain
corrupt data.  I think you just need the length word of the fourth datum
to be wrong.

-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services



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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: LATERAL quals revisited
Следующее
От: Markus Wanner
Дата:
Сообщение: Re: Hash partitioning.