Re: Fixing memory leak in pg_upgrade

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: Fixing memory leak in pg_upgrade
Дата
Msg-id 20150109172759.GB26812@momjian.us
обсуждение исходный текст
Ответ на Re: Fixing memory leak in pg_upgrade  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Fixing memory leak in pg_upgrade  (Michael Paquier <michael.paquier@gmail.com>)
Список pgsql-hackers
On Fri, Jan  9, 2015 at 11:34:24AM -0500, Tom Lane wrote:
> Tatsuo Ishii <ishii@postgresql.org> writes:
> > According to Coverity, there's a memory leak bug in transfer_all_new_dbs().
>
> It's pretty difficult to get excited about that; how many table-free
> databases is pg_upgrade likely to see in one run?  But surely we could
> just move the pg_free call to after the if-block.

I have fixed this with the attached, applied patch.  I thought malloc(0)
would return null, but our src/common pg_malloc() has:

    /* Avoid unportable behavior of malloc(0) */
    if (size == 0)
        size = 1;

so some memory is allocated, and has to be freed.  I looked at avoiding
the call to gen_db_file_maps() for old_db->rel_arr.nrels == 0, but there
are checks in there comparing the old/new relation counts, so it can't
be skipped.  I also removed the unnecessary memory initialization.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + Everyone has their own god. +

Вложения

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

Предыдущее
От: Stephen Frost
Дата:
Сообщение: Re: Parallel Seq Scan
Следующее
От: Stephen Frost
Дата:
Сообщение: Re: Parallel Seq Scan