Re: BUG #16112: large, unexpected memory consumption

From: Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>
To: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
Cc: ben(at)lantern(dot)is, pgsql-bugs <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Re: BUG #16112: large, unexpected memory consumption
Date: 2019-11-13 23:18:27
Message-ID: 20191113231827.dljqkbuf22v2gftf@development
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Wed, Nov 13, 2019 at 05:53:28PM -0500, Jeff Janes wrote:
>On Wed, Nov 13, 2019 at 9:50 AM Tomas Vondra <tomas(dot)vondra(at)2ndquadrant(dot)com>
>wrote:
>
>>
>> Yeah, I can reproduce this pretty easily. It seems like a memory leak in
>> ExecMakeTableFunctionResult. a9c35cf85ca reworked FunctionCallInfo to be
>> variable-length, but it gets allocated in ExecutorState context directly
>> and so until the end of the query.
>>
>
>I find the leak was introduced much earlier than that, in:
>
>commit 763f2edd92095b1ca2f4476da073a28505c13820
>Author: Andres Freund <andres(at)anarazel(dot)de>
>Date: Thu Nov 15 14:26:14 2018 -0800
>
> Rejigger materializing and fetching a HeapTuple from a slot.
>
>I have no idea if this info is useful to informing the best solution,
>though.
>

Ah, I've only done a simple 'git blame' and assumed it's the last commit
that touched the palloc line (and it seemed somewhat plausible). I don't
think it changes the reasoning too much, though.

>You patch applied to REL_12_STABLE does fix it for me.
>
>
>> The attached trivial patch fixes that by adding a pfree() at the end of
>> the function. I wonder if we have the same issue elsewhere ...
>>
>>
>Is there an easy way to assess if the "make check" regression tests are
>taking more memory than they used to?
>

Probably not. The regression tests use fairly small number of rows in
general, and we don't have a way to track/inspect high watermaks or
anything like that anyway.

regards

--
Tomas Vondra http://www.2ndQuadrant.com
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

In response to

Browse pgsql-bugs by date

  From Date Subject
Next Message 唯一★ 2019-11-14 02:05:28 回复: 回复: 回复: BUG #16101: tables in the DB is not available after pg_restore
Previous Message Andres Freund 2019-11-13 23:04:07 Re: BUG #16112: large, unexpected memory consumption