Bug #3751 | Out of memory error using ByteFX provider | ||
---|---|---|---|
Submitted: | 13 May 2004 22:20 | Modified: | 8 Jul 2004 17:11 |
Reporter: | Craig Hunt | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | Connector / NET | Severity: | S1 (Critical) |
Version: | Version 0.76 | OS: | Windows (Windows 2000/Debian Test rel) |
Assigned to: | Reggie Burnett | CPU Architecture: | Any |
[13 May 2004 22:20]
Craig Hunt
[17 Jun 2004 21:02]
Evan Perry
Bugs 3872,3887, and 4120 are duplicates of this bug, as they are all caused by the same issue. I've been able to track down the source of this problem. Packet.cs, Line 181: case 253 : return ReadInteger(intLen); This line executed when retrieving a blob that was 900KB. intLen is 4 since that's the size of an integer. However, I observed that the loop inside ReadInteger(), looped one too many times causing the correct file size to be multiplied by a big number. This error propagates up and the application crashes when it tries to allocate a byte array that is over a gigabyte. It worked for me to call ReadInteger(3) in this case. I'm not familiar with all the code, so I don't know if there are other implications to this change. Reggie, I hope this helps. You should be able to make a far cleaner fix.
[8 Jul 2004 17:11]
Reggie Burnett
Thank you for your bug report. This issue has been committed to our source repository of that product and will be incorporated into the next release. If necessary, you can access the source repository and build the latest available version, including the bugfix, yourself. More information about accessing the source trees is available at http://www.mysql.com/doc/en/Installing_source_tree.html