Bug #29123 Connection String grows with each use resulting in OutOfMemoryException
| Submitted: | 14 Jun 2007 22:44 | Modified: | 2 Jul 2007 5:06 |
|---|---|---|---|
| Reporter: | mohit srivastava | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | Connector / NET | Severity: | S1 (Critical) |
| Version: | 5.0.7 | OS: | Windows |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | connector, Memory, outofmemoryexception | ||
[19 Jun 2007 8:40]
Tonci Grgin
Hi Mohit and thanks for your report. Verified as described with - MySQL server 5.0.44BK on WinXP Pro SP2 localhost - c/NET 5.0.8 and .NET fw 2.0 In 10th iteration output is: 10. initial catalog=test;user id=root;server=localhost;logging=false;pooling=false;connect timeout=30;Database=test;Database=test;Database=test;Database=test;Database=test;Database=test;Database=test;Database=test;Database=test;Database=test;Database=test
[19 Jun 2007 8:41]
Tonci Grgin
Test case:
for (int i = 0; i < 20; i++) {
using (MySqlConnection conn = new MySqlConnection("Initial Catalog=test;User Id=root;"+
"server=localhost;Password=;Logging=false;pooling=false;Connect timeout = 30;"))
{
conn.Open();
Console.WriteLine(i+". "+conn.ConnectionString);
conn.Close();
conn.Dispose();
}
}
[19 Jun 2007 17:27]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/29127
[19 Jun 2007 17:27]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/29127
[19 Jun 2007 17:28]
Reggie Burnett
Fixed in 5.0.8 and 5.1.3
[19 Jun 2007 17:29]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/29128
[19 Jun 2007 17:29]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/29128
[2 Jul 2007 5:06]
MC Brown
A note has been added to the 5.0.8 and 5.1.3 changelogs: Using the same connection string multiple times would result in Database=dbname appearing multiple times in the resulting string.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.056 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
Description: In the following code, I simply try to use the same connection string multiple times. This is fairly typical usage. Each time, however, the connection string returned by MySqlConnection has an additional Database=caddr appended to it. The following code for (int i = 0; i < 10; i++) { using (MySqlConnection conn = new MySqlConnection("Initial Catalog=caddr;User Id=root;Password=<hidden>;Logging=false;Connect timeout=30;pooling=false;")) { conn.Open(); Console.WriteLine(conn.ConnectionString); } } erroneously outputs the following initial catalog=caddr;user id=root;logging=false;connect timeout=30;pooling=fals e;Database=caddr initial catalog=caddr;user id=root;logging=false;connect timeout=30;pooling=fals e;Database=caddr;Database=caddr initial catalog=caddr;user id=root;logging=false;connect timeout=30;pooling=fals e;Database=caddr;Database=caddr;Database=caddr initial catalog=caddr;user id=root;logging=false;connect timeout=30;pooling=fals e;Database=caddr;Database=caddr;Database=caddr;Database=caddr initial catalog=caddr;user id=root;logging=false;connect timeout=30;pooling=fals e;Database=caddr;Database=caddr;Database=caddr;Database=caddr;Database=caddr initial catalog=caddr;user id=root;logging=false;connect timeout=30;pooling=fals e;Database=caddr;Database=caddr;Database=caddr;Database=caddr;Database=caddr;Dat abase=caddr initial catalog=caddr;user id=root;logging=false;connect timeout=30;pooling=fals e;Database=caddr;Database=caddr;Database=caddr;Database=caddr;Database=caddr;Dat abase=caddr;Database=caddr initial catalog=caddr;user id=root;logging=false;connect timeout=30;pooling=fals e;Database=caddr;Database=caddr;Database=caddr;Database=caddr;Database=caddr;Dat abase=caddr;Database=caddr;Database=caddr initial catalog=caddr;user id=root;logging=false;connect timeout=30;pooling=fals e;Database=caddr;Database=caddr;Database=caddr;Database=caddr;Database=caddr;Dat abase=caddr;Database=caddr;Database=caddr;Database=caddr initial catalog=caddr;user id=root;logging=false;connect timeout=30;pooling=fals e;Database=caddr;Database=caddr;Database=caddr;Database=caddr;Database=caddr;Dat abase=caddr;Database=caddr;Database=caddr;Database=caddr;Database=caddr How to repeat: see above Suggested fix: This is a side effect of the connection string caching in the connector. One solution is to remove connection string caching. Alternatively, only allow Database=x to be appended once.