Report memory context stats upon out-of-memory in repalloc[_huge].

This longstanding functionality evidently got lost in commit
3d6d1b5855.  Noted while studying an OOM report from Jaime
Casanova.  Backpatch to 9.5 where the bug was introduced.
This commit is contained in:
Tom Lane 2016-03-13 00:21:07 -05:00
parent 1598dc15ba
commit a7915f114a

View File

@ -969,10 +969,13 @@ repalloc(void *pointer, Size size)
ret = (*context->methods->realloc) (context, pointer, size);
if (ret == NULL)
{
MemoryContextStats(TopMemoryContext);
ereport(ERROR,
(errcode(ERRCODE_OUT_OF_MEMORY),
errmsg("out of memory"),
errdetail("Failed on request of size %zu.", size)));
}
VALGRIND_MEMPOOL_CHANGE(context, pointer, ret, size);
@ -1049,10 +1052,13 @@ repalloc_huge(void *pointer, Size size)
ret = (*context->methods->realloc) (context, pointer, size);
if (ret == NULL)
{
MemoryContextStats(TopMemoryContext);
ereport(ERROR,
(errcode(ERRCODE_OUT_OF_MEMORY),
errmsg("out of memory"),
errdetail("Failed on request of size %zu.", size)));
}
VALGRIND_MEMPOOL_CHANGE(context, pointer, ret, size);