Re: pgstat_reset_remove_files ignores its argument - Mailing list pgsql-hackers

From Jeff Janes
Subject Re: pgstat_reset_remove_files ignores its argument
Date
Msg-id CAMkU=1zoiMWkYFZ+Q3Lo_F-GfcKh=MnAsAKyHKfBHU_YBm6S3g@mail.gmail.com
Whole thread Raw
In response to Re: pgstat_reset_remove_files ignores its argument  (Robert Haas <robertmhaas@gmail.com>)
Responses Re: pgstat_reset_remove_files ignores its argument  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List pgsql-hackers
On Fri, Aug 16, 2013 at 12:38 PM, Robert Haas <robertmhaas@gmail.com> wrote:
> On Wed, Aug 14, 2013 at 12:13 AM, Jeff Janes <jeff.janes@gmail.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



pgsql-hackers by date:

Previous
From: Boszormenyi Zoltan
Date:
Subject: Re: GSOC13 proposal - extend RETURNING syntax
Next
From: Josh Berkus
Date:
Subject: Re: UNNEST with multiple args, and TABLE with multiple funcs