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
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? |