Re: "cache reference leak" and "problem in alloc set" warnings

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: "cache reference leak" and "problem in alloc set" warnings
Дата
Msg-id 6178.1155825526@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: "cache reference leak" and "problem in alloc set" warnings  (Volkan YAZICI <yazicivo@ttnet.net.tr>)
Ответы Re: "cache reference leak" and "problem in alloc set" warnings
Список pgsql-hackers
Volkan YAZICI <yazicivo@ttnet.net.tr> writes:
> I've still biten by a single "write past chunk" error while returning a
> record in PL/scheme:

>   WARNING:  problem in alloc set ExprContext: detected write past chunk
>   end in block 0x84a0598, chunk 0x84a0c84

The actual bug, almost certainly, is that you're miscomputing the space
needed for a variable-size palloc request.  But tracking that down will
be hard until you find out which chunk it is. 

Do you have a sequence that will make the problem happen consistently at
the same address?  If so, you can use a gdb watchpoint to find out where
the write-past-end is happening.  Or use a conditional breakpoint in
AllocSetAlloc to try to identify where the chunk is handed out.

Another possibility is to set a breakpoint where the warning is emitted
and take a look at the contents of the chunk to see if you can identify
it; that wouldn't require knowing the target chunk address in advance.

BTW, if I recall that code correctly, the "chunk address" in the message
is probably the address of the start of the overhead data for the chunk,
not the usable-space start address that is passed back by palloc.
        regards, tom lane


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

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: Re: pgsql-patches reply-to (was Re: [PATCHES] selecting
Следующее
От: Josh Berkus
Дата:
Сообщение: Re: pgsql-patches reply-to (was Re: [PATCHES] selecting