Re: Using ProcSignal to get memory context stats from a running backend

From: Craig Ringer <craig(at)2ndquadrant(dot)com>
To: Andres Freund <andres(at)anarazel(dot)de>
Cc: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Robert Haas <robertmhaas(at)gmail(dot)com>, Greg Stark <stark(at)mit(dot)edu>, PostgreSQL Hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Using ProcSignal to get memory context stats from a running backend
Date: 2017-12-22 05:07:47
Message-ID: CAMsr+YGsfNmwDkYgKPZJ=yF+ZNihJzRphXHdmHDNoUre5p2GRA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 22 December 2017 at 13:05, Craig Ringer <craig(at)2ndquadrant(dot)com> wrote:

> On 21 December 2017 at 15:55, Craig Ringer <craig(at)2ndquadrant(dot)com> wrote:
>
>> On 21 December 2017 at 15:24, Andres Freund <andres(at)anarazel(dot)de> wrote:
>>
>>> Hi,
>>>
>>> On 2017-12-21 15:13:13 +0800, Craig Ringer wrote:
>>> > There tons of callers to enlargeStringInfo, so a 'noerror' parameter
>>> would
>>> > be viable.
>>>
>>> Not sure what you mean with that sentence?
>>>
>>
>> Mangled in editing and sent prematurely, disregard.
>>
>> There are NOT tons of callers to enlargeStringInfo, so adding a
>> parameter that allowed it to return a failure result rather than ERROR on
>> OOM seems to be a reasonable option. But it relies on repalloc(), which
>> will ERROR on OOM. AFAICS we don't have "no error" variants of the memory
>> allocation routines and I'm not eager to add them. Especially since we
>> can't trust that we're not on misconfigured Linux where the OOM killer will
>> go wild instead of giving us a nice NULL result.
>>
>> So I guess that means we should probably just do individual elog(...)s
>> and live with the ugliness of scraping the resulting mess out of the logs.
>> After all, a log destination that could possibly copy and modify the string
>> being logged a couple of times it's not a good idea to try to drop the
>> whole thing into the logs in one blob. And we can't trust things like
>> syslog with large messages.
>>
>> I'll follow up with a revised patch that uses individual elog()s soon.
>>
>
> I intend to add an elog_internal_raw
>

Er, I mean

errmsg_internal_raw(const char * errmsg)

i.e. like errmsg_internal, but with no varargs or format string, to be used
when we want to prepare a simple preformatted log entry.

--
Craig Ringer http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kyotaro HORIGUCHI 2017-12-22 05:13:52 Re: autoprewarm is fogetting to register a tranche.
Previous Message Masahiko Sawada 2017-12-22 05:07:10 Re: BUG #14941: Vacuum crashes