Re: still memory leaks with libpgtcl

From: Gerhard Hintermayer <g(dot)hintermayer(at)inode(dot)at>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: Re: still memory leaks with libpgtcl
Date: 2003-01-08 06:39:05
Message-ID: avgh9i$2hcp$1@news.hub.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-interfaces

ljb wrote:

> I've confirmed that the crash occurs with Tcl 8.3.4 also. But I've got a
> patch which seems to fix it - that is, it neither leaks on disconnect nor
> crashes on shutdown after my patch is applied. At least it doesn't with my
> extremely minimal testing. If you want to try this, go ahead. This patch is
> seriously ugly and 'highly suspect', and I am NOT suggesting this be
> included in the PostgreSQL release. Really. But it works. Maybe.
>
> (This is for PostgreSQL-7.3.1)
>
> --- src/interfaces/libpgtcl/pgtclId.c.bak 2002-10-17 10:53:32.000000000 -0400
> +++ src/interfaces/libpgtcl/pgtclId.c 2003-01-07 21:51:53.000000000 -0500
> @@ -300,12 +300,10 @@
> * small) amount of memory taken for the channel state representation.
> * Note we are not leaking a socket, since libpq closed that already.
> */
> -#ifdef NOT_USED
> #if TCL_MAJOR_VERSION >= 8
> - if (connid->notifier_channel != NULL)
> + if (connid->notifier_channel != NULL && interp != NULL)
> Tcl_UnregisterChannel(NULL, connid->notifier_channel);
> #endif
> -#endif
>
> /*
> * We must use Tcl_EventuallyFree because we don't want the connid

Ah, I think my brain does have memory leaks too, but I remember now, that Tom
Lane fixed that after I found out, that the logfile was filled with "unexpected
EOF on client connection" each time I pg_disconnected.
Does your patch produce the above log-entries ?

I'd be willing to post a question on comp.lang.tcl or dig through the
Tcl_Channel documentation, but I still see the problem of two concurrent
developments (gborg/libpgtcl). Gborg does heavily use Tcl_Obj instead of
strings, and as far as I can remember, the code differs a lot, so it's likely
that if ther's a solution in libpgtcl, it has to be dropped and searched again,
when gborg will replace libpgtcl.
--
Gerhard Hintermayer
http://www.inode.at/g.hintermayer

In response to

Responses

Browse pgsql-interfaces by date

  From Date Subject
Next Message Key88 SF 2003-01-08 09:00:07 libpqxx Large Objects
Previous Message Tom Lane 2003-01-08 05:06:15 Re: MOVE LAST: why?