Re: pgstat_reset_remove_files ignores its argument

From: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>
To: Robert Haas <robertmhaas(at)gmail(dot)com>
Cc: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pgstat_reset_remove_files ignores its argument
Date: 2013-08-19 18:02:59
Message-ID: CAMkU=1zoiMWkYFZ+Q3Lo_F-GfcKh=MnAsAKyHKfBHU_YBm6S3g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Fri, Aug 16, 2013 at 12:38 PM, Robert Haas <robertmhaas(at)gmail(dot)com> wrote:
> On Wed, Aug 14, 2013 at 12:13 AM, Jeff Janes <jeff(dot)janes(at)gmail(dot)com> wrote:
>> in 9.3 and 9.4, pgstat_reset_remove_files uses the global variable
>> pgstat_stat_directory rather than the argument it is passed, "directory".
>> On crash recovery, this means the tmp directory gets cleared twice and the
>> permanent pg_stat doesn't get cleared at all.
>>
>> It seems like the obvious one line change would fix it, but I haven't tested
>> it because I don't know how to cause a crash without pg_stat already being
>> empty.
>
> I think there are three lines to change, as in the attached patch.
>
> Am I wrong?

No, you are right, I too realized I missed a couple more spots. Your
patch looks just like the one I eventually arrived at, before I got
distracted thinking about how to implement the regex
/^(global|db_\d+)\.stat$/ in C and forgot to post a correction.

Is the regex code in src/backend/regex allowed to be used from "flat"
C code, or does it have to be in the context of a transaction, memory
context, etc.?

Cheers,

Jeff

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Josh Berkus 2013-08-19 18:03:52 Re: UNNEST with multiple args, and TABLE with multiple funcs
Previous Message Boszormenyi Zoltan 2013-08-19 17:56:35 Re: GSOC13 proposal - extend RETURNING syntax