From: Andrei Elkin Date: October 27 2010 10:24am Subject: bzr push into mysql-next-mr branch (andrei.elkin:3184 to 3185) Bug#57589 List-Archive: http://lists.mysql.com/commits/122067 X-Bug: 57589 Message-Id: <201010271024.o9RAOHeH004048@mysql1000.dsl.inet.fi> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1930864287==" --===============1930864287== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline 3185 Andrei Elkin 2010-10-27 Bug #57589 SHOW SLAVE STATUS doesnt show err:1665 on NM-OS when slave can't handle checksum OS can't connect to the checksumming-ON NM and an error goes out to the error log (which is good), but OS can't stop trying to reconnect constantly (which is not). While practically this scenario must be pretty rare it's possible to fix the issue a rather nice way. Master sends back to checksum-unaware OS the ER_MASTER_FATAL_ERROR_READING_BINLOG critical error accompanied with a verbose clarification mentioning the checksum situation like in the following snippet of the error log from the patch testing: 101026 20:15:45 [ERROR] Error reading packet from server: Slave can not handle replication events with the checksum that master is configured to log ( server_errno=1236) 101026 20:15:45 [ERROR] Slave I/O: Got fatal error 1236 from master when reading data from binary log: 'Slave can not handle replication events with the checksum that master is configured to log', Error_code: 1236 Master also logs a warning 101026 20:15:33 [Warning] Configured to log replication events with checksum Master rejects sending them to Slave that can not handle it. Additional fixes for wl#2540 targeting sysvar suite. Each system var must have a test file in there. The tests are adeed. @ mysql-test/suite/sys_vars/r/all_vars.result results are changed. @ sql/rpl_master.cc In case of checksumming-ON NM -> OS replication Master sends back to checksum-unaware OS the ER_MASTER_FATAL_ERROR_READING_BINLOG critical error accompanied with a verbose clarification. Master also logs a warning. @ sql/rpl_slave.cc Unneeded anymore piece of codes is removed. @ sql/share/errmsg-utf8.txt Unneeded error is removed. @ sql/sys_vars.cc In case of binlog is not open, binlog_checksum changes anyway when a new value is set. modified: mysql-test/suite/sys_vars/r/all_vars.result sql/rpl_master.cc sql/rpl_slave.cc sql/share/errmsg-utf8.txt sql/sys_vars.cc 3184 Andrei Elkin 2010-10-26 wl#2540 fixing error constants shifted after next-mr -> wl2540 merge. Meaningful changes are only to rpl_checksum_cache where sync_master was corrected to be played on the right connection modified: mysql-test/r/explain.result mysql-test/suite/rpl/r/rpl_mixed_binlog_max_cache_size.result mysql-test/suite/rpl/r/rpl_row_binlog_max_cache_size.result mysql-test/suite/rpl/r/rpl_stm_binlog_max_cache_size.result mysql-test/suite/rpl/t/rpl_checksum_cache.test mysql-test/suite/sys_vars/r/all_vars.result mysql-test/suite/sys_vars/r/max_binlog_cache_size_basic.result === modified file 'mysql-test/suite/sys_vars/r/all_vars.result' --- a/mysql-test/suite/sys_vars/r/all_vars.result 2010-10-26 16:06:43 +0000 +++ b/mysql-test/suite/sys_vars/r/all_vars.result 2010-10-27 10:23:24 +0000 @@ -14,17 +14,11 @@ INNODB_MONITOR_COUNTER_RESET INNODB_MONITOR_COUNTER_RESET_ALL INNODB_MONITOR_COUNTER_ON INNODB_MONITOR_COUNTER_OFF -BINLOG_CHECKSUM -MASTER_VERIFY_CHECKSUM INNODB_FILE_FORMAT_MAX -SLAVE_SQL_VERIFY_CHECKSUM INNODB_MONITOR_COUNTER_RESET INNODB_MONITOR_COUNTER_RESET_ALL INNODB_MONITOR_COUNTER_ON INNODB_MONITOR_COUNTER_OFF -BINLOG_CHECKSUM -MASTER_VERIFY_CHECKSUM INNODB_FILE_FORMAT_MAX -SLAVE_SQL_VERIFY_CHECKSUM drop table t1; drop table t2; === modified file 'sql/rpl_master.cc' --- a/sql/rpl_master.cc 2010-10-25 19:02:24 +0000 +++ b/sql/rpl_master.cc 2010-10-27 10:23:24 +0000 @@ -815,9 +815,12 @@ impossible position"; current_checksum_alg != BINLOG_CHECKSUM_ALG_OFF && current_checksum_alg != BINLOG_CHECKSUM_ALG_UNDEF) { - my_errno= ER_SLAVE_IS_NOT_CHECKSUM_CAPABLE; - errmsg= ER(my_errno); - goto err; + my_errno= ER_MASTER_FATAL_ERROR_READING_BINLOG; + errmsg= "Slave can not handle replication events with the checksum " + "that master is configured to log"; + sql_print_warning("Configured to log replication events with " + "checksum Master rejects sending them to Slave " + "that can not handle it."); } binlog_can_be_corrupted= test((*packet)[FLAGS_OFFSET+ev_offset] & LOG_EVENT_BINLOG_IN_USE_F); @@ -912,9 +915,13 @@ impossible position"; current_checksum_alg != BINLOG_CHECKSUM_ALG_OFF && current_checksum_alg != BINLOG_CHECKSUM_ALG_UNDEF) { - my_errno= ER_SLAVE_IS_NOT_CHECKSUM_CAPABLE; - errmsg= ER(my_errno); - goto err; + my_errno= ER_MASTER_FATAL_ERROR_READING_BINLOG; + errmsg= "Slave can not handle replication events with the checksum " + "that master is configured to log"; + sql_print_warning("Configured to log replication events with " + "checksum Master rejects sending them to Slave " + "that can not handle it."); + goto err; } binlog_can_be_corrupted= test((*packet)[FLAGS_OFFSET+ev_offset] & LOG_EVENT_BINLOG_IN_USE_F); === modified file 'sql/rpl_slave.cc' --- a/sql/rpl_slave.cc 2010-10-25 19:02:24 +0000 +++ b/sql/rpl_slave.cc 2010-10-27 10:23:24 +0000 @@ -3359,11 +3359,6 @@ Stopping slave I/O thread due to out-of- mi->report(ERROR_LEVEL, ER_OUT_OF_RESOURCES, "%s", ER(ER_OUT_OF_RESOURCES)); goto err; - case ER_SLAVE_IS_NOT_CHECKSUM_CAPABLE: - mi->report(ERROR_LEVEL, ER_SLAVE_IS_NOT_CHECKSUM_CAPABLE, - ER(ER_SLAVE_IS_NOT_CHECKSUM_CAPABLE), - mysql_error_number, mysql_error(mysql)); - goto err; } if (try_to_reconnect(thd, mysql, mi, &retry_count, suppress_warnings, reconnect_messages[SLAVE_RECON_ACT_EVENT])) === modified file 'sql/share/errmsg-utf8.txt' --- a/sql/share/errmsg-utf8.txt 2010-10-25 19:02:24 +0000 +++ b/sql/share/errmsg-utf8.txt 2010-10-27 10:23:24 +0000 @@ -6391,8 +6391,6 @@ ER_NETWORK_READ_EVENT_CHECKSUM_FAILURE eng "Replication event checksum verification failed while reading from network." ER_BINLOG_READ_EVENT_CHECKSUM_FAILURE eng "Replication event checksum verification failed while reading from a log file." -ER_SLAVE_IS_NOT_CHECKSUM_CAPABLE - eng "Slave can not handle replication events with the checksum that master is configured to log." ER_WARN_INDEX_NOT_APPLICABLE eng "Cannot use %-.64s access on index '%-.64s' due to type or collation conversion on field '%-.64s'" ER_BINLOG_CACHE_SIZE_GREATER_THAN_MAX === modified file 'sql/sys_vars.cc' --- a/sql/sys_vars.cc 2010-10-25 19:02:24 +0000 +++ b/sql/sys_vars.cc 2010-10-27 10:23:24 +0000 @@ -1897,6 +1897,10 @@ bool Sys_var_enum_binlog_checksum::globa mysql_bin_log.checksum_alg_reset= (uint8) var->save_result.ulonglong_value; mysql_bin_log.rotate_and_purge(flags); } + else + { + binlog_checksum_options= var->save_result.ulonglong_value; + } DBUG_ASSERT((ulong) binlog_checksum_options == var->save_result.ulonglong_value); DBUG_ASSERT(mysql_bin_log.checksum_alg_reset == BINLOG_CHECKSUM_ALG_UNDEF); mysql_mutex_unlock(mysql_bin_log.get_log_lock()); --===============1930864287== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/andrei.elkin@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: andrei.elkin@stripped # target_branch: file:///home/andrei/MySQL/BZR/2a-23May/WL/mysql-next-\ # mr-wl2540/ # testament_sha1: 22e0f8bb1b5c1c006f799779474011dfe4ad5977 # timestamp: 2010-10-27 13:24:17 +0300 # source_branch: file:///home/andrei/MySQL/BZR/2a-23May/WL/5.6.99-\ # next-rm-wl2540-checksum/ # base_revision_id: andrei.elkin@stripped\ # ov98axm8iosd2atl # # Begin bundle IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWX1eUxkABaZ/gEHwAGBY5/// f+efir////pgC4+8Xad9rqs8AGgcdnTRp0e7dk2N7dS62uTvZhkVPRqT1NND0T9SHinqNtKaMjEB 6Q0AAAGgkpPUGENCaieoaNPUP1QeoZAGg0GgA0Mg4aaYIZDTTIyYQDTQBhNGmTAAgaCRIKeQVPTS nmT1NSPKZH6hpijIADIAHohgRRI1MImE1T8p6aaGlPEnkjENNNPUaAAAAJJARoJgQTI0xTVPNU9E 8o2keo9T1MagZDQeUr5UIGn1bEUnhDPNIslGZCLo82dyDPRH3czRSggSUGl1a0dLBOni+uqVu6pj 8XAVtVNh17C/PaOAqvjUG2/aYWjXlqtSNMMhLLzEABVAaG2rfUW3vW/Z9OiP1R1obbYNjaGzm/gX HfSsbcvVpurvYc841YBSc7sm8barc+qVave4lFXdtolbvfptNpeXZspovuLcnhoa/l7/Itsd10Mb aHM/2cR7H482gjHP8tR6qD5M1g6TKxlMfQnQB/YhpzP5VbfKhKBQiqqiPL2/zo+/OxkFsCkNlXWU xZ5yGLFlw46Sp40ZxNK5dW3OVMrIqTcShCyLlWaoJ4QFSFRbxNa0XtXe3ZuaUhDoF1xUFG7bz1yT YMszUlVgfzoV6YhhHVjmWjkN0QN7a7b3b51UjwFIb5bLORPgsW1eHEDXDdoRhgIqyKQUWrJtw3xy 9bNCHHPvr3Hjd8ezyJEEQbnhDcMPWKeWouha1g/E28K308J3aZiot2U4hpgt0K8iZhdKN0YZ01HH JNt8F9eyHuaMxTMFFDsUKJqS/Yn4c9+nTgM7vEbd4ncFwaAb4t0c6hcGqCOYkcTUkC5W0FsIDmCF Qo2C0o2NpbNAlzB/JfbsMpqurQ0GJCghVMa9YlChJ1G6UJqpMbw/5aXN9IaBzwUyTlikWhe9dWV9 bCJ8OlwFoC1iunfBbpmxTduLNYQ+LFj4blxNSNt89eVVmU/BLKl+vVDI1BBK+KYY4cqr1NT0ipFo SqreYD6Ln6sUzjWEo/qonHjQHeommK7C/NDswqNSw7oLoGl262dHNSL70gJiTw9trr1wwg1FqS3h xt3PEokl83OuEsA8ywqkNkqw+/vv45EU9g7+WeVg0pCUznnB96is1MqMy4Lo4Gfe8DUIHzVptN3O 5aLy1WQljXYPdshy2cqP9QznOdWEi0oqmXIpGZHSwSiJYm7HAnvTVnmGRdQbqOkDF6sUDuU+Dggu BoZmqdFRyXzWi7le5dV2Wq2ROvNOEGeGDxtEu9NWykZDjEN/POJQ4nBC5xZ1yN9hY+qw6BJSOiIC iT5KS8S70rEH0q3YlJS2ElQqUaiAYmp1XJQOhBOzCm4O1gPL+1yvDcijokxw8nt7LoHFc1VuNlB4 br32g+EhMyIB1ePIhdmu/jiUlyVydMLSOltsEbSpyXbc61729idhQ57jFxeLa581+YiCNeEstN0C ToUWZPOaieamVHdSWA4wPNXhUMWlbzEzRjpRdzQSzdk/IsKEhjvVluiiUeZOcLmivAZPbgSJtNSz mw4rJG5YDylpw22kSxhh0R5aZGtqHM/XMwMSw2QRWQPoon1gwXtJmJFUFRGKDOBMc9KRE7oPsIrO 6abAkPIlCJ5BlCBlk9nnh4QEpGFqcd5u/PzlbUntqmVuGcMnQDbBEZD2g65EpO8koFSzklNEGqUV mKc62MAK3fbj+MccPXu7RcZodXhqtjGPb2IciUDbYnXD9kdvQ7JI+8P9D5g7gj17OnOGwaG37QtP M5O4PZ/4X9pcMg1BJyYNA+oNyO5g74TKagvByeEB6cQOMBlrzDcYinEH/OsIi1FQYBhfRgmrgZbR vvZ4YIZ2mQ+euyS6XHUMgcCeej3jdwvBuzDAyD2JY8ZKdvsqlkJBfLYUSJcy+kqveQngeg871L3+ uZ7WD3NA+207fc8bUEae6TlTxDQUgLdi0uN/8PLzajo1CVx+0pWikJCLHbwKBQsEyHf+gZFcy3ic j2jErCxCs6hfYH4gA0zzGwHIclFJ297LRXQmB8WPgF6rZI4NacwcsD7ZmnXmY8XK45nY9C6H6KiQ 3IwrJHaEi1OX/PRwOkMloJb/WCKAtSJpbqMMaiXot+ESshCv4mC2AmEWhqfIFEZSL5dGL0b7Cvb0 0zJnI9cJEFWyMVaEqFk5VTRlKBJtU4myowL46A4GI7PBgyLwr5G4e49DrUrF1axLuoR8TgUrSI42 YF+/7HmewiO6GXkKBgtfS4DO0CRr76lju6ea5A/AdEQ0OcxUHCH6IrKklQ5QhDewPqi+NjQQ8BOf 7H5jl7FxW04ENSf5A3jMzJSy9iPWjwk2xgdQRUBjz0zOhp3QSUOJ+CxN8EpF1hbskzQW48e1LSMu 2TeCvBEmWU+LdP9OcHkkFDjHnBS/RoIYDLcBCkloLUJFqZYAGNiF7g/P1az/Bqm+NN50d2jv4xrH URBrXhhgGFmK65A4JcpfQI+K7HM2HevLl5liL/qnIXbUWiYxS+xFXdwQyHJYLgqkgmwcHk5SGNpi aYaD0DRZypQiCOwWC3zBOlxMj13HQ6lsfK9m1NwQEzIcAjztllQcQJJLVp4Sj47Kq0bmDiyeqmrD eh1TTBDNq6U6SXWBuLbCscA0YJ75FvAKpZK7FdgFDl4MaSM2BryxMTZaF55niHN9GC1nd8fC6FQj VmSZe0KYoM24AMj0GSCsyxs1GRtzUBuazV2O8O2XyPG1tqA84Eq+lxDP+SOYJ5ALqPq6UqwWJee1 ckQm295+nXpGGICLlCE52BIxA3aPAN3s5VTptTv4Src9MLBB5rNl1SqmKbkZyiQrNjTqDEiDqCIu jejNakSzFiby2rYoEWW/cRpICktmyhK473irOcH4DpchayELQsJZo+oISxUgwSymgqSBRkD5YUDj eE56rB6VSQNMZ0YQMIsHaS0UD8CKqQb3O0bS7MN5GEMwLjLQ2hvFqWS7xeZt0uHiY3bOmIUSVcQm IVsWSDF/0TKZBwzVzvqdowFG3pBEDCaiusFQOw/7s0HuWld+4LT05esJw3r1txQ6pSFiEkbTk8Hm rsXgBbTX1XtDcY48HlWsAwXYF6rIbBrohxCIcfVKc0fWw4isUUKF0Ab85aWpZExR0LqBJSiMAfMG qNWEfpiLJTsVlbyobodpKa2JRQy+C6dQpSKDXRsHObvJB1mIEZscMx+EnByG8JNsf5wpptLIDtzW cPrXeL+O+y8OzGBBGjLPR/gFEyd5MjeKU5ZgUUomluMz06i+8tCLpWLAVAcHBS8Uljf1qXOM46kA 07QKMmmyXnSVVmKxrLDfjbKhdKbXMyTUhS18ZTs9uE3J6m6CqhT1LFW1IqETTh5IudRUJ0aQg3T0 YFG9E0FaIYjMMLqwh7HwTrZGPhtMdmRSunjQJxTDLImRCwJnPlbFywuGMePanL7z3G2Xlk1myOlR eiUEjWCVyaBuOgYUQx2KjAA6lIkUox4AESpbUtxMi+5MBqpuDwFElQbs3pErk5fvK3CMuy5fUDd6 tDUNgJrU9VccyLoPZuqy4FtmLs1NowTtb8NougeUKumzkbhfQ6z/xdyRThQkH1eUxkA= --===============1930864287==--