re-use of dbprocess structure (was: Re: [freetds] state of
dbrpcsend())
liam at inodes.org
liam at inodes.org
Wed Jul 7 22:31:34 EDT 2004
On Wed, Jul 07, 2004 at 05:45:45PM +1000, liam at inodes.org wrote:
> ...
>
> The process grows without bound at the rate of approximately 1Mbyte/s. Does
> anyone have any suggestions if I'm doing something wrong with my API use?
As a follow-up to this. I've tried using dbcancel() and even occasionally
pausing the loop, performing a dbloginfree(), dbexit(), etc and then
a re-connect but this does not free the used memory.
Running it through dmalloc, I can see that tds_alloc_param_row() is
called many times in rpc.c but there's no function in dblib.c that
appears to call tds_free_param_row().
This comment also seems rather suspicious.
rpc.c:325
erc = tds_submit_rpc(dbproc->tds_socket, ...);
/* TODO free parameters */
if (erc == TDS_FAIL) {
return FAIL;
}
}
Unless there are some objections (or offers) I'll start trying to patch
the apparent numerous memory leaks in 0.62.4.
Cheers.
More information about the FreeTDS
mailing list