Re: still memory leaks with libpgtcl - Mailing list pgsql-interfaces

From Gerhard Hintermayer
Subject Re: still memory leaks with libpgtcl
Date
Msg-id avgh9i$2hcp$1@news.hub.org
Whole thread Raw
In response to Re: still memory leaks with libpgtcl  (ljb <lbayuk@mindspring.com>)
List 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



pgsql-interfaces by date:

Previous
From: Tom Lane
Date:
Subject: Re: still memory leaks with libpgtcl
Next
From: "Key88 SF"
Date:
Subject: libpqxx Large Objects