Re: [PATCHES] PATCH: Memory leaks on start-up

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: [PATCHES] PATCH: Memory leaks on start-up
Дата
Msg-id 200307270545.h6R5j5P15375@candle.pha.pa.us
обсуждение исходный текст
Ответ на Re: [PATCHES] PATCH: Memory leaks on start-up  (Lee Kindness <lkindness@csl.co.uk>)
Ответы Re: [PATCHES] PATCH: Memory leaks on start-up  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
This patch no longer applies cleanly.  The call is now:

        freeaddrinfo_all(hint.ai_family, addrs);

Would you please submit a new patch, or is it no longer required?  There
were two fixed in your patch.

Thanks.

---------------------------------------------------------------------------

Lee Kindness wrote:
Content-Description: message body text

> Tom, happier with the attached patch?
>
> I'd have to disagree with regards to the memory leaks not being worth
> a mention - any such leak can cause problems when the PostgreSQL
> installation is either unattended, long-living andor has very high
> connection levels. Half a kilobyte on start-up isn't negligible in
> this light.
>
> Regards, Lee.
>
> Tom Lane writes:
>  > Lee Kindness <lkindness@csl.co.uk> writes:
>  > > Guys, attached is a patch to fix two memory leaks on start-up.
>  >
>  > I do not like the changes to miscinit.c.  In the first place, it is not
>  > a "memory leak" to do a one-time allocation of state for a proc_exit
>  > function.  A bigger complaint is that your proposed change introduces
>  > fragile coupling between CreateLockFile and its callers, in order to
>  > save no resources worth mentioning.  More, it introduces an assumption
>  > that the globals directoryLockFile and socketLockFile don't change while
>  > the postmaster is running.  UnlinkLockFile should unlink the file that
>  > it was originally told to unlink, regardless of what happens to those
>  > globals.
>  >
>  > If you are intent on spending code to free stuff just before the
>  > postmaster exits, a better fix would be for UnlinkLockFile to free its
>  > string argument after using it.
>

> Index: src/backend/libpq/pqcomm.c
> ===================================================================
> RCS file: /projects/cvsroot/pgsql-server/src/backend/libpq/pqcomm.c,v
> retrieving revision 1.157
> diff -u -r1.157 pqcomm.c
> --- src/backend/libpq/pqcomm.c    12 Jun 2003 07:36:51 -0000    1.157
> +++ src/backend/libpq/pqcomm.c    22 Jul 2003 14:16:46 -0000
> @@ -363,7 +363,7 @@
>          added++;
>      }
>
> -    freeaddrinfo(addrs);
> +    freeaddrinfo2(family, addrs);
>
>      if (!added)
>      {
> Index: src/backend/utils/init/miscinit.c
> ===================================================================
> RCS file: /projects/cvsroot/pgsql-server/src/backend/utils/init/miscinit.c,v
> retrieving revision 1.104
> diff -u -r1.104 miscinit.c
> --- src/backend/utils/init/miscinit.c    27 Jun 2003 19:08:37 -0000    1.104
> +++ src/backend/utils/init/miscinit.c    22 Jul 2003 14:16:46 -0000
> @@ -673,8 +673,15 @@
>  static void
>  UnlinkLockFile(int status, Datum filename)
>  {
> -    unlink((char *) DatumGetPointer(filename));
> -    /* Should we complain if the unlink fails? */
> +  char *fname = (char *)DatumGetPointer(filename);
> +  if( fname != NULL )
> +    {
> +      if( unlink(fname) != 0 )
> +    {
> +      /* Should we complain if the unlink fails? */
> +    }
> +      free(fname);
> +    }
>  }
>
>  /*

>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

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

Предыдущее
От: Robert Creager
Дата:
Сообщение: Re: Regression test failure date.
Следующее
От: Tom Lane
Дата:
Сообщение: Re: [PATCHES] PATCH: Memory leaks on start-up