What steps will reproduce the problem?
Build a schema (I used sqlite3) with this table. I don't think the
table matters. Generate dblinq code for it. I did this on windows with
the current SVN. The project is called EmailDB.
CREATE TABLE [tombstone] (
[category] VARCHAR(10) NULL,
[item] varchar(128) NULL,
[id] iNTEGER NULL,
[tombEventId] INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT
)
// Here's a small project using it. Sorry, it's in F# but
// it's very close to C# so I think it's readable enough.
open EmailDB
open Microsoft.FSharp.Linq
open System
open System.Data
open System.Data.SQLite
let test() =
use db = new EmailDB.Main(new SQLiteConnection("Data Source=test.s3db"))
for i in {0..10000} do
let ts = Tombstone()
db.Tombstone.InsertOnSubmit(ts)
printf "%d .." i
db.SubmitChanges()
What is the expected output? What do you see instead?
Running under windows, it (somewhat slowly) inserts 10000 records as
expected. Watching file handles, database connections are created
and deleted. Running using mono 2.6.7 on a linux 2.6.11 kernel it
adds a database handle for every SubmitChanges call, till it runs out
of file handles. You can see from the /proc/XXX/fid files that they
are all handles the database. I've made this example somewhat exaggerated.
If I move the SubmitChanges line out of the loop I leak just one handle
but if you're doing this operation a lot you're still losing file handles
till the dbopen finally fails.
What version of the product are you using? On what operating system?
svn as of ~2 weeks ago.
Please provide any additional information below.
I tried various permutations to better understand the bug. Doesn't
matter if the fields of the Tombstone record are filled out or now.
You do need to call InsertOnSubmit and Submit Changes - either on their
own aren't problematic.
This is pretty crippling if I can't do database inserts without leaking
a file handle.
Darren
Original issue reported on code.google.com by dagg...@gmail.com on 5 Sep 2010 at 9:15
Original issue reported on code.google.com by
dagg...@gmail.com
on 5 Sep 2010 at 9:15