diff --git a/mysql-test/r/mysqlbinlog.result b/mysql-test/r/mysqlbinlog.result index 2ded167e6bd..1efa944bf9b 100644 --- a/mysql-test/r/mysqlbinlog.result +++ b/mysql-test/r/mysqlbinlog.result @@ -411,17 +411,6 @@ drop table t1; 1 drop table t1; shell> mysqlbinlog std_data/corrupt-relay-bin.000624 > var/tmp/bug31793.sql -set @@global.server_id= 4294967295; -reset master; -select -(@a:=load_file("MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug37313.binlog")) -is not null; -(@a:=load_file("MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug37313.binlog")) -is not null -1 -*** Unsigned server_id 4294967295 is found: 1 *** -set @@global.server_id= 1; -End of 5.0 tests flush logs; BUG#31611: Security risk with BINLOG statement SET BINLOG_FORMAT=ROW; @@ -471,4 +460,15 @@ an_int 1000 a_decimal 907.79 a_string Just a test DROP TABLE t1; +set @@global.server_id= 4294967295; +reset master; +flush logs; +select +(@a:=load_file("MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug37313.binlog")) +is not null; +(@a:=load_file("MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug37313.binlog")) +is not null +1 +*** Unsigned server_id 4294967295 is found: 1 *** +set @@global.server_id= 1; End of 5.1 tests diff --git a/mysql-test/t/mysqlbinlog.test b/mysql-test/t/mysqlbinlog.test index 96965ba1793..d73f4356877 100644 --- a/mysql-test/t/mysqlbinlog.test +++ b/mysql-test/t/mysqlbinlog.test @@ -278,27 +278,6 @@ echo shell> mysqlbinlog std_data/corrupt-relay-bin.000624 > var/tmp/bug31793.sql error 1; exec $MYSQL_BINLOG $MYSQL_TEST_DIR/std_data/corrupt-relay-bin.000624 > $MYSQLTEST_VARDIR/tmp/bug31793.sql; -# -# Bug #37313 BINLOG Contains Incorrect server id -# - -let $save_server_id= `select @@global.server_id`; -let $s_id_max=`select (1 << 32) - 1`; -eval set @@global.server_id= $s_id_max; - -reset master; ---exec $MYSQL_BINLOG $MYSQLTEST_VARDIR/log/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug37313.binlog ---replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR -eval select -(@a:=load_file("$MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug37313.binlog")) -is not null; -let $s_id_unsigned= `select @a like "%server id $s_id_max%" /* must return 1 */`; -echo *** Unsigned server_id $s_id_max is found: $s_id_unsigned ***; - -eval set @@global.server_id= $save_server_id; ---remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug37313.binlog - ---echo End of 5.0 tests # # Test --disable-force-if-open and --force-if-open @@ -363,4 +342,25 @@ remove_file $MYSQLTEST_VARDIR/tmp/bug32580.sql; query_vertical SELECT * FROM t1; DROP TABLE t1; +# +# Bug #37313 BINLOG Contains Incorrect server id +# + +let $save_server_id= `select @@global.server_id`; +let $s_id_max=`select (1 << 32) - 1`; +eval set @@global.server_id= $s_id_max; + +reset master; +flush logs; +--exec $MYSQL_BINLOG $MYSQLD_DATADIR/master-bin.000001 > $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug37313.binlog +--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR +eval select +(@a:=load_file("$MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug37313.binlog")) +is not null; +let $s_id_unsigned= `select @a like "%server id $s_id_max%" /* must return 1 */`; +echo *** Unsigned server_id $s_id_max is found: $s_id_unsigned ***; + +eval set @@global.server_id= $save_server_id; +--remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_bug37313.binlog + --echo End of 5.1 tests diff --git a/sql/log_event.cc b/sql/log_event.cc index d1d29ed5b8e..1941a304e8e 100644 --- a/sql/log_event.cc +++ b/sql/log_event.cc @@ -1258,7 +1258,7 @@ void Log_event::print_header(IO_CACHE* file, my_b_printf(file, "#"); print_timestamp(file); - my_b_printf(file, " server id %lu end_log_pos %s ", server_id, + my_b_printf(file, " server id %lu end_log_pos %s ", (ulong) server_id, llstr(log_pos,llbuff)); /* mysqlbinlog --hexdump */