Package: libmono-system-data1.0-cil
Version: 1.9.1+dfsg-3
Severity: serious

The Microsoft SQL Client (System.Data.SqlClient) part of the System.Data
library, has a serious regression when running on the CLI 1.1 profile.

This is caused by a patch introduced in version 1.9.1+dfsg-3 that fixes
connection leaks in the connection pool.

The symptom of the issue looks like this:
Source array type cannot be assigned to destination array type.
  at Mono.Data.Tds.Protocol.TdsConnectionPool.GetConnection () [0x00000]
  at System.Data.SqlClient.SqlConnection.Open () [0x00000]

The code part of the patch that causes the issue:

+#if NET_2_0
+                                       if (Interlocked.CompareExchange<ITds> 
(ref list [index], connection, null) != null) {
+#else
+                                       if (Interlocked.CompareExchange (ref 
(list as object[]) [index], connection, null) != null) {
+#endif

The "as" cast for CLI 1.1 is the culprit. Unfortunately the "as" cast
operator was abused to make an ordinary cast causing the error not to
show up at compile stage. The fix will probably just be to remove the
useless cast, as the "list" variable is defined as ITds[] and thus no
need to cast it first to use the indexer.

-- 
Mit freundlichen Grüßen,

Mirco Bauer

Leiter Software & System-Entwicklung (CSA, CTO)
GSD Software Design GmbH
Chrysanderstrasse 1
21029 Hamburg

www:   http://www.gsd-software.net
email: [EMAIL PROTECTED]
tel:   +49 40 72692500
fax:   +40 40 72692503




--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to