Re: pg_stat_statements temporary file

Поиск
Список
Период
Сортировка
От Peter Geoghegan
Тема Re: pg_stat_statements temporary file
Дата
Msg-id CAEYLb_UxySuUV8_HcAY-GzYOe55PrY3dhFm83pdMgT6kXb9HiQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: pg_stat_statements temporary file  (Magnus Hagander <magnus@hagander.net>)
Ответы Re: pg_stat_statements temporary file  (Magnus Hagander <magnus@hagander.net>)
Список pgsql-hackers
On 24 May 2012 12:42, Magnus Hagander <magnus@hagander.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.

--
Peter Geoghegan       http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training and Services


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Magnus Hagander
Дата:
Сообщение: shared_preload_libraries path
Следующее
От: Magnus Hagander
Дата:
Сообщение: Re: pg_stat_statements temporary file