Bug #887 | Bad packet between master and slave when master shuts down; corrupts relay log | ||
---|---|---|---|
Submitted: | 22 Jul 2003 7:15 | Modified: | 27 Aug 2003 12:18 |
Reporter: | Guilhem Bichot | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Replication | Severity: | S2 (Serious) |
Version: | 4.1 | OS: | Any (all) |
Assigned to: | Alexey Botchkov | CPU Architecture: | Any |
[22 Jul 2003 7:15]
Guilhem Bichot
[22 Jul 2003 7:45]
Guilhem Bichot
Passing it to Holyfoot. Indeed, in 4.1 few weeks ago the slave did not use the 4.1 protocol: I have tested and it had client capabilities 32901 (which does not contain 16384, which meant CLIENT_PROTOCOL_41 at that time). In 4.1 today, the slave uses the 4.1 protocol, it has client capabilities 2147525125, which contain 512, which means CLIENT_PROTOCOL_41 now. 2147525125 is (CLIENT_LONG_PASSWORD | CLIENT_LONG_FLAG | \ CLIENT_SECURE_CONNECTION | CLIENT_TRANSACTIONS | \ CLIENT_PROTOCOL_41 | CLIENT_SECURE_CONNECTION) | CLIENT_REMEMBER_OPTIONS, i.e. without CLIENT_REMEMBER_OPTIONS it is exactly what is in sql/client_settings.h, file created by Holyfoot. So it is *possible* that this bug was introduced when changing from mini_client.cc.
[25 Jul 2003 14:03]
Guilhem Bichot
A suggested fix could be to take inspiration from Victor's recent changes to mysqlbinlog 4.0: he changed the EOF test in dump_remote_log_entries() from if (len == 1 && net->read_pos[0] == 254) to if (len < 8 && net->read_pos[0] == 254) See ChangeSet@1.1455.61.1, 2003-07-02 16:56:27-04:00.
[27 Aug 2003 12:18]
Michael Widenius
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 Code fixed as requested