| Bug #31502 | 5.1.20 -> 5.1.22 Slave crashes if it gets an event w/ data for non-exist column | ||
|---|---|---|---|
| Submitted: | 10 Oct 2007 13:35 | Modified: | 28 Sep 13:28 |
| Reporter: | Serge Kozlov | ||
| Status: | Verified | ||
| Category: | Server: RBR | Severity: | S1 (Critical) |
| Version: | 5.1.22 | OS: | Linux |
| Assigned to: | Mats Kindahl | Target Version: | 5.1+ |
| Triage: | Triaged: D1 (Critical) / R2 (Low) / E3 (Medium) | ||
[10 Oct 2007 13:35]
Serge Kozlov
[10 Oct 2007 13:37]
Serge Kozlov
testcase and patched mtr
Attachment: bug31502.zip (application/zip, text), 35.18 KiB.
[12 Dec 2007 20:49]
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/39813 ChangeSet@1.2651, 2007-12-12 20:48:06+01:00, mats@kindahl-laptop.dnsalias.net +8 -0 Bug #31502: 5.1.20 -> 5.1.22 Slave crashes if it gets an event w/ data for non-exist column 5.1.20 table map event does not contain metadata for fields, i.e., there is no information about the parameters for the types. When replicating to a 5.1.22 server that expects metadata, it turns out to incorrectly be zero in many cases, leading to misaligned rows. This patch does a decent job of providing length of fields where the length can be computed without the metadata, and throws an error otherwise, stopping the slave.
[13 Dec 2007 21:28]
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/39937 ChangeSet@1.2651, 2007-12-13 21:27:35+01:00, mats@kindahl-laptop.dnsalias.net +10 -0 Bug #31502: 5.1.20 -> 5.1.22 Slave crashes if it gets an event w/ data for non-exist column 5.1.16 to 5.1.20 table map event does not contain metadata for fields, i.e., there is no information about the parameters for the types. When replicating to a 5.1.22 server that expects metadata, it turns out to incorrectly be zero in many cases, leading to misaligned rows. This patch does a decent job of providing length of fields where the length can be computed without the metadata, and throws an error otherwise, stopping the slave.
[22 Feb 2008 13:00]
Andrei Elkin
Setting back to in-progress as I expect another cset covering notes of our discussion with the developer back ago in Dec.
[22 Feb 2008 15:26]
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/42832 ChangeSet@1.2652, 2008-02-22 15:25:56+01:00, mats@kindahl-laptop.dnsalias.net +8 -0 BUG#31502 (5.1.20 -> 5.1.22 Slave crashes if it gets an event w/ data for non-exist column): Complimentary patch to fix the fact that type() instead of real_type() was sent in the table map event. This cause a crash when using ENUM extra columns since type() is MYSQL_TYPE_STRING and real_type() is MYSQL_TYPE_ENUM. The packed format for MYSQL_TYPE_STRING is (len, byte, ...) while the pack format for MYSQL_TYPE_ENUM is just the integer value as a single byte (which will then be interpreted as the length of a string by the slave).
[17 Jun 2008 15:56]
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/48000 2612 Mats Kindahl 2008-06-17 Bug #31502: 5.1.20 -> 5.1.22 Slave crashes if it gets an event w/ data for non-exist column 5.1.16 to 5.1.20 table map event does not contain metadata for fields, i.e., there is no information about the parameters for the types. When replicating to a 5.1.22 server that expects metadata, it turns out to incorrectly be zero in many cases, leading to misaligned rows. This patch does a decent job of providing length of fields where the length can be computed without the metadata, and throws an error otherwise, stopping the slave.
