Re: pg_stat_statements temporary file

From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Peter Geoghegan <peter(at)2ndquadrant(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: pg_stat_statements temporary file
Date: 2012-05-24 12:19:50
Message-ID: CABUevEyFnP6mFA=sJTY6VAT+WkKPw135OuBETLDKfcxSkz3r7g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Thu, May 24, 2012 at 2:16 PM, Peter Geoghegan <peter(at)2ndquadrant(dot)com> wrote:
> On 24 May 2012 12:42, Magnus Hagander <magnus(at)hagander(dot)net> wrote:
>> What actually happens if it tries to repalloc() something huge? palloc
>> will throw an elog(ERROR), and since this happens during postmaster
>> startup, are you sure it won't prevent the server from starting?
>
> Oh, yes, missed that.
>
>                /* Previous incarnation might have had a larger query_size */
>                if (temp.query_len >= buffer_size)
>                {
>                        buffer = (char *) repalloc(buffer, temp.query_len + 1);
>                        buffer_size = temp.query_len + 1;
>                }
>
> Here, "temp" receives its value from an fread().
>
> This could probably be coded to be defensive against such things, but
> a better fix would be preferred. I have to wonder how much of a
> problem corruption is likely to be though, given that we only save to
> disk in a corresponding pgss_shmem_shutdown() call, which actually has
> more protections against corruption. The window for the saved file to
> be corrupt seems rather small, though I accept that a better window
> would be zero.

Right. But writing to a temp file and rename()ing it into place is trivial.

It's really the other issues raised that are bigger ;)

--
 Magnus Hagander
 Me: http://www.hagander.net/
 Work: http://www.redpill-linpro.com/

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Peter Geoghegan 2012-05-24 12:22:11 Re: shared_preload_libraries path
Previous Message Peter Geoghegan 2012-05-24 12:16:03 Re: pg_stat_statements temporary file