System.Data.SQLite
View Ticket
Not logged in
Ticket UUID: ab8b0ccbf62886090cf381730dc337589a75bd94
Title: Possible Memory Leak in System.Data.Sqlite 1.0.76
Status: Closed Type: Code_Defect
Severity: Important Priority: High
Subsystem: Resource_Cleanup Resolution: Overcome_By_Events
Last Modified: 2014-02-07 01:12:54
Version Found In: 1.0.76
Description:
Im currently using the sqlite for a database application and trying to communicate with the database through the entity framework.

After the application is running for some time the application itself is using over 1,3GB memory and is quitting with an "Out of Memory" Exception a little while later.

Using the .Net Memory Profiler 4.0 I could locate that the some parts of the System.Data.Sqlite Namespace are stuck in the finalizer thread an can no longer be collected with the garbage collector. This has than an impact on all objects referenced by the locked objects (i.e. Strings, arrays, etc.) and they can also no longer be released through the garbage collector.

After further analyzing the problem I could determine that the problem lies in the destruction of SQliteCommand Objects.

After changing the connection string of the Entity Framework to not allow multiple active result sets, all Sqllite Commands could be released.


mistachkin added on 2011-11-21 18:23:06 UTC:
Do you have some sample code and/or a stack trace that shows the issue?


mistachkin added on 2011-12-16 05:06:19 UTC:
This may be fixed by check-in [419bfbd2ee]. Could you please try to reproduce the problem with the latest code on trunk?