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 <[EMAIL PROTECTED]> 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 7: don't forget to increase your free space map settings