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
|
Список | 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 по дате отправления: