[Mono-bugs] [Bug 76495][Nor] Changed - Mono.Data.SqliteClient.SqliteConnection.BeginTransaction( IsolationLevel ) is not implemented and returns null

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Tue Oct 25 20:47:43 EDT 2005


Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by tekhedd at byteheaven.net.

http://bugzilla.ximian.com/show_bug.cgi?id=76495

--- shadow/76495	2005-10-25 20:40:05.000000000 -0400
+++ shadow/76495.tmp.11309	2005-10-25 20:47:43.000000000 -0400
@@ -2,14 +2,14 @@
 Product: Mono: Class Libraries
 Version: 1.1
 OS: unknown
 OS Details: 
 Status: NEW   
 Resolution: 
-Severity: Unknown
-Priority: Wishlist
+Severity: 002 Two hours
+Priority: Normal
 Component: Sys.Data
 AssignedTo: mono-bugs at ximian.com                            
 ReportedBy: tekhedd at byteheaven.net               
 QAContact: mono-bugs at ximian.com
 TargetMilestone: ---
 URL: 
@@ -45,6 +45,32 @@
 to an embedded database unless you're doing mad wizardry.
 
 ------- Additional Comments From tekhedd at byteheaven.net  2005-10-25 20:40 -------
 Created an attachment (id=15988)
 A patch that provides a locked-table timeout and transaction isolation level support.
 
+
+------- Additional Comments From tekhedd at byteheaven.net  2005-10-25 20:47 -------
+About patch 15988.
+
+With the default isolation level (DEFERRED) and multiple threads, you
+can easily get SQLITE_BUSY errors. I have mapped the default isolation
+levels to the three SQLITE transaction types as well as I know how,
+and this fixes failed transactions where a shared-read lock cannot be
+upgraded to a full database lock.
+
+I have also added a short (two-minute) timeout by default when tables
+are locked. The default behavior of sqlite appears to be to fail
+immediately when a table is locked, which results in a thrown
+exception in the current implementation. I believe the proper
+appropach is to block indefinitely when tables are locked. 
+
+SQLITE detects internal deadlock conditions, so this should not be an
+issue. On thinking about it, it may be that the default behavior _is_
+to block indefinitely, as I added that bit before fixing the isolation
+level code.
+
+Needs testing, although I'll be giving it a thorough workout in the
+next two months so that should help a bit. :) Is there a general
+shared database adaptor test suite?
+
+Share and enjoy.


More information about the mono-bugs mailing list