From: Martin Zaun Date: March 30 2012 6:59am Subject: bzr push into mysql-5.5-cluster-7.2 branch (martin.zaun:3876 to 3878) List-Archive: http://lists.mysql.com/commits/143370 Message-Id: <201203300659.q2U6xuY4005572@acsmt356.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 3878 Martin Zaun 2012-03-29 [merge] merge from 71 to 72 3877 Martin Zaun 2012-03-29 [merge] Bug54854 - merge from ndb-7.2-ddl-exist-errors to ndb-7.2 modified: sql/mysqld.cc sql/slave.cc sql/slave.h 3876 Martin Skold 2012-03-30 [merge] Merge from 5.5.22 added: extra/yassl/certs/ca-key.pem extra/yassl/certs/client-keyEnc.pem extra/yassl/certs/client-keyEnc3.pem extra/yassl/certs/server-keyEnc.pem extra/yassl/taocrypt/certs/ extra/yassl/taocrypt/certs/client-cert.der extra/yassl/taocrypt/certs/client-key.der extra/yassl/taocrypt/certs/dh1024.dat extra/yassl/taocrypt/certs/dsa512.der extra/yassl/taocrypt/include/hc128.hpp extra/yassl/taocrypt/include/rabbit.hpp extra/yassl/taocrypt/src/hc128.cpp extra/yassl/taocrypt/src/rabbit.cpp mysql-test/include/libdaemon_example.ini mysql-test/r/bug13633383.result mysql-test/suite/innodb/r/innodb-blob.result mysql-test/suite/innodb/r/innodb_bug11754376.result mysql-test/suite/innodb/r/innodb_bug12400341.result mysql-test/suite/innodb/r/innodb_bug13510739.result mysql-test/suite/innodb/t/innodb-blob.test mysql-test/suite/innodb/t/innodb_bug11754376.test mysql-test/suite/innodb/t/innodb_bug12400341-master.opt mysql-test/suite/innodb/t/innodb_bug12400341.test mysql-test/suite/innodb/t/innodb_bug13510739.test mysql-test/suite/rpl/r/rpl_start_stop_slave.result mysql-test/suite/rpl/t/rpl_start_stop_slave.test mysql-test/suite/sys_vars/r/innodb_change_buffering_debug_basic.result mysql-test/suite/sys_vars/r/innodb_trx_rseg_n_slots_debug_basic.result mysql-test/suite/sys_vars/r/stored_program_cache_basic.result mysql-test/suite/sys_vars/t/innodb_change_buffering_debug_basic.test mysql-test/suite/sys_vars/t/innodb_trx_rseg_n_slots_debug_basic.test mysql-test/suite/sys_vars/t/stored_program_cache_basic.test mysql-test/t/bug13633383.test modified: CMakeLists.txt README VERSION client/CMakeLists.txt client/mysql_plugin.c client/mysql_upgrade.c client/mysqldump.c client/sql_string.cc cmake/build_configurations/mysql_release.cmake cmake/install_macros.cmake extra/yassl/INSTALL extra/yassl/README extra/yassl/certs/ca-cert.pem extra/yassl/certs/client-cert.der extra/yassl/certs/client-cert.pem extra/yassl/certs/client-key.der extra/yassl/certs/client-key.pem extra/yassl/certs/dsa-cert.pem extra/yassl/certs/dsa512.der extra/yassl/certs/server-cert.pem extra/yassl/certs/server-key.pem extra/yassl/certs/taoCert.txt extra/yassl/examples/client/client.cpp extra/yassl/examples/echoclient/echoclient.cpp extra/yassl/examples/echoserver/echoserver.cpp extra/yassl/examples/server/server.cpp extra/yassl/include/buffer.hpp extra/yassl/include/openssl/ssl.h extra/yassl/include/socket_wrapper.hpp extra/yassl/include/yassl_int.hpp extra/yassl/include/yassl_types.hpp extra/yassl/src/buffer.cpp extra/yassl/src/cert_wrapper.cpp extra/yassl/src/crypto_wrapper.cpp extra/yassl/src/handshake.cpp extra/yassl/src/make.bat* extra/yassl/src/socket_wrapper.cpp extra/yassl/src/ssl.cpp extra/yassl/src/yassl.cpp extra/yassl/src/yassl_error.cpp extra/yassl/src/yassl_imp.cpp extra/yassl/src/yassl_int.cpp extra/yassl/taocrypt/CMakeLists.txt extra/yassl/taocrypt/README extra/yassl/taocrypt/benchmark/benchmark.cpp extra/yassl/taocrypt/benchmark/benchmark.dsp extra/yassl/taocrypt/benchmark/dh1024.der extra/yassl/taocrypt/benchmark/dsa1024.der extra/yassl/taocrypt/benchmark/make.bat* extra/yassl/taocrypt/benchmark/rsa1024.der extra/yassl/taocrypt/include/asn.hpp extra/yassl/taocrypt/include/block.hpp extra/yassl/taocrypt/include/blowfish.hpp extra/yassl/taocrypt/include/des.hpp extra/yassl/taocrypt/include/file.hpp extra/yassl/taocrypt/include/hash.hpp extra/yassl/taocrypt/include/integer.hpp extra/yassl/taocrypt/include/kernelc.hpp extra/yassl/taocrypt/include/misc.hpp extra/yassl/taocrypt/include/modes.hpp extra/yassl/taocrypt/include/pwdbased.hpp extra/yassl/taocrypt/include/rsa.hpp extra/yassl/taocrypt/include/runtime.hpp extra/yassl/taocrypt/include/types.hpp extra/yassl/taocrypt/mySTL/stdexcept.hpp extra/yassl/taocrypt/mySTL/vector.hpp extra/yassl/taocrypt/src/aes.cpp extra/yassl/taocrypt/src/aestables.cpp extra/yassl/taocrypt/src/algebra.cpp extra/yassl/taocrypt/src/arc4.cpp extra/yassl/taocrypt/src/asn.cpp extra/yassl/taocrypt/src/blowfish.cpp extra/yassl/taocrypt/src/coding.cpp extra/yassl/taocrypt/src/dsa.cpp extra/yassl/taocrypt/src/hash.cpp extra/yassl/taocrypt/src/integer.cpp extra/yassl/taocrypt/src/make.bat* extra/yassl/taocrypt/src/md4.cpp extra/yassl/taocrypt/src/md5.cpp extra/yassl/taocrypt/src/misc.cpp extra/yassl/taocrypt/src/random.cpp extra/yassl/taocrypt/src/ripemd.cpp extra/yassl/taocrypt/src/rsa.cpp extra/yassl/taocrypt/src/sha.cpp extra/yassl/taocrypt/src/template_instnt.cpp extra/yassl/taocrypt/src/twofish.cpp extra/yassl/taocrypt/taocrypt.dsp extra/yassl/taocrypt/test/make.bat* extra/yassl/taocrypt/test/memory.cpp extra/yassl/taocrypt/test/test.cpp extra/yassl/testsuite/make.bat* extra/yassl/testsuite/test.hpp extra/yassl/testsuite/testsuite.cpp include/m_ctype.h include/m_string.h include/my_global.h include/myisam.h include/mysql/plugin.h include/welcome_copyright_notice.h libmysql/CMakeLists.txt libmysqld/CMakeLists.txt libmysqld/examples/CMakeLists.txt mysql-test/CMakeLists.txt mysql-test/collections/default.experimental mysql-test/extra/rpl_tests/rpl_extra_col_master.test mysql-test/extra/rpl_tests/rpl_insert_id_pk.test mysql-test/extra/rpl_tests/rpl_multi_update.test mysql-test/extra/rpl_tests/rpl_multi_update2.test mysql-test/extra/rpl_tests/rpl_multi_update3.test mysql-test/extra/rpl_tests/rpl_start_stop_slave.test mysql-test/include/have_32bit.inc mysql-test/include/have_example_plugin.inc mysql-test/include/have_semisync_plugin.inc mysql-test/include/have_simple_parser.inc mysql-test/include/have_udf.inc mysql-test/include/mtr_check.sql mysql-test/include/show_slave_status.inc mysql-test/include/wait_for_slave_io_error.inc mysql-test/mysql-stress-test.pl mysql-test/mysql-test-run.pl mysql-test/r/bigint.result mysql-test/r/ctype_utf8.result mysql-test/r/func_in.result mysql-test/r/func_str.result mysql-test/r/func_time.result mysql-test/r/init_connect.result mysql-test/r/join_outer.result mysql-test/r/multi_update.result mysql-test/r/myisam.result mysql-test/r/mysql_plugin.result mysql-test/r/mysqld--help-notwin.result mysql-test/r/mysqld--help-win.result mysql-test/r/mysqldump.result mysql-test/r/partition.result mysql-test/r/partition_binlog_stmt.result mysql-test/r/partition_error.result mysql-test/r/ps.result mysql-test/r/range.result mysql-test/r/sp-bugs.result mysql-test/r/sp.result mysql-test/r/xa.result mysql-test/suite/binlog/r/binlog_stm_unsafe_warning.result mysql-test/suite/binlog/r/binlog_unsafe.result mysql-test/suite/binlog/t/binlog_stm_unsafe_warning.test mysql-test/suite/binlog/t/binlog_unsafe.test mysql-test/suite/engines/funcs/r/db_alter_collate_ascii.result mysql-test/suite/engines/funcs/r/db_alter_collate_utf8.result mysql-test/suite/innodb/r/innodb-index.result mysql-test/suite/innodb/t/innodb-index.test mysql-test/suite/innodb/t/innodb_bug34300.test mysql-test/suite/innodb/t/innodb_bug53756.test mysql-test/suite/rpl/r/rpl_auto_increment_11932.result mysql-test/suite/rpl/r/rpl_cant_read_event_incident.result mysql-test/suite/rpl/r/rpl_heartbeat_basic.result mysql-test/suite/rpl/r/rpl_innodb_mixed_dml.result mysql-test/suite/rpl/r/rpl_insert_id_pk.result mysql-test/suite/rpl/r/rpl_known_bugs_detection.result mysql-test/suite/rpl/r/rpl_log_pos.result mysql-test/suite/rpl/r/rpl_manual_change_index_file.result mysql-test/suite/rpl/r/rpl_multi_update.result mysql-test/suite/rpl/r/rpl_multi_update2.result mysql-test/suite/rpl/r/rpl_multi_update3.result mysql-test/suite/rpl/r/rpl_packet.result mysql-test/suite/rpl/r/rpl_rotate_logs.result mysql-test/suite/rpl/r/rpl_stm_start_stop_slave.result mysql-test/suite/rpl/t/rpl_auto_increment_11932.test mysql-test/suite/rpl/t/rpl_cant_read_event_incident.test mysql-test/suite/rpl/t/rpl_heartbeat_basic.test mysql-test/suite/rpl/t/rpl_known_bugs_detection.test mysql-test/suite/rpl/t/rpl_log_pos.test mysql-test/suite/rpl/t/rpl_manual_change_index_file.test mysql-test/suite/rpl/t/rpl_multi_update2.test mysql-test/suite/rpl/t/rpl_multi_update3.test mysql-test/suite/rpl/t/rpl_optimize.test mysql-test/suite/rpl/t/rpl_packet.test mysql-test/suite/rpl/t/rpl_rotate_logs.test mysql-test/suite/rpl/t/rpl_semi_sync_event.test mysql-test/suite/rpl/t/rpl_stm_start_stop_slave.test mysql-test/suite/rpl/t/rpl_timezone.test mysql-test/suite/sys_vars/r/all_vars.result mysql-test/suite/sys_vars/r/character_sets_dir_basic.result mysql-test/suite/sys_vars/r/plugin_dir_basic.result mysql-test/suite/sys_vars/t/all_vars.test mysql-test/suite/sys_vars/t/character_sets_dir_basic.test mysql-test/suite/sys_vars/t/disabled.def mysql-test/t/bigint.test mysql-test/t/ctype_utf8.test mysql-test/t/events_restart.test mysql-test/t/func_str.test mysql-test/t/func_time.test mysql-test/t/init_connect.test mysql-test/t/join_outer.test mysql-test/t/multi_update.test mysql-test/t/myisam.test mysql-test/t/mysql_plugin.test mysql-test/t/mysqldump.test mysql-test/t/partition.test mysql-test/t/partition_binlog_stmt.test mysql-test/t/partition_error.test mysql-test/t/ps.test mysql-test/t/range.test mysql-test/t/sp-bugs.test mysql-test/t/sp.test mysql-test/t/udf_skip_grants-master.opt mysql-test/t/xa.test mysql-test/valgrind.supp mysys/charset-def.c mysys/my_init.c mysys/my_symlink.c packaging/WiX/custom_ui.wxs plugin/auth/dialog.c plugin/auth/qa_auth_interface.c plugin/auth/qa_auth_server.c plugin/daemon_example/CMakeLists.txt plugin/daemon_example/daemon_example.cc scripts/mysql_install_db.pl.in scripts/mysql_install_db.sh scripts/mysqld_safe.sh sql-common/my_time.c sql/filesort.cc sql/ha_partition.cc sql/item.cc sql/item_cmpfunc.cc sql/item_cmpfunc.h sql/item_timefunc.cc sql/item_xmlfunc.cc sql/log.h sql/log_event.h sql/mysqld.cc sql/mysqld.h sql/rpl_handler.h sql/rpl_injector.cc sql/rpl_mi.cc sql/rpl_mi.h sql/rpl_rli.cc sql/rpl_rli.h sql/set_var.h sql/share/errmsg-utf8.txt sql/slave.cc sql/sp_cache.cc sql/sp_cache.h sql/sp_head.cc sql/sp_head.h sql/sql_admin.cc sql/sql_base.cc sql/sql_cache.cc sql/sql_class.cc sql/sql_connect.cc sql/sql_lex.cc sql/sql_lex.h sql/sql_parse.cc sql/sql_partition.cc sql/sql_partition.h sql/sql_plugin.cc sql/sql_prepare.cc sql/sql_profile.cc sql/sql_repl.cc sql/sql_select.cc sql/sql_show.cc sql/sql_table.cc sql/sql_udf.cc sql/sql_yacc.yy sql/sys_vars.cc sql/sys_vars.h sql/table.h storage/archive/ha_archive.cc storage/blackhole/ha_blackhole.cc storage/csv/ha_tina.cc storage/example/ha_example.cc storage/federated/ha_federated.cc storage/heap/hp_info.c storage/innobase/btr/btr0btr.c storage/innobase/btr/btr0cur.c storage/innobase/btr/btr0pcur.c storage/innobase/btr/btr0sea.c storage/innobase/buf/buf0buf.c storage/innobase/buf/buf0flu.c storage/innobase/dict/dict0load.c storage/innobase/fil/fil0fil.c storage/innobase/fsp/fsp0fsp.c storage/innobase/handler/ha_innodb.cc storage/innobase/handler/ha_innodb.h storage/innobase/handler/handler0alter.cc storage/innobase/ibuf/ibuf0ibuf.c storage/innobase/include/btr0btr.h storage/innobase/include/btr0btr.ic storage/innobase/include/btr0cur.h storage/innobase/include/btr0cur.ic storage/innobase/include/btr0pcur.h storage/innobase/include/buf0buf.h storage/innobase/include/buf0buf.ic storage/innobase/include/data0data.h storage/innobase/include/data0data.ic storage/innobase/include/fsp0fsp.h storage/innobase/include/log0log.h storage/innobase/include/mem0mem.ic storage/innobase/include/mtr0log.ic storage/innobase/include/mtr0mtr.h storage/innobase/include/mtr0mtr.ic storage/innobase/include/page0page.h storage/innobase/include/page0page.ic storage/innobase/include/row0mysql.h storage/innobase/include/row0sel.h storage/innobase/include/sync0sync.h storage/innobase/include/trx0rec.ic storage/innobase/include/trx0rseg.ic storage/innobase/include/trx0sys.h storage/innobase/include/trx0undo.h storage/innobase/include/univ.i storage/innobase/include/ut0mem.h storage/innobase/include/ut0rnd.ic storage/innobase/lock/lock0lock.c storage/innobase/log/log0log.c storage/innobase/mem/mem0pool.c storage/innobase/mtr/mtr0mtr.c storage/innobase/os/os0file.c storage/innobase/os/os0proc.c storage/innobase/page/page0cur.c storage/innobase/page/page0page.c storage/innobase/pars/pars0pars.c storage/innobase/row/row0ins.c storage/innobase/row/row0merge.c storage/innobase/row/row0mysql.c storage/innobase/row/row0row.c storage/innobase/row/row0sel.c storage/innobase/row/row0umod.c storage/innobase/row/row0upd.c storage/innobase/srv/srv0srv.c storage/innobase/srv/srv0start.c storage/innobase/sync/sync0rw.c storage/innobase/sync/sync0sync.c storage/innobase/trx/trx0purge.c storage/innobase/trx/trx0rec.c storage/innobase/trx/trx0sys.c storage/innobase/trx/trx0trx.c storage/innobase/trx/trx0undo.c storage/innobase/ut/ut0mem.c storage/myisam/ft_boolean_search.c storage/myisam/ft_nlq_search.c storage/myisam/ha_myisam.cc storage/myisam/ha_myisam.h storage/myisam/mi_check.c storage/myisam/mi_packrec.c storage/myisam/mi_preload.c storage/myisam/myisamchk.c storage/myisam/myisamdef.h storage/myisam/sort.c storage/perfschema/ha_perfschema.cc storage/perfschema/pfs.cc storage/perfschema/table_ews_global_by_event_name.cc storage/perfschema/table_ews_global_by_event_name.h strings/ctype-uca.c strings/ctype-ucs2.c strings/ctype-utf8.c strings/dtoa.c unittest/mysys/bitmap-t.c unittest/mysys/my_atomic-t.c unittest/strings/strings-t.c === modified file 'sql/mysqld.cc' --- a/sql/mysqld.cc 2012-03-30 06:33:44 +0000 +++ b/sql/mysqld.cc 2012-03-30 06:54:33 +0000 @@ -7301,9 +7301,11 @@ static int get_options(int *argc_ptr, ch flush_time= 0; #ifdef HAVE_REPLICATION -#ifndef MCP_BUG54854 if (opt_slave_skip_errors) +#ifndef MCP_BUG54854 add_slave_skip_errors(opt_slave_skip_errors); +#else + init_slave_skip_errors(opt_slave_skip_errors); #endif // MCP_BUG54854 #endif === modified file 'sql/slave.cc' --- a/sql/slave.cc 2012-03-30 06:33:44 +0000 +++ b/sql/slave.cc 2012-03-30 06:54:33 +0000 @@ -271,6 +271,18 @@ int init_slave() if (pthread_key_create(&RPL_MASTER_INFO, NULL)) goto err; +#ifndef MCP_BUG54854 +#else + /* + If --slave-skip-errors=... was not used, the string value for the + system variable has not been set up yet. Do it now. + */ + if (!use_slave_mask) + { + print_slave_skip_errors(); + } +#endif // MCP_BUG54854 + /* If master_host is not specified, try to read it from the master_info file. If master_host is specified, create the master_info file if it doesn't @@ -383,6 +395,12 @@ static void print_slave_skip_errors(void DBUG_ASSERT(sizeof(slave_skip_error_names) > MIN_ROOM); DBUG_ASSERT(MAX_SLAVE_ERROR <= 999999); // 6 digits +#ifndef MCP_BUG54854 +#else + /* Make @@slave_skip_errors show the nice human-readable value. */ + opt_slave_skip_errors= slave_skip_error_names; +#endif // MCP_BUG54854 + if (!use_slave_mask || bitmap_is_clear_all(&slave_error_mask)) { /* purecov: begin tested */ @@ -437,9 +455,7 @@ void set_slave_skip_errors(char** slave_ *slave_skip_errors_ptr= slave_skip_error_names; DBUG_VOID_RETURN; } -#endif // MCP_BUG54854 -#ifndef MCP_BUG54854 /** Init function to set up array for errors that should be skipped for slave */ @@ -456,9 +472,7 @@ static void init_slave_skip_errors() use_slave_mask = 1; DBUG_VOID_RETURN; } -#endif // MCP_BUG54854 -#ifndef MCP_BUG54854 static void add_slave_skip_errors(const uint* errors, uint n_errors) { DBUG_ENTER("add_slave_skip_errors"); @@ -473,9 +487,7 @@ static void add_slave_skip_errors(const } DBUG_VOID_RETURN; } -#endif // MCP_BUG54854 -#ifndef MCP_BUG54854 /* Add errors that should be skipped for slave @@ -486,7 +498,6 @@ static void add_slave_skip_errors(const NOTES Called from get_options() in mysqld.cc on start-up */ - void add_slave_skip_errors(const char* arg) { const char *p= NULL; @@ -550,6 +561,51 @@ void add_slave_skip_errors(const char* a } DBUG_VOID_RETURN; } +#else +/* + Init function to set up array for errors that should be skipped for slave + + SYNOPSIS + init_slave_skip_errors() + arg List of errors numbers to skip, separated with ',' + + NOTES + Called from get_options() in mysqld.cc on start-up +*/ + +void init_slave_skip_errors(const char* arg) +{ + const char *p; + DBUG_ENTER("init_slave_skip_errors"); + + if (bitmap_init(&slave_error_mask,0,MAX_SLAVE_ERROR,0)) + { + fprintf(stderr, "Badly out of memory, please check your system status\n"); + exit(1); + } + use_slave_mask = 1; + for (;my_isspace(system_charset_info,*arg);++arg) + /* empty */; + if (!my_strnncoll(system_charset_info,(uchar*)arg,4,(const uchar*)"all",4)) + { + bitmap_set_all(&slave_error_mask); + print_slave_skip_errors(); + DBUG_VOID_RETURN; + } + for (p= arg ; *p; ) + { + long err_code; + if (!(p= str2int(p, 10, 0, LONG_MAX, &err_code))) + break; + if (err_code < MAX_SLAVE_ERROR) + bitmap_set_bit(&slave_error_mask,(uint)err_code); + while (!my_isdigit(system_charset_info,*p) && *p) + p++; + } + /* Convert slave skip errors bitmap into a printable string. */ + print_slave_skip_errors(); + DBUG_VOID_RETURN; +} #endif // MCP_BUG54854 static void set_thd_in_use_temporary_tables(Relay_log_info *rli) === modified file 'sql/slave.h' --- a/sql/slave.h 2012-03-26 21:14:41 +0000 +++ b/sql/slave.h 2012-03-30 06:43:39 +0000 @@ -1,4 +1,4 @@ -/* Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved. +/* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -149,6 +149,8 @@ int init_recovery(Master_info* mi, const #ifndef MCP_BUG54854 void add_slave_skip_errors(const char* arg); void set_slave_skip_errors(char** slave_skip_errors_ptr); +#else +void init_slave_skip_errors(const char* arg); #endif // MCP_BUG54854 bool flush_relay_log_info(Relay_log_info* rli); int register_slave_on_master(MYSQL* mysql); No bundle (reason: useless for push emails).