Re: hashtable crash (was Re: [PATCHES] Post-mortem: final 2PC patch)

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: hashtable crash (was Re: [PATCHES] Post-mortem: final 2PC patch)
Дата
Msg-id 1320.1119123015@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: hashtable crash (was Re: [PATCHES] Post-mortem: final 2PC patch)  (Stefan Kaltenbrunner <stefan@kaltenbrunner.cc>)
Ответы Re: hashtable crash (was Re: [PATCHES] Post-mortem: final  (Andrew Dunstan <andrew@dunslane.net>)
Список pgsql-hackers
Stefan Kaltenbrunner <stefan@kaltenbrunner.cc> writes:
> Tom Lane wrote:
>> dynahash.c thinks it should always copy 255 bytes of key, since that's
>> what it was told the key size was ... but in this case the supplied
>> search key has been allocated very close to the end of the process's
>> memory, and there are not 255 bytes before the end of memory.

> aaah - this description rings a bell ...

> OpenBSD has some very useful features for configuration of malloc() -
> and on this particular box it has:

> G       ``Guard''.  Enable guard pages and chunk randomization.  Each
>              page size or larger allocation is followed by a guard page that
>              will cause a segmentation fault upon any access.  Smaller than
>              page size chunks are returned in a random order.

> and indeed - enabling "G" on another (x86) OpenBSD box of mine causes
> make check to die there too ....

Cool.  Once I get this bug fixed, the people running openbsd build farm
machines probably should turn that on as standard practice ... we've
found bugs of this ilk several times before, and I would not be
surprised if there are more.

The palloc mechanism probably does quite a lot to mask this type of
error, since it aggregates small chunk requests into large malloc
chunks.  If you read past the end of a palloc'd chunk it's quite
unlikely that you'll see a problem.  I wonder if it is worth having
a debug-build option that defeats that somehow ...
        regards, tom lane


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

Предыдущее
От: Stefan Kaltenbrunner
Дата:
Сообщение: Re: hashtable crash (was Re: [PATCHES] Post-mortem: final 2PC patch)
Следующее
От: Josh Berkus
Дата:
Сообщение: Checkpointing problem with new buffer mgr.