[unixODBC-support] Memory leak in SQLFetch?

Craddock, Richard C cmi5 at cdc.gov
Tue Dec 14 16:28:21 GMT 2004


Would you like the /tmp/sql.log trace or something more verbose?  I will
try to reproduce the leak with less then 20160 fetches in order to
reduce the size of the log file.

-Cameron

-----Original Message-----
From: unixodbc-support-bounces at easysoft.com
[mailto:unixodbc-support-bounces at easysoft.com] On Behalf Of Nick Gorham
Sent: Tuesday, December 14, 2004 11:26 AM
To: Support for the unixODBC project
Subject: Re: [unixODBC-support] Memory leak in SQLFetch?

Saunders, Steve wrote:

>Nick wrote:
>
>  
>
>>Saunders, Steve wrote:
>>
>>    
>>
>>> 
>>>
>>>      
>>>
>>>>Craddock, Richard C wrote:
>>>>   
>>>>
>>>>        
>>>>
>>> 
>>>
>>>      
>>>
>>>>>Ladies and Gentlemen:
>>>>>
>>>>>
>>>>>
>>>>>I have a reproducible memory leak with the attached code.  There
are 
>>>>>exactly 20160 elements that should be returned from the query.
After 
>>>>>running this program there is nearly 3Mb of un-freed memory.  If I 
>>>>>comment out the SQLFetch() calls then the memory leak goes away.  I

>>>>>suspect that it may have something to do with how I am using
unixODBC 
>>>>>rather then a memory leak in unixODBC.  But I have stared at the
code 
>>>>>for quite sometime to no avail.  Has anyone had a similar problem?

>>>>>Have I made a mistake somewhere?  I appreciate your time and
assistance.
>>>>>
>>>>>
>>>>>
>>>>>Regards,
>>>>>
>>>>>Cameron Craddock
>>>>>
>>>>>    
>>>>>
>>>>>          
>>>>>
>>>Nick wrote
>>> 
>>>
>>>>From a quick read, it looks ok, but it does depend on the driver as 
>>>      
>>>
>>>>well, what driver is this using ?
>>>>
>>>>When you have these sorts of problems, its often worth just trying
the 
>>>>same thing with another database/driver to see if the leak remains.
>>>>   
>>>>
>>>>        
>>>>
>>>Mr. Craddock, 
>>>
>>>What version of unixODBC and OS are you using for this memory leak
test? 
>>>
>>>We see a similar memory leak problem with unixODBC v2.2.9 regardless
of DB
>>>driver (DB2 or MyODBC/MySQL.   We have only tested this version of
>>>      
>>>
>unixODBC
>  
>
>>>on AIX v5.2.  The same tests on unixODBC v2.2.8 on Linux/RedHat does
not
>>>appear to leak.  
>>>
>>>-Steve
>>> 
>>>
>>>      
>>>
>>Hmm,
>>
>>Is it possible the cursor lib being used, and this is contributing to 
>>the problem ?
>>
>>    
>>
>
>A little new to unixODBC at this level, how would I know?  Is there a
change
>for the SQLFetch in v2.2.9 vs. v2.2.8 and earlier using the cursor lib?

>I see the ./cur directory in the source code tree and some note that
cursor
>support was added for SELECTs without where clauses in the
./cur/SQLFetch.c
>comments.  
>My program does not link to libodbccr.a or libodbccr.so and I don't see
that
>library reference in any of the Makefiles in the unixODBC tree except
for
>the ./cur/Makefile.    
>  
>

It depends on if you have set the cursor type to anything other than 
forward only.

A trace of the app running would help me to see just what is going on.

-- 
Nick
_______________________________________________
unixODBC-support mailing list
unixODBC-support at easysoft.com
http://mail.easysoft.com/mailman/listinfo/unixodbc-support






More information about the unixODBC-support mailing list