Merge lp://staging/~laurynas-biveinis/percona-server/merge-5.6.17 into lp://staging/percona-server/5.6

Proposed by Laurynas Biveinis
Status: Merged
Approved by: Alexey Kopytov
Approved revision: no longer in the source branch.
Merged at revision: 580
Proposed branch: lp://staging/~laurynas-biveinis/percona-server/merge-5.6.17
Merge into: lp://staging/percona-server/5.6
Diff against target: 52963 lines (+16518/-4673)
1243 files modified
CMakeLists.txt (+8/-7)
VERSION (+2/-2)
client/mysql.cc (+4/-4)
client/mysql_config_editor.cc (+15/-9)
client/mysql_upgrade.c (+1/-0)
client/mysqladmin.cc (+7/-2)
client/mysqlbinlog.cc (+7/-1)
client/mysqlcheck.c (+7/-2)
client/mysqldump.c (+8/-2)
client/mysqlimport.c (+7/-2)
client/mysqlshow.c (+7/-1)
client/mysqlslap.c (+7/-1)
cmake/libutils.cmake (+1/-1)
extra/yassl/README (+30/-1)
extra/yassl/certs/ca-cert.pem (+73/-42)
extra/yassl/certs/ca-key.pem (+25/-7)
extra/yassl/certs/client-cert.pem (+69/-37)
extra/yassl/certs/client-key.pem (+25/-7)
extra/yassl/certs/client-keyEnc.pem (+25/-7)
extra/yassl/certs/dsa-cert.pem (+20/-68)
extra/yassl/certs/server-cert.pem (+148/-30)
extra/yassl/certs/server-key.pem (+25/-7)
extra/yassl/certs/server-keyEnc.pem (+25/-7)
extra/yassl/include/cert_wrapper.hpp (+5/-2)
extra/yassl/include/openssl/crypto.h (+1/-0)
extra/yassl/include/openssl/des.h (+1/-0)
extra/yassl/include/openssl/des_old.h (+1/-0)
extra/yassl/include/openssl/engine.h (+1/-0)
extra/yassl/include/openssl/err.h (+1/-0)
extra/yassl/include/openssl/evp.h (+1/-0)
extra/yassl/include/openssl/generate_prefix_files.pl (+1/-0)
extra/yassl/include/openssl/hmac.h (+1/-0)
extra/yassl/include/openssl/lhash.h (+1/-0)
extra/yassl/include/openssl/md4.h (+1/-0)
extra/yassl/include/openssl/md5.h (+1/-0)
extra/yassl/include/openssl/objects.h (+1/-0)
extra/yassl/include/openssl/opensslv.h (+1/-0)
extra/yassl/include/openssl/pem.h (+1/-0)
extra/yassl/include/openssl/pkcs12.h (+1/-0)
extra/yassl/include/openssl/prefix_crypto.h (+1/-0)
extra/yassl/include/openssl/rand.h (+1/-0)
extra/yassl/include/openssl/rsa.h (+1/-0)
extra/yassl/include/openssl/sha.h (+1/-0)
extra/yassl/include/openssl/ssl.h (+2/-2)
extra/yassl/include/openssl/x509.h (+1/-0)
extra/yassl/include/openssl/x509v3.h (+1/-0)
extra/yassl/src/cert_wrapper.cpp (+12/-2)
extra/yassl/src/crypto_wrapper.cpp (+2/-2)
extra/yassl/src/handshake.cpp (+3/-1)
extra/yassl/src/yassl_imp.cpp (+28/-10)
extra/yassl/taocrypt/include/integer.hpp (+8/-0)
extra/yassl/taocrypt/include/misc.hpp (+8/-1)
extra/yassl/taocrypt/src/aes.cpp (+54/-28)
extra/yassl/taocrypt/src/arc4.cpp (+29/-20)
extra/yassl/taocrypt/src/blowfish.cpp (+25/-18)
extra/yassl/taocrypt/src/des.cpp (+27/-25)
extra/yassl/taocrypt/src/integer.cpp (+4/-2)
extra/yassl/taocrypt/src/md5.cpp (+29/-21)
extra/yassl/taocrypt/src/rabbit.cpp (+10/-5)
extra/yassl/taocrypt/src/ripemd.cpp (+28/-19)
extra/yassl/taocrypt/src/sha.cpp (+31/-20)
extra/yassl/taocrypt/src/twofish.cpp (+29/-20)
extra/yassl/taocrypt/test/test.cpp (+7/-7)
include/atomic/nolock.h (+2/-2)
include/my_aes.h (+103/-41)
include/my_base.h (+5/-2)
include/my_rnd.h (+1/-0)
include/mysql_version.h.in (+4/-3)
include/queues.h (+1/-0)
include/t_ctype.h (+1/-0)
libmysql/libmysql.c (+21/-1)
libmysqld/CMakeLists.txt (+35/-1)
libmysqld/examples/test-run (+1/-0)
man/comp_err.1 (+4/-4)
man/innochecksum.1 (+2/-2)
man/msql2mysql.1 (+18/-2)
man/my_print_defaults.1 (+12/-5)
man/myisam_ftdump.1 (+2/-2)
man/myisamchk.1 (+4/-4)
man/myisamlog.1 (+2/-2)
man/myisampack.1 (+4/-4)
man/mysql-stress-test.pl.1 (+2/-2)
man/mysql-test-run.pl.1 (+2/-2)
man/mysql.1 (+34/-8)
man/mysql.server.1 (+3/-3)
man/mysql_client_test.1 (+2/-2)
man/mysql_config.1 (+2/-2)
man/mysql_config_editor.1 (+4/-4)
man/mysql_convert_table_format.1 (+19/-3)
man/mysql_find_rows.1 (+18/-2)
man/mysql_fix_extensions.1 (+18/-2)
man/mysql_install_db.1 (+3/-3)
man/mysql_plugin.1 (+2/-2)
man/mysql_secure_installation.1 (+3/-3)
man/mysql_setpermission.1 (+19/-3)
man/mysql_tzinfo_to_sql.1 (+2/-2)
man/mysql_upgrade.1 (+24/-4)
man/mysql_waitpid.1 (+2/-2)
man/mysql_zap.1 (+2/-2)
man/mysqlaccess.1 (+18/-2)
man/mysqladmin.1 (+64/-6)
man/mysqlbinlog.1 (+79/-5)
man/mysqlbug.1 (+2/-2)
man/mysqlcheck.1 (+64/-6)
man/mysqld.8 (+2/-2)
man/mysqld_multi.1 (+3/-3)
man/mysqld_safe.1 (+2/-2)
man/mysqldump.1 (+63/-5)
man/mysqldumpslow.1 (+2/-2)
man/mysqlhotcopy.1 (+2/-2)
man/mysqlimport.1 (+63/-5)
man/mysqlshow.1 (+63/-5)
man/mysqlslap.1 (+64/-6)
man/mysqltest.1 (+2/-2)
man/ndb-common-options.1 (+2/-2)
man/ndb_blob_tool.1 (+2/-2)
man/ndb_config.1 (+4/-3)
man/ndb_cpcd.1 (+2/-2)
man/ndb_delete_all.1 (+2/-2)
man/ndb_desc.1 (+2/-2)
man/ndb_drop_index.1 (+3/-3)
man/ndb_drop_table.1 (+2/-2)
man/ndb_error_reporter.1 (+2/-2)
man/ndb_index_stat.1 (+2/-2)
man/ndb_mgm.1 (+2/-2)
man/ndb_mgmd.8 (+2/-2)
man/ndb_print_backup_file.1 (+2/-2)
man/ndb_print_schema_file.1 (+2/-2)
man/ndb_print_sys_file.1 (+2/-2)
man/ndb_restore.1 (+2/-2)
man/ndb_select_all.1 (+2/-2)
man/ndb_select_count.1 (+2/-2)
man/ndb_setup.py.1 (+2/-2)
man/ndb_show_tables.1 (+2/-2)
man/ndb_size.pl.1 (+2/-2)
man/ndb_waiter.1 (+2/-2)
man/ndbd.8 (+2/-2)
man/ndbd_redo_log_reader.1 (+3/-3)
man/ndbinfo_select_all.1 (+2/-2)
man/ndbmtd.8 (+2/-2)
man/perror.1 (+2/-2)
man/replace.1 (+2/-2)
man/resolve_stack_dump.1 (+2/-2)
man/resolveip.1 (+2/-2)
mysql-test/collections/default.daily (+4/-0)
mysql-test/collections/default.push (+1/-1)
mysql-test/collections/default.weekly (+2/-0)
mysql-test/collections/disabled-gtid-on.list (+1/-0)
mysql-test/extra/rpl_tests/grep_pattern.inc (+0/-22)
mysql-test/extra/rpl_tests/rpl_auto_increment.test (+18/-18)
mysql-test/extra/rpl_tests/rpl_auto_increment_insert_view.test (+2/-2)
mysql-test/extra/rpl_tests/rpl_auto_increment_invoke_trigger.test (+2/-2)
mysql-test/extra/rpl_tests/rpl_autoinc_func_invokes_trigger.test (+2/-2)
mysql-test/extra/rpl_tests/rpl_blackhole.test (+1/-1)
mysql-test/extra/rpl_tests/rpl_change_master.test (+4/-4)
mysql-test/extra/rpl_tests/rpl_charset.test (+8/-8)
mysql-test/extra/rpl_tests/rpl_commit_after_flush.test (+2/-2)
mysql-test/extra/rpl_tests/rpl_conflicts.test (+3/-4)
mysql-test/extra/rpl_tests/rpl_crash_safe.test (+3/-3)
mysql-test/extra/rpl_tests/rpl_ddl.test (+4/-4)
mysql-test/extra/rpl_tests/rpl_delete_no_where.test (+3/-3)
mysql-test/extra/rpl_tests/rpl_filters.test (+2/-3)
mysql-test/extra/rpl_tests/rpl_flsh_tbls.test (+1/-1)
mysql-test/extra/rpl_tests/rpl_foreign_key.test (+4/-4)
mysql-test/extra/rpl_tests/rpl_heartbeat_2slaves.inc (+4/-2)
mysql-test/extra/rpl_tests/rpl_implicit_commit_binlog.test (+2/-2)
mysql-test/extra/rpl_tests/rpl_insert_delayed.test (+6/-6)
mysql-test/extra/rpl_tests/rpl_insert_id.test (+21/-21)
mysql-test/extra/rpl_tests/rpl_insert_id_pk.test (+5/-5)
mysql-test/extra/rpl_tests/rpl_insert_ignore.test (+4/-2)
mysql-test/extra/rpl_tests/rpl_insert_ignore_gtid_on.inc (+17/-0)
mysql-test/extra/rpl_tests/rpl_loaddata.test (+5/-5)
mysql-test/extra/rpl_tests/rpl_loaddata_s.inc (+2/-2)
mysql-test/extra/rpl_tests/rpl_loadfile.test (+2/-2)
mysql-test/extra/rpl_tests/rpl_log.test (+19/-6)
mysql-test/extra/rpl_tests/rpl_max_relay_size.test (+2/-2)
mysql-test/extra/rpl_tests/rpl_mts_crash_safe.test (+3/-3)
mysql-test/extra/rpl_tests/rpl_multi_query.test (+1/-1)
mysql-test/extra/rpl_tests/rpl_multi_update.test (+1/-1)
mysql-test/extra/rpl_tests/rpl_multi_update2.test (+5/-6)
mysql-test/extra/rpl_tests/rpl_multi_update3.test (+4/-4)
mysql-test/extra/rpl_tests/rpl_not_null.test (+8/-8)
mysql-test/extra/rpl_tests/rpl_parallel_load.test (+3/-3)
mysql-test/extra/rpl_tests/rpl_parallel_load_innodb.test (+3/-3)
mysql-test/extra/rpl_tests/rpl_record_compare.test (+6/-6)
mysql-test/extra/rpl_tests/rpl_relayrotate.test (+1/-1)
mysql-test/extra/rpl_tests/rpl_row_001.test (+2/-0)
mysql-test/extra/rpl_tests/rpl_row_UUID.test (+1/-1)
mysql-test/extra/rpl_tests/rpl_row_basic.test (+44/-42)
mysql-test/extra/rpl_tests/rpl_row_blob.test (+1/-1)
mysql-test/extra/rpl_tests/rpl_row_delayed_ins.test (+1/-0)
mysql-test/extra/rpl_tests/rpl_row_event_max_size.inc (+4/-4)
mysql-test/extra/rpl_tests/rpl_row_func003.test (+1/-1)
mysql-test/extra/rpl_tests/rpl_row_idempotency.test (+55/-55)
mysql-test/extra/rpl_tests/rpl_row_sp002.test (+6/-6)
mysql-test/extra/rpl_tests/rpl_row_sp003.test (+3/-3)
mysql-test/extra/rpl_tests/rpl_row_sp006.test (+3/-3)
mysql-test/extra/rpl_tests/rpl_row_sp007.test (+2/-2)
mysql-test/extra/rpl_tests/rpl_set_null.test (+6/-6)
mysql-test/extra/rpl_tests/rpl_show_relaylog_events.inc (+2/-2)
mysql-test/extra/rpl_tests/rpl_stress_test.inc (+1/-1)
mysql-test/extra/rpl_tests/rpl_sv_relay_space.test (+1/-1)
mysql-test/extra/rpl_tests/rpl_trig004.test (+2/-2)
mysql-test/extra/rpl_tests/rpl_truncate_helper.test (+5/-5)
mysql-test/include/default_my.cnf (+1/-0)
mysql-test/include/func_aes_block.inc (+130/-0)
mysql-test/include/have_perfschema.inc (+1/-0)
mysql-test/include/rpl_change_topology.inc (+10/-0)
mysql-test/include/rpl_end.inc (+6/-0)
mysql-test/include/rpl_init.inc (+4/-0)
mysql-test/include/subquery.inc (+16/-0)
mysql-test/include/truncate_file.inc (+3/-3)
mysql-test/lib/mtr_cases.pm (+2/-2)
mysql-test/lib/mtr_match.pm (+1/-0)
mysql-test/mysql-test-run.pl (+3/-4)
mysql-test/purify.supp (+1/-0)
mysql-test/r/alter_table.result (+4/-20)
mysql-test/r/create.result (+2/-0)
mysql-test/r/ctype_ldml.result (+1/-1)
mysql-test/r/ctype_uca.result (+14/-0)
mysql-test/r/delayed.result (+5/-0)
mysql-test/r/derived.result (+32/-0)
mysql-test/r/events_bugs.result (+4/-0)
mysql-test/r/func_aes.result (+411/-0)
mysql-test/r/func_aes_cfb1.result (+132/-0)
mysql-test/r/func_aes_cfb128.result (+132/-0)
mysql-test/r/func_aes_cfb8.result (+132/-0)
mysql-test/r/func_aes_misc.result (+255/-0)
mysql-test/r/func_aes_ofb.result (+132/-0)
mysql-test/r/information_schema-big.result (+4/-2)
mysql-test/r/innodb_mysql_lock.result (+4/-1)
mysql-test/r/innodb_mysql_sync.result (+181/-0)
mysql-test/r/insert.result (+2/-0)
mysql-test/r/max_statement_time_func.result (+1/-1)
mysql-test/r/mysql_upgrade.result (+2/-0)
mysql-test/r/mysqlcheck.result (+0/-3)
mysql-test/r/mysqld--help-notwin.result (+3/-0)
mysql-test/r/mysqld--help-win.result (+3/-0)
mysql-test/r/openssl_1.result (+1/-1)
mysql-test/r/parser.result (+25/-0)
mysql-test/r/partition.result (+2/-0)
mysql-test/r/partition_index_innodb.result (+116/-0)
mysql-test/r/partition_index_myisam.result (+83/-0)
mysql-test/r/partition_innodb.result (+27/-0)
mysql-test/r/sp.result (+10/-0)
mysql-test/r/strict.result (+17/-0)
mysql-test/r/subquery_all.result (+13/-0)
mysql-test/r/subquery_all_bka.result (+13/-0)
mysql-test/r/subquery_all_bka_nixbnl.result (+13/-0)
mysql-test/r/subquery_nomat_nosj.result (+13/-0)
mysql-test/r/subquery_nomat_nosj_bka.result (+13/-0)
mysql-test/r/subquery_nomat_nosj_bka_nixbnl.result (+13/-0)
mysql-test/r/subquery_none.result (+13/-0)
mysql-test/r/subquery_none_bka.result (+13/-0)
mysql-test/r/subquery_none_bka_nixbnl.result (+13/-0)
mysql-test/r/temporal_literal.result (+4/-0)
mysql-test/r/type_date.result (+16/-0)
mysql-test/r/type_datetime.result (+16/-0)
mysql-test/r/type_temporal_fractional.result (+257/-0)
mysql-test/r/type_timestamp.result (+16/-0)
mysql-test/r/type_timestamp_explicit.result (+16/-0)
mysql-test/suite/binlog/r/binlog_unsafe.result (+9/-0)
mysql-test/suite/binlog/t/binlog_unsafe.test (+3/-0)
mysql-test/suite/funcs_1/r/storedproc.result (+2/-0)
mysql-test/suite/innodb/r/blob-update-debug.result (+15/-0)
mysql-test/suite/innodb/r/create-index.result (+9/-0)
mysql-test/suite/innodb/r/innodb-autoinc.result (+27/-0)
mysql-test/suite/innodb/r/innodb-double-write.result (+239/-0)
mysql-test/suite/innodb/r/innodb-update-insert.result (+43/-0)
mysql-test/suite/innodb/r/innodb.result (+1/-1)
mysql-test/suite/innodb/r/innodb_ctype_ldml.result (+1/-1)
mysql-test/suite/innodb/t/blob-update-debug.test (+17/-0)
mysql-test/suite/innodb/t/create-index.test (+11/-0)
mysql-test/suite/innodb/t/innodb-autoinc.test (+14/-0)
mysql-test/suite/innodb/t/innodb-double-write.test (+364/-0)
mysql-test/suite/innodb/t/innodb-update-insert.test (+38/-0)
mysql-test/suite/innodb_fts/r/innodb-fts-ddl.result (+2/-0)
mysql-test/suite/perfschema/r/func_file_io.result (+1/-0)
mysql-test/suite/perfschema/r/func_mutex.result (+1/-0)
mysql-test/suite/perfschema/r/innodb_table_io.result (+0/-3)
mysql-test/suite/perfschema/r/myisam_file_io.result (+1/-0)
mysql-test/suite/perfschema/t/func_file_io.test (+1/-0)
mysql-test/suite/perfschema/t/func_mutex.test (+1/-0)
mysql-test/suite/perfschema/t/myisam_file_io.test (+1/-0)
mysql-test/suite/perfschema/t/nesting.test (+1/-0)
mysql-test/suite/rpl/r/rpl_000010.result (+2/-0)
mysql-test/suite/rpl/r/rpl_000011.result (+3/-0)
mysql-test/suite/rpl/r/rpl_000017.result (+1/-0)
mysql-test/suite/rpl/r/rpl_DML_error.result (+4/-0)
mysql-test/suite/rpl/r/rpl_LD_INFILE.result (+2/-0)
mysql-test/suite/rpl/r/rpl_alter.result (+2/-0)
mysql-test/suite/rpl/r/rpl_alter_db.result (+2/-0)
mysql-test/suite/rpl/r/rpl_alter_repository.result (+5/-0)
mysql-test/suite/rpl/r/rpl_auto_increment.result (+18/-0)
mysql-test/suite/rpl/r/rpl_auto_increment_11932.result (+1/-0)
mysql-test/suite/rpl/r/rpl_auto_increment_bug45679.result (+2/-0)
mysql-test/suite/rpl/r/rpl_auto_increment_update_failure.result (+28/-0)
mysql-test/suite/rpl/r/rpl_begin_commit_rollback.result (+3/-0)
mysql-test/suite/rpl/r/rpl_binlog_gcommit_options.result (+2/-0)
mysql-test/suite/rpl/r/rpl_bit.result (+2/-0)
mysql-test/suite/rpl/r/rpl_bit_npk.result (+3/-0)
mysql-test/suite/rpl/r/rpl_blackhole.result (+12/-0)
mysql-test/suite/rpl/r/rpl_bug31076.result (+1/-0)
mysql-test/suite/rpl/r/rpl_bug37426.result (+2/-0)
mysql-test/suite/rpl/r/rpl_bug41902.result (+1/-0)
mysql-test/suite/rpl/r/rpl_charset.result (+8/-0)
mysql-test/suite/rpl/r/rpl_charset_sjis.result (+2/-0)
mysql-test/suite/rpl/r/rpl_check_gtid.result (+28/-0)
mysql-test/suite/rpl/r/rpl_checksum_cache.result (+7/-0)
mysql-test/suite/rpl/r/rpl_colSize.result (+7/-0)
mysql-test/suite/rpl/r/rpl_commit_after_flush.result (+2/-0)
mysql-test/suite/rpl/r/rpl_concurrency_error.result (+2/-0)
mysql-test/suite/rpl/r/rpl_conditional_comments.result (+3/-0)
mysql-test/suite/rpl/r/rpl_corruption.result (+3/-0)
mysql-test/suite/rpl/r/rpl_crash_safe_master.result (+6/-0)
mysql-test/suite/rpl/r/rpl_create_database.result (+4/-0)
mysql-test/suite/rpl/r/rpl_create_if_not_exists.result (+5/-0)
mysql-test/suite/rpl/r/rpl_current_user.result (+8/-0)
mysql-test/suite/rpl/r/rpl_delete_no_where.result (+3/-0)
mysql-test/suite/rpl/r/rpl_do_db_filter.result (+2/-0)
mysql-test/suite/rpl/r/rpl_do_table_filter_insensitive.result (+2/-0)
mysql-test/suite/rpl/r/rpl_do_table_filter_sensitive.result (+2/-0)
mysql-test/suite/rpl/r/rpl_drop.result (+1/-0)
mysql-test/suite/rpl/r/rpl_drop_view.result (+2/-0)
mysql-test/suite/rpl/r/rpl_dual_pos_advance.result (+4/-0)
mysql-test/suite/rpl/r/rpl_err_ignoredtable.result (+4/-0)
mysql-test/suite/rpl/r/rpl_events.result (+3/-0)
mysql-test/suite/rpl/r/rpl_extra_row_data.result (+2/-0)
mysql-test/suite/rpl/r/rpl_filter_database.result (+3/-0)
mysql-test/suite/rpl/r/rpl_filter_tables_not_exist.result (+7/-0)
mysql-test/suite/rpl/r/rpl_filter_warnings.result (+21/-0)
mysql-test/suite/rpl/r/rpl_flush_logs.result (+7/-0)
mysql-test/suite/rpl/r/rpl_flushlog_loop.result (+4/-0)
mysql-test/suite/rpl/r/rpl_foreign_key_innodb.result (+4/-0)
mysql-test/suite/rpl/r/rpl_free_items.result (+2/-0)
mysql-test/suite/rpl/r/rpl_function_defaults.result (+2/-0)
mysql-test/suite/rpl/r/rpl_general_log.result (+2/-0)
mysql-test/suite/rpl/r/rpl_geometry.result (+1/-0)
mysql-test/suite/rpl/r/rpl_get_lock.result (+2/-0)
mysql-test/suite/rpl/r/rpl_grant.result (+12/-0)
mysql-test/suite/rpl/r/rpl_grant_plugin.result (+4/-0)
mysql-test/suite/rpl/r/rpl_group_commit_deadlock.result (+2/-0)
mysql-test/suite/rpl/r/rpl_gtid_binlog_errors.result (+270/-0)
mysql-test/suite/rpl/r/rpl_gtid_do_table_filter_insensitive.result (+40/-0)
mysql-test/suite/rpl/r/rpl_gtid_do_table_filter_sensitive.result (+40/-0)
mysql-test/suite/rpl/r/rpl_gtid_empty_group.result (+2/-0)
mysql-test/suite/rpl/r/rpl_gtid_execution.result (+110/-0)
mysql-test/suite/rpl/r/rpl_gtid_failover.result (+4/-0)
mysql-test/suite/rpl/r/rpl_gtid_heartbeat_2slave.result (+53/-0)
mysql-test/suite/rpl/r/rpl_gtid_ignore_table_filter_insensitive.result (+40/-0)
mysql-test/suite/rpl/r/rpl_gtid_ignore_table_filter_sensitive.result (+40/-0)
mysql-test/suite/rpl/r/rpl_gtid_loaddata_s.result (+21/-0)
mysql-test/suite/rpl/r/rpl_gtid_mode.result (+4/-0)
mysql-test/suite/rpl/r/rpl_gtid_parallel.result (+1/-0)
mysql-test/suite/rpl/r/rpl_gtid_purged_fail_to_connect.result (+2/-0)
mysql-test/suite/rpl/r/rpl_gtid_purged_maintained.result (+11/-0)
mysql-test/suite/rpl/r/rpl_gtid_row_event_max_size.result (+70/-0)
mysql-test/suite/rpl/r/rpl_gtid_row_show_relaylog_events.result (+203/-0)
mysql-test/suite/rpl/r/rpl_gtid_sql_until_before_after.result (+1/-0)
mysql-test/suite/rpl/r/rpl_gtid_stm_insert_delayed.result (+84/-0)
mysql-test/suite/rpl/r/rpl_gtid_stm_mix_show_relaylog_events.result (+182/-0)
mysql-test/suite/rpl/r/rpl_heartbeat.result (+2/-0)
mysql-test/suite/rpl/r/rpl_heartbeat_2slaves.result (+2/-0)
mysql-test/suite/rpl/r/rpl_heartbeat_basic.result (+10/-0)
mysql-test/suite/rpl/r/rpl_idempotency.result (+40/-35)
mysql-test/suite/rpl/r/rpl_ignore_db_filter.result (+2/-0)
mysql-test/suite/rpl/r/rpl_ignore_revoke.result (+3/-0)
mysql-test/suite/rpl/r/rpl_ignore_table_filter_insensitive.result (+2/-0)
mysql-test/suite/rpl/r/rpl_ignore_table_filter_sensitive.result (+2/-0)
mysql-test/suite/rpl/r/rpl_incident.result (+1/-0)
mysql-test/suite/rpl/r/rpl_init_slave.result (+3/-0)
mysql-test/suite/rpl/r/rpl_innodb_bug28430.result (+1/-0)
mysql-test/suite/rpl/r/rpl_innodb_bug30888.result (+1/-0)
mysql-test/suite/rpl/r/rpl_insert.result (+2/-0)
mysql-test/suite/rpl/r/rpl_insert_id.result (+21/-0)
mysql-test/suite/rpl/r/rpl_insert_id_pk.result (+5/-0)
mysql-test/suite/rpl/r/rpl_insert_ignore.result (+4/-0)
mysql-test/suite/rpl/r/rpl_invoked_features.result (+3/-0)
mysql-test/suite/rpl/r/rpl_killed_ddl.result (+1/-0)
mysql-test/suite/rpl/r/rpl_known_bugs_detection.result (+2/-0)
mysql-test/suite/rpl/r/rpl_lcase_tblnames_rewrite_db.result (+1/-0)
mysql-test/suite/rpl/r/rpl_loaddata.result (+5/-0)
mysql-test/suite/rpl/r/rpl_loaddata_charset.result (+2/-0)
mysql-test/suite/rpl/r/rpl_loaddata_fatal.result (+2/-0)
mysql-test/suite/rpl/r/rpl_loaddata_m.result (+2/-0)
mysql-test/suite/rpl/r/rpl_loaddata_map.result (+2/-0)
mysql-test/suite/rpl/r/rpl_loaddata_s.result (+2/-0)
mysql-test/suite/rpl/r/rpl_loaddata_simple.result (+2/-0)
mysql-test/suite/rpl/r/rpl_loaddata_symlink.result (+2/-0)
mysql-test/suite/rpl/r/rpl_loaddatalocal.result (+13/-0)
mysql-test/suite/rpl/r/rpl_loadfile.result (+3/-0)
mysql-test/suite/rpl/r/rpl_locale.result (+2/-0)
mysql-test/suite/rpl/r/rpl_log_pos.result (+2/-0)
mysql-test/suite/rpl/r/rpl_lost_events_on_rotate.result (+1/-0)
mysql-test/suite/rpl/r/rpl_manual_change_index_file.result (+5/-0)
mysql-test/suite/rpl/r/rpl_many_optimize.result (+1/-0)
mysql-test/suite/rpl/r/rpl_master_pos_wait.result (+1/-0)
mysql-test/suite/rpl/r/rpl_migration_crash_safe.result (+2/-0)
mysql-test/suite/rpl/r/rpl_misc_functions.result (+3/-0)
mysql-test/suite/rpl/r/rpl_mix_found_rows.result (+6/-0)
mysql-test/suite/rpl/r/rpl_mix_insert_delayed.result (+6/-0)
mysql-test/suite/rpl/r/rpl_mixed_bit_pk.result (+2/-0)
mysql-test/suite/rpl/r/rpl_mixed_ddl_dml.result (+3/-0)
mysql-test/suite/rpl/r/rpl_mixed_implicit_commit_binlog.result (+2/-0)
mysql-test/suite/rpl/r/rpl_mts_debug.result (+3/-0)
mysql-test/suite/rpl/r/rpl_multi_delete.result (+1/-0)
mysql-test/suite/rpl/r/rpl_multi_delete2.result (+1/-0)
mysql-test/suite/rpl/r/rpl_multi_engine.result (+254/-249)
mysql-test/suite/rpl/r/rpl_multi_update.result (+1/-0)
mysql-test/suite/rpl/r/rpl_multi_update2.result (+4/-0)
mysql-test/suite/rpl/r/rpl_multi_update3.result (+4/-0)
mysql-test/suite/rpl/r/rpl_multi_update4.result (+2/-0)
mysql-test/suite/rpl/r/rpl_mysql_upgrade.result (+2/-0)
mysql-test/suite/rpl/r/rpl_mysqlbinlog_gtid_on.result (+1/-0)
mysql-test/suite/rpl/r/rpl_name_const.result (+1/-0)
mysql-test/suite/rpl/r/rpl_nondeterministic_functions.result (+1/-0)
mysql-test/suite/rpl/r/rpl_not_null_innodb.result (+8/-0)
mysql-test/suite/rpl/r/rpl_not_null_myisam.result (+8/-0)
mysql-test/suite/rpl/r/rpl_optimize.result (+1/-0)
mysql-test/suite/rpl/r/rpl_packet.result (+8/-0)
mysql-test/suite/rpl/r/rpl_parallel.result (+18/-0)
mysql-test/suite/rpl/r/rpl_parallel_change_master.result (+2/-0)
mysql-test/suite/rpl/r/rpl_parallel_conf_limits.result (+2/-0)
mysql-test/suite/rpl/r/rpl_parallel_conflicts.result (+2/-0)
mysql-test/suite/rpl/r/rpl_parallel_ddl.result (+3/-0)
mysql-test/suite/rpl/r/rpl_parallel_innodb.result (+18/-0)
mysql-test/suite/rpl/r/rpl_parallel_multi_db.result (+6/-0)
mysql-test/suite/rpl/r/rpl_parallel_seconds_behind_master.result (+1/-0)
mysql-test/suite/rpl/r/rpl_parallel_start_stop.result (+9/-0)
mysql-test/suite/rpl/r/rpl_parallel_temp_query.result (+4/-0)
mysql-test/suite/rpl/r/rpl_plugin_load.result (+2/-0)
mysql-test/suite/rpl/r/rpl_ps.result (+3/-0)
mysql-test/suite/rpl/r/rpl_rbr_to_sbr.result (+1/-0)
mysql-test/suite/rpl/r/rpl_read_old_relay_log_info.result (+1/-0)
mysql-test/suite/rpl/r/rpl_read_only.result (+5/-0)
mysql-test/suite/rpl/r/rpl_relay_space_innodb.result (+1/-0)
mysql-test/suite/rpl/r/rpl_relay_space_myisam.result (+1/-0)
mysql-test/suite/rpl/r/rpl_relayrotate.result (+1/-0)
mysql-test/suite/rpl/r/rpl_replicate_do.result (+5/-0)
mysql-test/suite/rpl/r/rpl_replicate_event_after_sync_stage.result (+31/-0)
mysql-test/suite/rpl/r/rpl_replicate_ignore_db.result (+3/-0)
mysql-test/suite/rpl/r/rpl_report_port.result (+1/-0)
mysql-test/suite/rpl/r/rpl_rewrite_db_filter.result (+2/-0)
mysql-test/suite/rpl/r/rpl_rewrt_db.result (+9/-0)
mysql-test/suite/rpl/r/rpl_rotate_logs.result (+6/-0)
mysql-test/suite/rpl/r/rpl_rotate_purge_deadlock.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_001.result (+1/-0)
mysql-test/suite/rpl/r/rpl_row_4_bytes.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_NOW.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_USER.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_UUID.result (+1/-0)
mysql-test/suite/rpl/r/rpl_row_basic_11bugs.result (+17/-0)
mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result (+42/-0)
mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result (+42/-0)
mysql-test/suite/rpl/r/rpl_row_basic_8partition.result (+9/-0)
mysql-test/suite/rpl/r/rpl_row_basic_allow_batching.result (+42/-0)
mysql-test/suite/rpl/r/rpl_row_blob_innodb.result (+1/-0)
mysql-test/suite/rpl/r/rpl_row_blob_myisam.result (+1/-0)
mysql-test/suite/rpl/r/rpl_row_colSize.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_conflicts.result (+6/-0)
mysql-test/suite/rpl/r/rpl_row_corruption.result (+4/-0)
mysql-test/suite/rpl/r/rpl_row_crash_safe.result (+1/-0)
mysql-test/suite/rpl/r/rpl_row_drop.result (+5/-0)
mysql-test/suite/rpl/r/rpl_row_event_max_size.result (+4/-0)
mysql-test/suite/rpl/r/rpl_row_find_row.result (+8/-0)
mysql-test/suite/rpl/r/rpl_row_flsh_tbls.result (+1/-0)
mysql-test/suite/rpl/r/rpl_row_func001.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_func002.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_func003.result (+1/-0)
mysql-test/suite/rpl/r/rpl_row_hash_scan.result (+18/-0)
mysql-test/suite/rpl/r/rpl_row_hash_scan_sanity.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_idempotency.result (+100/-70)
mysql-test/suite/rpl/r/rpl_row_ignorable_event.result (+1/-0)
mysql-test/suite/rpl/r/rpl_row_img_misc.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_img_sanity.result (+48/-0)
mysql-test/suite/rpl/r/rpl_row_implicit_commit_binlog.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_inexist_tbl.result (+1/-0)
mysql-test/suite/rpl/r/rpl_row_insert_delayed.result (+6/-0)
mysql-test/suite/rpl/r/rpl_row_log.result (+4/-0)
mysql-test/suite/rpl/r/rpl_row_log_innodb.result (+4/-0)
mysql-test/suite/rpl/r/rpl_row_max_relay_size.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_merge_engine.result (+3/-0)
mysql-test/suite/rpl/r/rpl_row_mts_crash_safe.result (+1/-0)
mysql-test/suite/rpl/r/rpl_row_mts_rec_crash_safe.result (+1/-0)
mysql-test/suite/rpl/r/rpl_row_mts_show_relaylog_events.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_rec_comp_innodb.result (+6/-0)
mysql-test/suite/rpl/r/rpl_row_rec_comp_myisam.result (+8/-0)
mysql-test/suite/rpl/r/rpl_row_record_find_myisam.result (+1/-0)
mysql-test/suite/rpl/r/rpl_row_show_relaylog_events.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_sp001.result (+5/-0)
mysql-test/suite/rpl/r/rpl_row_sp002_innodb.result (+6/-0)
mysql-test/suite/rpl/r/rpl_row_sp003.result (+3/-0)
mysql-test/suite/rpl/r/rpl_row_sp005.result (+3/-0)
mysql-test/suite/rpl/r/rpl_row_sp006_InnoDB.result (+3/-0)
mysql-test/suite/rpl/r/rpl_row_sp007_innodb.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_sp008.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_sp009.result (+4/-0)
mysql-test/suite/rpl/r/rpl_row_sp010.result (+3/-0)
mysql-test/suite/rpl/r/rpl_row_sp011.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_sp012.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_tbl_metadata.result (+13/-0)
mysql-test/suite/rpl/r/rpl_row_trig001.result (+3/-0)
mysql-test/suite/rpl/r/rpl_row_trig002.result (+4/-0)
mysql-test/suite/rpl/r/rpl_row_trig003.result (+1/-0)
mysql-test/suite/rpl/r/rpl_row_trig004.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_trunc_temp.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_unsafe_funcs.result (+2/-0)
mysql-test/suite/rpl/r/rpl_row_until.result (+4/-0)
mysql-test/suite/rpl/r/rpl_row_utf16.result (+1/-0)
mysql-test/suite/rpl/r/rpl_row_utf32.result (+1/-0)
mysql-test/suite/rpl/r/rpl_row_view01.result (+4/-0)
mysql-test/suite/rpl/r/rpl_row_wide_table.result (+2/-0)
mysql-test/suite/rpl/r/rpl_seconds_behind_master.result (+5/-0)
mysql-test/suite/rpl/r/rpl_semi_sync.result (+11/-0)
mysql-test/suite/rpl/r/rpl_semi_sync_deadlock.result (+2/-0)
mysql-test/suite/rpl/r/rpl_semi_sync_event.result (+1/-0)
mysql-test/suite/rpl/r/rpl_semi_sync_group_commit_deadlock.result (+2/-0)
mysql-test/suite/rpl/r/rpl_semi_sync_non_group_commit_deadlock.result (+2/-0)
mysql-test/suite/rpl/r/rpl_sequential.result (+18/-0)
mysql-test/suite/rpl/r/rpl_server_id2.result (+1/-0)
mysql-test/suite/rpl/r/rpl_server_id_ignore.result (+3/-0)
mysql-test/suite/rpl/r/rpl_server_uuid.result (+2/-0)
mysql-test/suite/rpl/r/rpl_session_var.result (+4/-0)
mysql-test/suite/rpl/r/rpl_set_charset.result (+2/-0)
mysql-test/suite/rpl/r/rpl_set_null_innodb.result (+6/-0)
mysql-test/suite/rpl/r/rpl_set_null_myisam.result (+6/-0)
mysql-test/suite/rpl/r/rpl_show_errors.result (+1/-0)
mysql-test/suite/rpl/r/rpl_show_slave_running.result (+1/-0)
mysql-test/suite/rpl/r/rpl_skip_error.result (+9/-0)
mysql-test/suite/rpl/r/rpl_skip_incident.result (+2/-0)
mysql-test/suite/rpl/r/rpl_skip_slave_err_warnings.result (+13/-0)
mysql-test/suite/rpl/r/rpl_slave_grp_exec.result (+6/-0)
mysql-test/suite/rpl/r/rpl_slave_load_in.result (+2/-0)
mysql-test/suite/rpl/r/rpl_slave_skip.result (+7/-0)
mysql-test/suite/rpl/r/rpl_slave_status.result (+3/-0)
mysql-test/suite/rpl/r/rpl_slow_query_log.result (+7/-0)
mysql-test/suite/rpl/r/rpl_sp.result (+28/-0)
mysql-test/suite/rpl/r/rpl_sp004.result (+4/-0)
mysql-test/suite/rpl/r/rpl_sp_effects.result (+10/-0)
mysql-test/suite/rpl/r/rpl_spec_variables.result (+8/-0)
mysql-test/suite/rpl/r/rpl_sporadic_master.result (+3/-0)
mysql-test/suite/rpl/r/rpl_ssl.result (+27/-7)
mysql-test/suite/rpl/r/rpl_ssl1.result (+5/-0)
mysql-test/suite/rpl/r/rpl_stm_000001.result (+6/-0)
mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result (+4/-0)
mysql-test/suite/rpl/r/rpl_stm_conflicts.result (+3/-0)
mysql-test/suite/rpl/r/rpl_stm_flsh_tbls.result (+1/-0)
mysql-test/suite/rpl/r/rpl_stm_found_rows.result (+3/-0)
mysql-test/suite/rpl/r/rpl_stm_implicit_commit_binlog.result (+2/-0)
mysql-test/suite/rpl/r/rpl_stm_insert_delayed.result (+6/-0)
mysql-test/suite/rpl/r/rpl_stm_loaddata_concurrent.result (+5/-0)
mysql-test/suite/rpl/r/rpl_stm_loadfile.result (+2/-0)
mysql-test/suite/rpl/r/rpl_stm_log.result (+4/-0)
mysql-test/suite/rpl/r/rpl_stm_max_relay_size.result (+2/-0)
mysql-test/suite/rpl/r/rpl_stm_mix_mts_show_relaylog_events.result (+2/-0)
mysql-test/suite/rpl/r/rpl_stm_mix_show_relaylog_events.result (+2/-0)
mysql-test/suite/rpl/r/rpl_stm_mixed_crash_safe.result (+1/-0)
mysql-test/suite/rpl/r/rpl_stm_mixed_mts_crash_safe.result (+1/-0)
mysql-test/suite/rpl/r/rpl_stm_mixed_mts_rec_crash_safe.result (+1/-0)
mysql-test/suite/rpl/r/rpl_stm_mixed_mts_rec_crash_safe_checksum.result (+1/-0)
mysql-test/suite/rpl/r/rpl_stm_mixed_mts_rec_crash_safe_small.result (+1/-0)
mysql-test/suite/rpl/r/rpl_stm_mixing_engines.result (+3/-0)
mysql-test/suite/rpl/r/rpl_stm_multi_query.result (+1/-0)
mysql-test/suite/rpl/r/rpl_stm_no_op.result (+10/-0)
mysql-test/suite/rpl/r/rpl_stm_relay_ign_space.result (+3/-0)
mysql-test/suite/rpl/r/rpl_stm_sql_mode.result (+1/-0)
mysql-test/suite/rpl/r/rpl_stm_until.result (+3/-0)
mysql-test/suite/rpl/r/rpl_stm_user_variables.result (+9/-0)
mysql-test/suite/rpl/r/rpl_stop_slave.result (+2/-0)
mysql-test/suite/rpl/r/rpl_switch_stm_row_mixed.result (+14/-0)
mysql-test/suite/rpl/r/rpl_sync.result (+3/-0)
mysql-test/suite/rpl/r/rpl_temp_table.result (+1/-0)
mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result (+8/-0)
mysql-test/suite/rpl/r/rpl_temporal_fractional.result (+6/-0)
mysql-test/suite/rpl/r/rpl_temporary.result (+10/-0)
mysql-test/suite/rpl/r/rpl_temporary_errors.result (+2/-0)
mysql-test/suite/rpl/r/rpl_timezone.result (+10/-0)
mysql-test/suite/rpl/r/rpl_tmp_table_and_DDL.result (+1/-0)
mysql-test/suite/rpl/r/rpl_trigger.result (+40/-0)
mysql-test/suite/rpl/r/rpl_trunc_temp.result (+3/-0)
mysql-test/suite/rpl/r/rpl_truncate_2myisam.result (+10/-0)
mysql-test/suite/rpl/r/rpl_truncate_3innodb.result (+10/-0)
mysql-test/suite/rpl/r/rpl_typeconv.result (+1/-0)
mysql-test/suite/rpl/r/rpl_typeconv_innodb.result (+2/-0)
mysql-test/suite/rpl/r/rpl_user.result (+6/-0)
mysql-test/suite/rpl/r/rpl_user_variables.result (+17/-0)
mysql-test/suite/rpl/r/rpl_variables.result (+5/-0)
mysql-test/suite/rpl/r/rpl_variables_stm.result (+3/-0)
mysql-test/suite/rpl/r/rpl_view.result (+15/-1)
mysql-test/suite/rpl/r/rpl_view_multi.result (+4/-0)
mysql-test/suite/rpl/t/rpl_000010.test (+3/-2)
mysql-test/suite/rpl/t/rpl_000011.test (+3/-3)
mysql-test/suite/rpl/t/rpl_000017.test (+1/-1)
mysql-test/suite/rpl/t/rpl_DML_error.test (+4/-4)
mysql-test/suite/rpl/t/rpl_LD_INFILE.test (+2/-3)
mysql-test/suite/rpl/t/rpl_alter.test (+2/-2)
mysql-test/suite/rpl/t/rpl_alter_db.test (+2/-2)
mysql-test/suite/rpl/t/rpl_alter_repository.test (+6/-5)
mysql-test/suite/rpl/t/rpl_auto_increment_11932.test (+1/-1)
mysql-test/suite/rpl/t/rpl_auto_increment_bug33029.test (+1/-0)
mysql-test/suite/rpl/t/rpl_auto_increment_bug45679.test (+2/-2)
mysql-test/suite/rpl/t/rpl_auto_increment_update_failure.test (+8/-8)
mysql-test/suite/rpl/t/rpl_begin_commit_rollback.test (+3/-3)
mysql-test/suite/rpl/t/rpl_binlog_corruption.test (+1/-0)
mysql-test/suite/rpl/t/rpl_binlog_errors.test (+5/-0)
mysql-test/suite/rpl/t/rpl_binlog_gcommit_options.test (+3/-2)
mysql-test/suite/rpl/t/rpl_binlog_index.test (+1/-0)
mysql-test/suite/rpl/t/rpl_bit.test (+2/-2)
mysql-test/suite/rpl/t/rpl_bit_npk.test (+3/-3)
mysql-test/suite/rpl/t/rpl_blackhole.test (+2/-2)
mysql-test/suite/rpl/t/rpl_bug31076.test (+1/-1)
mysql-test/suite/rpl/t/rpl_bug37426.test (+2/-2)
mysql-test/suite/rpl/t/rpl_bug41902.test (+1/-1)
mysql-test/suite/rpl/t/rpl_charset_sjis.test (+2/-2)
mysql-test/suite/rpl/t/rpl_check_gtid.test (+7/-7)
mysql-test/suite/rpl/t/rpl_checksum.test (+1/-0)
mysql-test/suite/rpl/t/rpl_checksum_cache.test (+7/-12)
mysql-test/suite/rpl/t/rpl_circular_for_4_hosts.test (+1/-0)
mysql-test/suite/rpl/t/rpl_colSize.test (+13/-8)
mysql-test/suite/rpl/t/rpl_concurrency_error.test (+2/-2)
mysql-test/suite/rpl/t/rpl_conditional_comments.test (+3/-3)
mysql-test/suite/rpl/t/rpl_corruption.test (+3/-3)
mysql-test/suite/rpl/t/rpl_crash_safe_master.test (+7/-6)
mysql-test/suite/rpl/t/rpl_create_database.test (+4/-4)
mysql-test/suite/rpl/t/rpl_create_if_not_exists.test (+5/-5)
mysql-test/suite/rpl/t/rpl_critical_errors.test (+1/-1)
mysql-test/suite/rpl/t/rpl_current_user.test (+13/-8)
mysql-test/suite/rpl/t/rpl_deadlock_innodb.test (+1/-0)
mysql-test/suite/rpl/t/rpl_delayed_slave.test (+3/-3)
mysql-test/suite/rpl/t/rpl_do_db_filter.test (+1/-1)
mysql-test/suite/rpl/t/rpl_do_grant.test (+1/-0)
mysql-test/suite/rpl/t/rpl_do_table_filter_insensitive.test (+10/-0)
mysql-test/suite/rpl/t/rpl_do_table_filter_sensitive.test (+9/-0)
mysql-test/suite/rpl/t/rpl_drop.test (+1/-1)
mysql-test/suite/rpl/t/rpl_drop_db.test (+1/-0)
mysql-test/suite/rpl/t/rpl_drop_temp.test (+1/-0)
mysql-test/suite/rpl/t/rpl_drop_view.test (+2/-2)
mysql-test/suite/rpl/t/rpl_dual_pos_advance.test (+18/-4)
mysql-test/suite/rpl/t/rpl_err_ignoredtable.test (+4/-4)
mysql-test/suite/rpl/t/rpl_events.test (+3/-3)
mysql-test/suite/rpl/t/rpl_extra_col_master_innodb.test (+1/-0)
mysql-test/suite/rpl/t/rpl_extra_col_master_myisam.test (+1/-0)
mysql-test/suite/rpl/t/rpl_extra_col_slave_innodb.test (+1/-0)
mysql-test/suite/rpl/t/rpl_extra_col_slave_myisam.test (+1/-0)
mysql-test/suite/rpl/t/rpl_extra_row_data.test (+2/-2)
mysql-test/suite/rpl/t/rpl_failed_optimize.test (+4/-0)
mysql-test/suite/rpl/t/rpl_filter_database.test (+3/-3)
mysql-test/suite/rpl/t/rpl_filter_tables_not_exist.test (+8/-7)
mysql-test/suite/rpl/t/rpl_filter_warnings-slave.opt (+1/-0)
mysql-test/suite/rpl/t/rpl_filter_warnings.test (+49/-0)
mysql-test/suite/rpl/t/rpl_flush_logs.test (+8/-5)
mysql-test/suite/rpl/t/rpl_flushlog_loop.test (+8/-4)
mysql-test/suite/rpl/t/rpl_free_items.test (+2/-2)
mysql-test/suite/rpl/t/rpl_function_defaults.test (+2/-2)
mysql-test/suite/rpl/t/rpl_general_log.test (+2/-2)
mysql-test/suite/rpl/t/rpl_geometry.test (+1/-1)
mysql-test/suite/rpl/t/rpl_get_lock.test (+2/-2)
mysql-test/suite/rpl/t/rpl_grant.test (+13/-12)
mysql-test/suite/rpl/t/rpl_grant_plugin.test (+4/-4)
mysql-test/suite/rpl/t/rpl_gtid_binlog_errors-master.opt (+1/-0)
mysql-test/suite/rpl/t/rpl_gtid_binlog_errors.test (+6/-0)
mysql-test/suite/rpl/t/rpl_gtid_do_table_filter_insensitive-master.opt (+1/-0)
mysql-test/suite/rpl/t/rpl_gtid_do_table_filter_insensitive-slave.opt (+1/-0)
mysql-test/suite/rpl/t/rpl_gtid_do_table_filter_insensitive.test (+9/-0)
mysql-test/suite/rpl/t/rpl_gtid_do_table_filter_sensitive-master.opt (+1/-0)
mysql-test/suite/rpl/t/rpl_gtid_do_table_filter_sensitive-slave.opt (+1/-0)
mysql-test/suite/rpl/t/rpl_gtid_do_table_filter_sensitive.test (+9/-0)
mysql-test/suite/rpl/t/rpl_gtid_empty_group-master.opt (+1/-1)
mysql-test/suite/rpl/t/rpl_gtid_empty_group-slave.opt (+1/-1)
mysql-test/suite/rpl/t/rpl_gtid_empty_group.test (+2/-2)
mysql-test/suite/rpl/t/rpl_gtid_execution-master.opt (+1/-1)
mysql-test/suite/rpl/t/rpl_gtid_execution-slave.opt (+1/-1)
mysql-test/suite/rpl/t/rpl_gtid_execution.test (+1/-1)
mysql-test/suite/rpl/t/rpl_gtid_failover.test (+8/-4)
mysql-test/suite/rpl/t/rpl_gtid_heartbeat_2slave.cnf (+12/-0)
mysql-test/suite/rpl/t/rpl_gtid_heartbeat_2slave.test (+10/-0)
mysql-test/suite/rpl/t/rpl_gtid_ignore_table_filter_insensitive-master.opt (+1/-0)
mysql-test/suite/rpl/t/rpl_gtid_ignore_table_filter_insensitive-slave.opt (+1/-0)
mysql-test/suite/rpl/t/rpl_gtid_ignore_table_filter_insensitive.test (+8/-0)
mysql-test/suite/rpl/t/rpl_gtid_ignore_table_filter_sensitive-master.opt (+1/-0)
mysql-test/suite/rpl/t/rpl_gtid_ignore_table_filter_sensitive-slave.opt (+1/-0)
mysql-test/suite/rpl/t/rpl_gtid_ignore_table_filter_sensitive.test (+9/-0)
mysql-test/suite/rpl/t/rpl_gtid_loaddata_s-slave.opt (+1/-0)
mysql-test/suite/rpl/t/rpl_gtid_loaddata_s.test (+7/-0)
mysql-test/suite/rpl/t/rpl_gtid_mode.test (+5/-4)
mysql-test/suite/rpl/t/rpl_gtid_parallel-master.opt (+0/-1)
mysql-test/suite/rpl/t/rpl_gtid_parallel-slave.opt (+0/-1)
mysql-test/suite/rpl/t/rpl_gtid_parallel.test (+1/-0)
mysql-test/suite/rpl/t/rpl_gtid_purged_fail_to_connect-master.opt (+1/-1)
mysql-test/suite/rpl/t/rpl_gtid_purged_fail_to_connect-slave.opt (+1/-1)
mysql-test/suite/rpl/t/rpl_gtid_purged_fail_to_connect.test (+2/-2)
mysql-test/suite/rpl/t/rpl_gtid_purged_maintained.test (+3/-3)
mysql-test/suite/rpl/t/rpl_gtid_row_event_max_size-master.opt (+1/-0)
mysql-test/suite/rpl/t/rpl_gtid_row_event_max_size-slave.opt (+1/-0)
mysql-test/suite/rpl/t/rpl_gtid_row_event_max_size.test (+10/-0)
mysql-test/suite/rpl/t/rpl_gtid_row_show_relaylog_events.test (+15/-0)
mysql-test/suite/rpl/t/rpl_gtid_sql_until_before_after.test (+1/-1)
mysql-test/suite/rpl/t/rpl_gtid_stm_insert_delayed.test (+2/-0)
mysql-test/suite/rpl/t/rpl_gtid_stm_mix_show_relaylog_events.test (+15/-0)
mysql-test/suite/rpl/t/rpl_heartbeat.test (+2/-2)
mysql-test/suite/rpl/t/rpl_heartbeat_2slaves.test (+2/-0)
mysql-test/suite/rpl/t/rpl_heartbeat_basic.test (+12/-11)
mysql-test/suite/rpl/t/rpl_heartbeat_ssl.test (+1/-0)
mysql-test/suite/rpl/t/rpl_idempotency.test (+5/-5)
mysql-test/suite/rpl/t/rpl_ignore_db_filter.test (+1/-1)
mysql-test/suite/rpl/t/rpl_ignore_revoke.test (+3/-3)
mysql-test/suite/rpl/t/rpl_ignore_table.test (+1/-0)
mysql-test/suite/rpl/t/rpl_ignore_table_filter_insensitive.test (+8/-0)
mysql-test/suite/rpl/t/rpl_ignore_table_filter_sensitive.test (+8/-0)
mysql-test/suite/rpl/t/rpl_incident.test (+2/-1)
mysql-test/suite/rpl/t/rpl_init_slave.test (+3/-3)
mysql-test/suite/rpl/t/rpl_innodb_bug28430.test (+1/-1)
mysql-test/suite/rpl/t/rpl_innodb_bug30888.test (+1/-1)
mysql-test/suite/rpl/t/rpl_insert.test (+3/-2)
mysql-test/suite/rpl/t/rpl_invoked_features.test (+6/-3)
mysql-test/suite/rpl/t/rpl_killed_ddl.test (+1/-1)
mysql-test/suite/rpl/t/rpl_known_bugs_detection.test (+2/-2)
mysql-test/suite/rpl/t/rpl_lcase_tblnames_rewrite_db.test (+1/-1)
mysql-test/suite/rpl/t/rpl_loaddata.test (+1/-0)
mysql-test/suite/rpl/t/rpl_loaddata_charset.test (+2/-2)
mysql-test/suite/rpl/t/rpl_loaddata_fatal.test (+3/-2)
mysql-test/suite/rpl/t/rpl_loaddata_m.test (+2/-2)
mysql-test/suite/rpl/t/rpl_loaddata_map.test (+2/-2)
mysql-test/suite/rpl/t/rpl_loaddata_s.test (+6/-0)
mysql-test/suite/rpl/t/rpl_loaddata_simple.test (+2/-2)
mysql-test/suite/rpl/t/rpl_loaddata_symlink.test (+2/-2)
mysql-test/suite/rpl/t/rpl_loaddatalocal.test (+9/-9)
mysql-test/suite/rpl/t/rpl_loadfile.test (+1/-1)
mysql-test/suite/rpl/t/rpl_locale.test (+2/-2)
mysql-test/suite/rpl/t/rpl_log_pos.test (+3/-2)
mysql-test/suite/rpl/t/rpl_lost_events_on_rotate.test (+1/-1)
mysql-test/suite/rpl/t/rpl_manual_change_index_file.test (+6/-5)
mysql-test/suite/rpl/t/rpl_many_optimize.test (+1/-1)
mysql-test/suite/rpl/t/rpl_master_pos_wait.test (+1/-1)
mysql-test/suite/rpl/t/rpl_migration_crash_safe.test (+2/-2)
mysql-test/suite/rpl/t/rpl_misc_functions.test (+3/-3)
mysql-test/suite/rpl/t/rpl_mix_found_rows.test (+6/-6)
mysql-test/suite/rpl/t/rpl_mix_insert_delayed.test (+1/-0)
mysql-test/suite/rpl/t/rpl_mixed_bit_pk.test (+2/-2)
mysql-test/suite/rpl/t/rpl_mixed_ddl_dml.test (+3/-3)
mysql-test/suite/rpl/t/rpl_mts_debug.test (+4/-3)
mysql-test/suite/rpl/t/rpl_multi_delete.test (+1/-1)
mysql-test/suite/rpl/t/rpl_multi_delete2.test (+1/-1)
mysql-test/suite/rpl/t/rpl_multi_engine.test (+5/-5)
mysql-test/suite/rpl/t/rpl_multi_update2.test (+1/-0)
mysql-test/suite/rpl/t/rpl_multi_update4.test (+3/-2)
mysql-test/suite/rpl/t/rpl_mysql_upgrade.test (+2/-2)
mysql-test/suite/rpl/t/rpl_mysqlbinlog_gtid_on-master.opt (+0/-1)
mysql-test/suite/rpl/t/rpl_mysqlbinlog_gtid_on-slave.opt (+0/-1)
mysql-test/suite/rpl/t/rpl_mysqlbinlog_gtid_on.test (+3/-1)
mysql-test/suite/rpl/t/rpl_name_const.test (+1/-1)
mysql-test/suite/rpl/t/rpl_nondeterministic_functions.test (+1/-1)
mysql-test/suite/rpl/t/rpl_optimize.test (+1/-1)
mysql-test/suite/rpl/t/rpl_packet.test (+8/-8)
mysql-test/suite/rpl/t/rpl_parallel_change_master.test (+3/-2)
mysql-test/suite/rpl/t/rpl_parallel_conf_limits.test (+2/-2)
mysql-test/suite/rpl/t/rpl_parallel_conflicts.test (+2/-2)
mysql-test/suite/rpl/t/rpl_parallel_ddl.test (+3/-3)
mysql-test/suite/rpl/t/rpl_parallel_multi_db.test (+6/-6)
mysql-test/suite/rpl/t/rpl_parallel_seconds_behind_master.test (+1/-1)
mysql-test/suite/rpl/t/rpl_parallel_start_stop.test (+9/-9)
mysql-test/suite/rpl/t/rpl_parallel_switch_sequential.test (+1/-0)
mysql-test/suite/rpl/t/rpl_parallel_temp_query.test (+4/-4)
mysql-test/suite/rpl/t/rpl_plugin_load.test (+2/-2)
mysql-test/suite/rpl/t/rpl_ps.test (+4/-4)
mysql-test/suite/rpl/t/rpl_rbr_to_sbr.test (+1/-1)
mysql-test/suite/rpl/t/rpl_read_old_relay_log_info.test (+2/-1)
mysql-test/suite/rpl/t/rpl_read_only.test (+5/-5)
mysql-test/suite/rpl/t/rpl_replicate_do.test (+5/-5)
mysql-test/suite/rpl/t/rpl_replicate_event_after_sync_stage.test (+66/-0)
mysql-test/suite/rpl/t/rpl_replicate_ignore_db.test (+4/-3)
mysql-test/suite/rpl/t/rpl_report_port.test (+1/-1)
mysql-test/suite/rpl/t/rpl_rewrt_db.test (+9/-9)
mysql-test/suite/rpl/t/rpl_rotate_logs.test (+6/-6)
mysql-test/suite/rpl/t/rpl_rotate_purge_deadlock.test (+2/-2)
mysql-test/suite/rpl/t/rpl_row_4_bytes.test (+2/-2)
mysql-test/suite/rpl/t/rpl_row_NOW.test (+2/-2)
mysql-test/suite/rpl/t/rpl_row_USER.test (+2/-2)
mysql-test/suite/rpl/t/rpl_row_basic_11bugs.test (+17/-17)
mysql-test/suite/rpl/t/rpl_row_basic_8partition.test (+9/-9)
mysql-test/suite/rpl/t/rpl_row_colSize.test (+2/-2)
mysql-test/suite/rpl/t/rpl_row_corruption.test (+4/-4)
mysql-test/suite/rpl/t/rpl_row_create_table.test (+19/-19)
mysql-test/suite/rpl/t/rpl_row_drop.test (+5/-5)
mysql-test/suite/rpl/t/rpl_row_event_max_size.test (+11/-0)
mysql-test/suite/rpl/t/rpl_row_find_row.test (+8/-8)
mysql-test/suite/rpl/t/rpl_row_func001.test (+2/-2)
mysql-test/suite/rpl/t/rpl_row_func002.test (+5/-5)
mysql-test/suite/rpl/t/rpl_row_hash_scan.test (+19/-18)
mysql-test/suite/rpl/t/rpl_row_hash_scan_sanity.test (+2/-2)
mysql-test/suite/rpl/t/rpl_row_ignorable_event.test (+1/-1)
mysql-test/suite/rpl/t/rpl_row_img_eng_full.test (+1/-0)
mysql-test/suite/rpl/t/rpl_row_img_misc.test (+2/-2)
mysql-test/suite/rpl/t/rpl_row_img_sanity.test (+16/-16)
mysql-test/suite/rpl/t/rpl_row_inexist_tbl.test (+1/-1)
mysql-test/suite/rpl/t/rpl_row_insert_delayed.test (+1/-0)
mysql-test/suite/rpl/t/rpl_row_lcase_tblnames.test (+1/-0)
mysql-test/suite/rpl/t/rpl_row_merge_engine.test (+3/-3)
mysql-test/suite/rpl/t/rpl_row_mts_crash_safe.test (+1/-0)
mysql-test/suite/rpl/t/rpl_row_mysqlbinlog.test (+1/-0)
mysql-test/suite/rpl/t/rpl_row_rec_comp_myisam.test (+2/-2)
mysql-test/suite/rpl/t/rpl_row_record_find_myisam.test (+1/-1)
mysql-test/suite/rpl/t/rpl_row_show_relaylog_events.test (+5/-0)
mysql-test/suite/rpl/t/rpl_row_sp001.test (+6/-6)
mysql-test/suite/rpl/t/rpl_row_sp005.test (+3/-3)
mysql-test/suite/rpl/t/rpl_row_sp008.test (+2/-2)
mysql-test/suite/rpl/t/rpl_row_sp009.test (+4/-4)
mysql-test/suite/rpl/t/rpl_row_sp010.test (+3/-3)
mysql-test/suite/rpl/t/rpl_row_sp011.test (+2/-2)
mysql-test/suite/rpl/t/rpl_row_sp012.test (+2/-2)
mysql-test/suite/rpl/t/rpl_row_tabledefs_2myisam.test (+1/-1)
mysql-test/suite/rpl/t/rpl_row_tabledefs_3innodb.test (+1/-1)
mysql-test/suite/rpl/t/rpl_row_tbl_metadata.test (+4/-4)
mysql-test/suite/rpl/t/rpl_row_trig001.test (+3/-3)
mysql-test/suite/rpl/t/rpl_row_trig002.test (+4/-4)
mysql-test/suite/rpl/t/rpl_row_trig003.test (+1/-1)
mysql-test/suite/rpl/t/rpl_row_trunc_temp.test (+2/-2)
mysql-test/suite/rpl/t/rpl_row_unsafe_funcs.test (+2/-2)
mysql-test/suite/rpl/t/rpl_row_until.test (+5/-4)
mysql-test/suite/rpl/t/rpl_row_utf16.test (+1/-1)
mysql-test/suite/rpl/t/rpl_row_utf32.test (+1/-1)
mysql-test/suite/rpl/t/rpl_row_view01.test (+4/-4)
mysql-test/suite/rpl/t/rpl_row_wide_table.test (+2/-2)
mysql-test/suite/rpl/t/rpl_seconds_behind_master.test (+5/-5)
mysql-test/suite/rpl/t/rpl_semi_sync.test (+11/-11)
mysql-test/suite/rpl/t/rpl_semi_sync_deadlock.test (+2/-2)
mysql-test/suite/rpl/t/rpl_semi_sync_event.test (+1/-1)
mysql-test/suite/rpl/t/rpl_server_id2-master.opt (+1/-0)
mysql-test/suite/rpl/t/rpl_server_id2-slave.opt (+1/-1)
mysql-test/suite/rpl/t/rpl_server_id2.test (+2/-2)
mysql-test/suite/rpl/t/rpl_server_id_ignore-master.opt (+1/-0)
mysql-test/suite/rpl/t/rpl_server_id_ignore-slave.opt (+1/-1)
mysql-test/suite/rpl/t/rpl_server_id_ignore.test (+3/-3)
mysql-test/suite/rpl/t/rpl_server_uuid.cnf (+1/-0)
mysql-test/suite/rpl/t/rpl_server_uuid.test (+3/-2)
mysql-test/suite/rpl/t/rpl_session_var.test (+4/-4)
mysql-test/suite/rpl/t/rpl_set_charset.test (+2/-2)
mysql-test/suite/rpl/t/rpl_show_errors.test (+1/-1)
mysql-test/suite/rpl/t/rpl_show_slave_running.test (+1/-1)
mysql-test/suite/rpl/t/rpl_skip_error.test (+9/-9)
mysql-test/suite/rpl/t/rpl_skip_incident.test (+2/-2)
mysql-test/suite/rpl/t/rpl_skip_slave_err_warnings-slave.opt (+1/-0)
mysql-test/suite/rpl/t/rpl_skip_slave_err_warnings.test (+38/-0)
mysql-test/suite/rpl/t/rpl_slave_grp_exec.test (+6/-6)
mysql-test/suite/rpl/t/rpl_slave_load_in.test (+2/-2)
mysql-test/suite/rpl/t/rpl_slave_skip.test (+8/-7)
mysql-test/suite/rpl/t/rpl_slave_status.test (+3/-3)
mysql-test/suite/rpl/t/rpl_slow_query_log.test (+7/-7)
mysql-test/suite/rpl/t/rpl_sp.test (+28/-28)
mysql-test/suite/rpl/t/rpl_sp004.test (+4/-4)
mysql-test/suite/rpl/t/rpl_sp_effects.test (+10/-10)
mysql-test/suite/rpl/t/rpl_spec_variables.test (+8/-8)
mysql-test/suite/rpl/t/rpl_sporadic_master.test (+4/-3)
mysql-test/suite/rpl/t/rpl_ssl.test (+36/-13)
mysql-test/suite/rpl/t/rpl_ssl1.test (+5/-5)
mysql-test/suite/rpl/t/rpl_stm_000001.test (+7/-6)
mysql-test/suite/rpl/t/rpl_stm_auto_increment_bug33029.test (+4/-4)
mysql-test/suite/rpl/t/rpl_stm_found_rows.test (+3/-3)
mysql-test/suite/rpl/t/rpl_stm_insert_delayed.test (+2/-0)
mysql-test/suite/rpl/t/rpl_stm_lcase_tblnames.test (+1/-0)
mysql-test/suite/rpl/t/rpl_stm_loaddata_concurrent.test (+2/-0)
mysql-test/suite/rpl/t/rpl_stm_mix_show_relaylog_events.test (+4/-0)
mysql-test/suite/rpl/t/rpl_stm_mixed_mts_crash_safe.test (+1/-0)
mysql-test/suite/rpl/t/rpl_stm_mixing_engines.test (+3/-3)
mysql-test/suite/rpl/t/rpl_stm_no_op.test (+10/-10)
mysql-test/suite/rpl/t/rpl_stm_relay_ign_space.test (+3/-3)
mysql-test/suite/rpl/t/rpl_stm_sql_mode.test (+1/-1)
mysql-test/suite/rpl/t/rpl_stm_until.test (+3/-2)
mysql-test/suite/rpl/t/rpl_stm_user_variables.test (+9/-9)
mysql-test/suite/rpl/t/rpl_stop_slave.test (+2/-2)
mysql-test/suite/rpl/t/rpl_switch_stm_row_mixed.test (+14/-14)
mysql-test/suite/rpl/t/rpl_sync.test (+3/-3)
mysql-test/suite/rpl/t/rpl_temp_table.test (+1/-1)
mysql-test/suite/rpl/t/rpl_temp_table_mix_row.test (+8/-8)
mysql-test/suite/rpl/t/rpl_temporal_fractional.test (+6/-6)
mysql-test/suite/rpl/t/rpl_temporary.test (+14/-13)
mysql-test/suite/rpl/t/rpl_temporary_errors.test (+2/-2)
mysql-test/suite/rpl/t/rpl_timezone.test (+10/-10)
mysql-test/suite/rpl/t/rpl_tmp_table_and_DDL.test (+1/-1)
mysql-test/suite/rpl/t/rpl_trigger.test (+13/-13)
mysql-test/suite/rpl/t/rpl_trunc_temp.test (+3/-3)
mysql-test/suite/rpl/t/rpl_typeconv.test (+2/-1)
mysql-test/suite/rpl/t/rpl_typeconv_innodb.test (+2/-2)
mysql-test/suite/rpl/t/rpl_user.test (+6/-6)
mysql-test/suite/rpl/t/rpl_user_variables.test (+18/-14)
mysql-test/suite/rpl/t/rpl_variables.test (+3/-3)
mysql-test/suite/rpl/t/rpl_variables_stm.test (+3/-3)
mysql-test/suite/rpl/t/rpl_view.test (+15/-16)
mysql-test/suite/rpl/t/rpl_view_multi.test (+4/-4)
mysql-test/suite/sys_vars/r/block_encryption_mode_basic.result (+200/-0)
mysql-test/suite/sys_vars/r/general_log_file_basic.result (+1/-0)
mysql-test/suite/sys_vars/r/innodb_fil_make_page_dirty_debug_basic.result (+26/-0)
mysql-test/suite/sys_vars/r/innodb_ft_result_cache_limit_basic.result (+10/-4)
mysql-test/suite/sys_vars/r/innodb_saved_page_number_debug_basic.result (+26/-0)
mysql-test/suite/sys_vars/r/innodb_thread_sleep_delay_basic.result (+30/-0)
mysql-test/suite/sys_vars/r/slow_query_log_file_basic.result (+1/-0)
mysql-test/suite/sys_vars/r/sql_mode_basic.result (+16/-0)
mysql-test/suite/sys_vars/t/block_encryption_mode_basic.test (+225/-0)
mysql-test/suite/sys_vars/t/general_log_file_basic.test (+1/-1)
mysql-test/suite/sys_vars/t/innodb_fil_make_page_dirty_debug_basic.test (+34/-0)
mysql-test/suite/sys_vars/t/innodb_ft_result_cache_limit_basic.test (+4/-1)
mysql-test/suite/sys_vars/t/innodb_saved_page_number_debug_basic.test (+35/-0)
mysql-test/suite/sys_vars/t/innodb_thread_sleep_delay_basic.test (+18/-0)
mysql-test/suite/sys_vars/t/pfs_digests_size_basic.test (+1/-0)
mysql-test/suite/sys_vars/t/pfs_session_connect_attrs_size_basic.test (+1/-0)
mysql-test/suite/sys_vars/t/slow_query_log_file_basic.test (+1/-1)
mysql-test/t/alter_table.test (+0/-22)
mysql-test/t/ctype_uca.test (+48/-0)
mysql-test/t/derived.test (+37/-0)
mysql-test/t/func_aes.test (+225/-0)
mysql-test/t/func_aes_cfb1.test (+20/-0)
mysql-test/t/func_aes_cfb128.test (+20/-0)
mysql-test/t/func_aes_cfb8.test (+20/-0)
mysql-test/t/func_aes_misc.test (+180/-0)
mysql-test/t/func_aes_ofb.test (+20/-0)
mysql-test/t/information_schema-big.test (+2/-0)
mysql-test/t/innodb_mysql_sync.test (+199/-0)
mysql-test/t/mysqlcheck.test (+0/-3)
mysql-test/t/openssl_1.test (+1/-1)
mysql-test/t/parser.test (+25/-0)
mysql-test/t/partition_index_innodb.test (+143/-0)
mysql-test/t/partition_index_myisam.test (+108/-0)
mysql-test/t/partition_innodb.test (+20/-0)
mysql-test/t/type_temporal_fractional.test (+147/-0)
mysys/mf_arr_appstr.c (+1/-0)
mysys/mf_qsort2.c (+1/-0)
mysys/mf_same.c (+1/-0)
mysys/mf_soundex.c (+1/-0)
mysys/mf_wcomp.c (+1/-0)
mysys/mulalloc.c (+1/-0)
mysys/my_alarm.c (+1/-0)
mysys/my_crc32.c (+1/-0)
mysys/my_div.c (+1/-0)
mysys/my_getpagesize.c (+1/-0)
mysys/my_handler_errors.h (+2/-1)
mysys/my_libwrap.c (+1/-0)
mysys/my_memmem.c (+1/-0)
mysys/test_dir.c (+1/-0)
mysys/test_xml.c (+1/-0)
mysys_ssl/CMakeLists.txt (+13/-1)
mysys_ssl/my_aes.cc (+31/-276)
mysys_ssl/my_aes_impl.h (+31/-0)
mysys_ssl/my_aes_openssl.cc (+220/-0)
mysys_ssl/my_aes_yassl.cc (+240/-0)
mysys_ssl/my_default.cc (+5/-5)
mysys_ssl/my_rnd.cc (+39/-23)
packaging/rpm-fedora/CMakeLists.txt (+1/-2)
packaging/rpm-fedora/mysql-5.6-libmysqlclient-symbols.patch (+65/-143)
packaging/rpm-fedora/mysql-5.6.16-mysql-install.patch (+11/-79)
packaging/rpm-fedora/mysql-embedded-check.c (+0/-26)
packaging/rpm-fedora/mysql.spec.in (+21/-76)
packaging/rpm-oel/CMakeLists.txt (+2/-2)
packaging/rpm-oel/mysql-5.6-libmysqlclient-symbols.patch (+960/-0)
packaging/rpm-oel/mysql-5.6.16-mysql-install.patch (+11/-79)
packaging/rpm-oel/mysql-embedded-check.c (+0/-26)
packaging/rpm-oel/mysql.spec.in (+140/-46)
plugin/innodb_memcached/daemon_memcached/CMakeLists.txt (+2/-2)
plugin/innodb_memcached/daemon_memcached/daemon/memcached.c (+10/-0)
plugin/innodb_memcached/daemon_memcached/daemon/memcached_mysql.cc (+14/-1)
plugin/innodb_memcached/daemon_memcached/daemon/memcached_mysql.h (+3/-1)
plugin/innodb_memcached/daemon_memcached/include/memcached/protocol_binary.h (+1/-0)
plugin/innodb_memcached/innodb_memcache/CMakeLists.txt (+2/-2)
plugin/semisync/semisync.cc (+1/-0)
plugin/semisync/semisync.h (+1/-0)
plugin/semisync/semisync_master.cc (+10/-3)
plugin/semisync/semisync_master_plugin.cc (+6/-1)
plugin/semisync/semisync_slave_plugin.cc (+1/-0)
scripts/CMakeLists.txt (+9/-1)
scripts/fill_help_tables.sql (+2/-1)
scripts/msql2mysql.sh (+3/-1)
scripts/mysql_config.pl.in (+2/-2)
scripts/mysql_config.sh (+4/-4)
scripts/mysql_convert_table_format.sh (+3/-1)
scripts/mysql_find_rows.sh (+3/-1)
scripts/mysql_fix_extensions.sh (+2/-1)
scripts/mysql_install_db.pl.in (+52/-20)
scripts/mysql_setpermission.sh (+3/-1)
scripts/mysql_test_data_timezone.sql (+1/-0)
scripts/mysqlaccess.sh (+4/-2)
scripts/mysqlbug.sh (+1/-0)
sql-common/client_authentication.cc (+6/-1)
sql-common/my_time.c (+11/-1)
sql-common/pack.c (+1/-0)
sql/binlog.cc (+33/-3)
sql/ha_partition.cc (+171/-19)
sql/ha_partition.h (+13/-7)
sql/handler.cc (+1/-0)
sql/handler.h (+8/-3)
sql/item.cc (+4/-2)
sql/item.h (+12/-1)
sql/item_create.cc (+94/-19)
sql/item_strfunc.cc (+177/-15)
sql/item_strfunc.h (+20/-0)
sql/item_subselect.cc (+11/-10)
sql/log_event.cc (+152/-50)
sql/log_event.h (+76/-29)
sql/mysqld.cc (+3/-2)
sql/opt_range.cc (+3/-0)
sql/replication.h (+18/-23)
sql/rpl_gtid_execution.cc (+7/-1)
sql/rpl_handler.cc (+12/-2)
sql/rpl_handler.h (+3/-2)
sql/rpl_master.cc (+49/-28)
sql/rpl_rli.h (+0/-7)
sql/rpl_slave.cc (+9/-112)
sql/share/charsets/Index.xml (+1/-0)
sql/share/charsets/armscii8.xml (+1/-0)
sql/share/charsets/ascii.xml (+1/-0)
sql/share/charsets/cp1250.xml (+1/-0)
sql/share/charsets/cp1256.xml (+1/-0)
sql/share/charsets/cp1257.xml (+1/-0)
sql/share/charsets/cp850.xml (+1/-0)
sql/share/charsets/cp852.xml (+1/-0)
sql/share/charsets/cp866.xml (+1/-0)
sql/share/charsets/dec8.xml (+1/-0)
sql/share/charsets/geostd8.xml (+1/-0)
sql/share/charsets/greek.xml (+1/-0)
sql/share/charsets/hebrew.xml (+1/-0)
sql/share/charsets/hp8.xml (+1/-0)
sql/share/charsets/keybcs2.xml (+1/-0)
sql/share/charsets/koi8r.xml (+1/-0)
sql/share/charsets/koi8u.xml (+1/-0)
sql/share/charsets/languages.html (+1/-0)
sql/share/charsets/latin1.xml (+1/-0)
sql/share/charsets/latin2.xml (+1/-0)
sql/share/charsets/latin5.xml (+1/-0)
sql/share/charsets/latin7.xml (+1/-0)
sql/share/charsets/macce.xml (+1/-0)
sql/share/charsets/macroman.xml (+1/-0)
sql/share/charsets/swe7.xml (+1/-0)
sql/share/errmsg-utf8.txt (+4/-0)
sql/sql_acl.cc (+9/-1)
sql/sql_admin.cc (+27/-5)
sql/sql_alter.h (+3/-1)
sql/sql_class.cc (+11/-6)
sql/sql_class.h (+17/-1)
sql/sql_executor.cc (+2/-12)
sql/sql_state.c (+1/-0)
sql/sql_table.cc (+27/-22)
sql/sql_table.h (+3/-2)
sql/sql_trigger.cc (+7/-0)
sql/sql_yacc.yy (+15/-1)
sql/sys_vars.cc (+48/-0)
sql/table.cc (+27/-24)
storage/archive/archive_test.c (+1/-0)
storage/heap/_check.c (+1/-0)
storage/heap/_rectest.c (+1/-0)
storage/heap/hp_extra.c (+1/-0)
storage/heap/hp_rfirst.c (+1/-0)
storage/heap/hp_rlast.c (+1/-0)
storage/heap/hp_rnext.c (+1/-0)
storage/heap/hp_rprev.c (+1/-0)
storage/heap/hp_rrnd.c (+1/-0)
storage/heap/hp_rsame.c (+1/-0)
storage/heap/hp_scan.c (+1/-0)
storage/heap/hp_update.c (+1/-0)
storage/innobase/api/api0api.cc (+32/-21)
storage/innobase/btr/btr0cur.cc (+6/-9)
storage/innobase/buf/buf0buddy.cc (+1/-1)
storage/innobase/buf/buf0buf.cc (+29/-9)
storage/innobase/buf/buf0dblwr.cc (+37/-17)
storage/innobase/buf/buf0flu.cc (+6/-4)
storage/innobase/buf/buf0lru.cc (+8/-6)
storage/innobase/dict/dict0dict.cc (+4/-5)
storage/innobase/dict/dict0load.cc (+2/-1)
storage/innobase/dict/dict0stats.cc (+128/-53)
storage/innobase/fil/fil0fil.cc (+25/-35)
storage/innobase/fts/fts0blex.cc (+231/-233)
storage/innobase/fts/fts0fts.cc (+1/-1)
storage/innobase/fts/fts0opt.cc (+4/-4)
storage/innobase/fts/fts0pars.cc (+15/-9)
storage/innobase/fts/fts0que.cc (+31/-27)
storage/innobase/fts/fts0sql.cc (+3/-2)
storage/innobase/fts/fts0tlex.cc (+39/-38)
storage/innobase/handler/ha_innodb.cc (+155/-51)
storage/innobase/handler/handler0alter.cc (+11/-4)
storage/innobase/handler/i_s.cc (+169/-118)
storage/innobase/ibuf/ibuf0ibuf.cc (+3/-2)
storage/innobase/include/buf0buf.h (+10/-1)
storage/innobase/include/buf0buf.ic (+3/-3)
storage/innobase/include/buf0dblwr.h (+4/-3)
storage/innobase/include/db0err.h (+2/-0)
storage/innobase/include/fil0fil.h (+24/-1)
storage/innobase/include/lock0lock.h (+4/-11)
storage/innobase/include/log0recv.h (+6/-2)
storage/innobase/include/os0sync.h (+2/-2)
storage/innobase/include/os0sync.ic (+4/-2)
storage/innobase/include/row0log.h (+7/-6)
storage/innobase/include/sync0rw.ic (+24/-13)
storage/innobase/include/sync0sync.ic (+4/-2)
storage/innobase/include/ut0ut.h (+14/-1)
storage/innobase/lock/lock0lock.cc (+118/-99)
storage/innobase/log/log0recv.cc (+3/-14)
storage/innobase/os/os0sync.cc (+2/-2)
storage/innobase/page/page0zip.cc (+77/-65)
storage/innobase/pars/lexyy.cc (+28/-26)
storage/innobase/pars/pars0pars.cc (+3/-2)
storage/innobase/rem/rem0cmp.cc (+16/-15)
storage/innobase/row/row0ftsort.cc (+12/-9)
storage/innobase/row/row0ins.cc (+5/-1)
storage/innobase/row/row0log.cc (+277/-96)
storage/innobase/row/row0quiesce.cc (+5/-5)
storage/innobase/row/row0uins.cc (+2/-3)
storage/innobase/row/row0umod.cc (+9/-6)
storage/innobase/row/row0upd.cc (+10/-41)
storage/innobase/row/row0vers.cc (+34/-9)
storage/innobase/srv/srv0conc.cc (+1/-1)
storage/innobase/srv/srv0srv.cc (+5/-3)
storage/innobase/srv/srv0start.cc (+37/-4)
storage/innobase/sync/sync0arr.cc (+1/-1)
storage/innobase/trx/trx0trx.cc (+2/-1)
storage/innobase/ut/ut0ut.cc (+2/-0)
storage/myisam/ftbench/Ecompare.pl (+1/-0)
storage/myisam/ftbench/Ecreate.pl (+1/-0)
storage/myisam/ftbench/Ereport.pl (+1/-0)
storage/myisam/ftbench/ft-test-run.sh (+1/-0)
storage/myisam/mi_rfirst.c (+1/-0)
storage/myisam/mi_rlast.c (+1/-0)
storage/myisam/mi_rrnd.c (+1/-0)
storage/myisam/mi_rsamepos.c (+1/-0)
storage/myisam/mi_test_all.sh (+1/-0)
storage/myisam/rt_index.h (+1/-0)
storage/myisam/rt_key.c (+1/-0)
storage/myisam/rt_key.h (+1/-0)
storage/myisam/rt_mbr.h (+1/-0)
storage/myisam/sp_defs.h (+1/-0)
storage/myisammrg/myrg_delete.c (+1/-0)
storage/myisammrg/myrg_locking.c (+1/-0)
storage/myisammrg/myrg_panic.c (+1/-0)
storage/myisammrg/myrg_range.c (+1/-0)
storage/myisammrg/myrg_records.c (+1/-0)
storage/myisammrg/myrg_rfirst.c (+1/-0)
storage/myisammrg/myrg_rlast.c (+1/-0)
storage/myisammrg/myrg_rnext.c (+1/-0)
storage/myisammrg/myrg_rnext_same.c (+1/-0)
storage/myisammrg/myrg_rprev.c (+1/-0)
storage/myisammrg/myrg_rrnd.c (+1/-0)
storage/myisammrg/myrg_rsame.c (+1/-0)
storage/myisammrg/myrg_update.c (+1/-0)
storage/myisammrg/myrg_write.c (+1/-0)
storage/ndb/CMakeLists.txt (+3/-3)
storage/ndb/config/type_mgmapiclient.cmake (+1/-0)
storage/ndb/config/type_ndbapiclient.cmake (+1/-0)
storage/ndb/config/type_util.cmake (+1/-0)
storage/ndb/docs/doxygen/Doxyfile.mgmapi (+1/-0)
storage/ndb/docs/doxygen/Doxyfile.ndb (+1/-0)
storage/ndb/docs/doxygen/Doxyfile.ndbapi (+1/-0)
storage/ndb/docs/doxygen/Doxyfile.odbc (+1/-0)
storage/ndb/docs/doxygen/postdoxy.pl (+1/-0)
storage/ndb/include/kernel/signaldata/AlterIndxImpl.hpp (+1/-0)
storage/ndb/include/kernel/signaldata/BuildIndxImpl.hpp (+1/-0)
storage/ndb/include/kernel/signaldata/CreateIndxImpl.hpp (+1/-0)
storage/ndb/include/kernel/signaldata/CreateNodegroupImpl.hpp (+1/-0)
storage/ndb/include/kernel/signaldata/DictSignal.hpp (+1/-0)
storage/ndb/include/kernel/signaldata/DihScanTab.hpp (+1/-0)
storage/ndb/include/kernel/signaldata/DropIndxImpl.hpp (+1/-0)
storage/ndb/include/kernel/signaldata/DropNodegroup.hpp (+1/-0)
storage/ndb/include/kernel/signaldata/DropNodegroupImpl.hpp (+1/-0)
storage/ndb/include/kernel/signaldata/EnableCom.hpp (+1/-0)
storage/ndb/include/kernel/signaldata/HashMapImpl.hpp (+1/-0)
storage/ndb/include/kernel/signaldata/LqhTransReq.hpp (+1/-0)
storage/ndb/include/kernel/signaldata/StopForCrash.hpp (+1/-0)
storage/ndb/include/kernel/signaldata/TabCommit.hpp (+1/-0)
storage/ndb/src/common/CMakeLists.txt (+1/-0)
storage/ndb/src/common/debugger/signaldata/AlterIndxImpl.cpp (+1/-0)
storage/ndb/src/common/debugger/signaldata/BuildIndx.cpp (+1/-0)
storage/ndb/src/common/debugger/signaldata/BuildIndxImpl.cpp (+1/-0)
storage/ndb/src/common/debugger/signaldata/CreateIndxImpl.cpp (+1/-0)
storage/ndb/src/common/debugger/signaldata/CreateTab.cpp (+1/-0)
storage/ndb/src/common/debugger/signaldata/CreateTable.cpp (+1/-0)
storage/ndb/src/common/debugger/signaldata/DropIndxImpl.cpp (+1/-0)
storage/ndb/src/common/debugger/signaldata/DropTable.cpp (+1/-0)
storage/ndb/src/common/debugger/signaldata/DropTrigImpl.cpp (+1/-0)
storage/ndb/src/common/debugger/signaldata/GetTabInfo.cpp (+1/-0)
storage/ndb/src/kernel/blocks/RestoreProxy.cpp (+1/-0)
storage/ndb/src/kernel/blocks/RestoreProxy.hpp (+1/-0)
storage/ndb/src/kernel/blocks/backup/BackupProxy.cpp (+1/-0)
storage/ndb/src/kernel/blocks/backup/BackupProxy.hpp (+1/-0)
storage/ndb/src/kernel/error/CMakeLists.txt (+1/-0)
storage/ndb/src/kernel/vm/GlobalData.cpp (+1/-0)
storage/ndb/src/kernel/vm/SimulatedBlock_mt.cpp (+1/-0)
storage/ndb/src/kernel/vm/SimulatedBlock_nonmt.cpp (+1/-0)
storage/ndb/src/kernel/vm/TransporterCallbackKernel.hpp (+1/-0)
storage/ndb/src/kernel/vm/TransporterCallback_mt.cpp (+1/-0)
storage/ndb/src/kernel/vm/TransporterCallback_nonmt.cpp (+1/-0)
storage/ndb/test/ndbapi/bank/CMakeLists.txt (+1/-0)
storage/ndb/test/ndbapi/testSingleUserMode.cpp (+1/-0)
storage/ndb/test/run-test/16node-tests.txt (+1/-0)
storage/ndb/test/run-test/atrt-analyze-result.sh (+1/-0)
storage/ndb/test/run-test/atrt-mysql-test-run (+1/-0)
storage/ndb/test/run-test/atrt-testBackup (+1/-0)
storage/ndb/test/run-test/basic.txt (+1/-0)
storage/ndb/test/run-test/make-config.sh (+1/-0)
storage/ndb/test/run-test/make-html-reports.sh (+1/-0)
storage/ndb/test/run-test/make-index.sh (+1/-0)
storage/ndb/test/run-test/ndb-autotest.sh (+1/-0)
storage/ndb/test/run-test/upgrade-boot.sh (+1/-0)
storage/ndb/test/src/getarg.c (+1/-0)
storage/perfschema/ha_perfschema.cc (+8/-2)
storage/perfschema/ha_perfschema.h (+36/-1)
storage/perfschema/pfs.cc (+3/-1)
storage/perfschema/pfs_digest.cc (+2/-1)
storage/perfschema/table_helper.h (+2/-2)
storage/perfschema/table_threads.cc (+16/-2)
strings/ctype-uca.c (+10/-6)
strings/t_ctype.h (+1/-0)
support-files/MacOSX/Description.plist.sh (+1/-0)
support-files/MacOSX/Info.plist.sh (+1/-0)
support-files/MacOSX/MySQLCOM (+1/-0)
support-files/MacOSX/StartupItem.Description.plist (+1/-0)
support-files/MacOSX/StartupItem.Info.plist (+1/-0)
support-files/MacOSX/StartupItem.postinstall (+1/-0)
support-files/MacOSX/StartupParameters.plist.sh (+1/-0)
support-files/MacOSX/mwar-wrapper (+1/-0)
support-files/MacOSX/mwcc-wrapper (+1/-0)
support-files/MacOSX/postflight.sh (+1/-0)
support-files/MacOSX/preflight.sh (+1/-0)
support-files/RHEL4-SElinux/mysql.fc (+1/-0)
support-files/RHEL4-SElinux/mysql.te (+1/-0)
support-files/mysql.m4 (+1/-0)
tests/connect_test.c (+1/-0)
tests/deadlock_test.c (+1/-0)
tests/drop_test.pl (+1/-0)
tests/export.pl (+1/-0)
tests/fork2_test.pl (+1/-0)
tests/fork_big.pl (+1/-0)
tests/fork_big2.pl (+1/-0)
tests/index_corrupt.pl (+1/-0)
tests/insert_and_repair.pl (+1/-0)
tests/insert_test.c (+1/-0)
tests/list_test.c (+1/-0)
tests/lock_test.pl (+1/-0)
tests/mysql_client_fw.c (+12/-1)
tests/pmail.pl (+1/-0)
tests/rename_test.pl (+1/-0)
tests/select_test.c (+1/-0)
tests/showdb_test.c (+1/-0)
tests/ssl_test.c (+1/-0)
tests/table_types.pl (+1/-0)
tests/test_delayed_insert.pl (+1/-0)
tests/truncate.pl (+1/-0)
unittest/examples/simple-t.c (+1/-0)
unittest/gunit/yassl/CMakeLists.txt (+1/-2)
To merge this branch: bzr merge lp://staging/~laurynas-biveinis/percona-server/merge-5.6.17
Reviewer Review Type Date Requested Status
Alexey Kopytov (community) Approve
Review via email: mp+217003@code.staging.launchpad.net

This proposal supersedes a proposal from 2014-04-22.

Description of the change

Merge MySQL 5.6.17 and restore compatibility with older system OpenSSL versions.

3rd MP:
- Removed lock_rec_other_trx_holds_expl quadratic behaviour, changed lock_rec_has_expl and lock_rec_other_has_expl_req to accept trx ids instead of trxs, adjusted callers to match, and changed lock_rec_queue_validate and lock_rec_convert_impl_to_explt to use transaction descriptors.

http://jenkins.percona.com/view/PS%205.6/job/percona-server-5.6-param/592/

2nd MP:

- Rewrote lock_rec_other_trx_holds_expl for transaction descriptors.
- Replace OpenSSL version-based IV hack with making ECB mode always ignore IV.

http://jenkins.percona.com/job/percona-server-5.6-param/588/
A separate -DWITH_SSL=bundled run is no longer required.

1st MP:

http://jenkins.percona.com/job/percona-server-5.6-param/580/
-DWITH_SSL=bundled run: http://jenkins.percona.com/job/percona-server-5.6-param/581/

If the SSL changes are OK, I will create a blueprint to add a new doc page re. system OpenSSL compatibility.

Restore -DWITH_SSL=system support for OpenSSL versions <= 0.9.8k.

MySQL 5.6.17 introduced support for block encryption modes and
initialization vectors for AES_ENCRYPT/AES_DECRYPT functions. This
change broke backwards compatibility for older OpenSSL system
versions, as the ciphers there disagree with recent OpenSSL versions
whether they need initialization vectors or not. As AES functions
directly check with OpenSSL for IV requirement and provide a
corresponding function signature, these differences result in SQL
incompatibilities.

Fixed by
- Not passing IV to OpenSSL if OpenSSL <= 0.9.8k, as 5.6.16- did.
- Exporting OPENSSL_VERSION_NUMBER define as Openssl_version server
  status variable.
- New MTR include file skip_if_old_openssl.inc, included in func_aes,
  func_aes_misc, func_aes_cfb1, func_aes_cfb8, func_aes_cfb128, and
  func_aes_ofb - the testcases that expect IVs in AES SQL functions.

  Merge MySQL 5.6.17, implementing
  https://blueprints.launchpad.net/percona-server/+spec/merge-5.6.17 and
  taking upstream fixes for
  https://bugs.launchpad.net/percona-server/5.6/+bug/1208921
  https://bugs.launchpad.net/percona-server/5.6/+bug/1282104
  https://bugs.launchpad.net/percona-server/5.6/+bug/1282132

  Non-trivial merge bits:
  - in lock_rec_other_trx_holds_expl, replaced trx_rw_is_active call
    with trx_rw_get_active_trx_by_id and moved trx_sys->mutex locking up
    from the if statement to satisfy trx_rw_get_activity_trx_by_id
    locking invariant.

  - Moved Percona-specific error messages to the end of errmsg-utf8.txt,
    re-recorded max_statement_time_func testcase.

  At the same time fixed bug 1299688 /
  http://bugs.mysql.com/bug.php?id=72163 (lp:mysql-server/5.6 rev 5774
  broke rpl_plugin_load) by re-recording the testcase.

  Update man pages from mysql-5.6.17.tar.gz.

To post a comment you must log in.
Revision history for this message
Alexey Kopytov (akopytov) wrote : Posted in a previous version of this proposal

Laurynas,

  Changes to lock_rec_other_trx_holds_expl() look okay-ish, though they
  could benefit from the trx descriptors optimization by replacing
  pointers to transactions with their IDs. I don’t insist, since it’s a
  debug-only code.

  But the OpenSSL changes are wrong. It looks like the only issue with
  OpenSSL < 0.9.8l that breaks AES_ENCRYPT/AES_DECRYPT compatibility is
  that those old versions incorrectly report the required IV length with
  AES in ECB mode. IV is not required by the ECB cipher, so
  EVP_CIPHER_iv_length() should return 0, whereas old versions
  return 16.

  Which confuses my_aes_needs_iv(), in particular, and makes the server
  believe AES_*() functions require the 3rd argument with
  block_encryption_mode=aes-128-ecb (i.e. an IV).

  Which is also an upstream issue, i.e. a workaround for old OpenSSL
  libs is required. And the workaround is simple: whenever
  EVP_CIPHER_iv_length() is used to get the required IV length, also
  check EVP_CIPHER_mode(). If it’s EVP_CIPH_ECB_MODE, disregard the
  value returned by EVP_CIPHER_iv_length() and assume the
  required IV length to be 0.

  The approach implemented in this MP is rather dangerous: we make the
  server pretend that it accepts IV when required, when in fact it is
  ignored for old OpenSSL versions. Security folks may get upset :)

  Speaking of the new Openssl_version variable, its only purpose in this
  MP was to patch up the test suite to hide the fact that IV is ignored
  for old OpenSSL versions. Which means there’s no need for it
  anymore. Besides, it is misleading: it shows the OpenSSL version that
  the server was built against. Which, in case of dynamic linking may
  differ from the OpenSSL library actually being used. Which can make
  quite a difference in the light of recent events.

review: Needs Fixing
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote : Posted in a previous version of this proposal
Download full text (3.6 KiB)

> Changes to lock_rec_other_trx_holds_expl() look okay-ish, though they
> could benefit from the trx descriptors optimization by replacing
> pointers to transactions with their IDs. I don’t insist, since it’s a
> debug-only code.

Debug-only code was the reason why I did not do this the first time
around, but why not. Does the following look reasonable?

 lock_mutex_enter();
 mutex_enter(&trx_sys->mutex);

 trx_id_t* impl_trx_desc = trx_find_descriptor(trx_sys->descriptors,
            trx_sys->descr_n_used,
            trx_id);
 if (impl_trx_desc) {
  trx_id_t impl_trx_id = *impl_trx_desc;
  ulint heap_no = page_rec_get_heap_no(rec);
  ulint rw_trx_count = trx_sys->descr_n_used;
  trx_id_t* rw_trx_snapshot = static_cast<trx_id_t *>
   (ut_malloc(sizeof(trx_id_t) * rw_trx_count));
  memcpy(rw_trx_snapshot, trx_sys->descriptors,
         sizeof(trx_id_t) * rw_trx_count);

  mutex_exit(&trx_sys->mutex);

  for (ulint i = 0; i < rw_trx_count; i++) {

   mutex_enter(&trx_sys->mutex);
   trx_t* t = trx_rw_get_active_trx_by_id(
    rw_trx_snapshot[i], NULL);
   mutex_exit(&trx_sys->mutex);

   lock_t* expl_lock = lock_rec_has_expl(precise_mode,
             block, heap_no,
             t);
   if (expl_lock && expl_lock->trx->id != impl_trx_id) {
    /* An explicit lock is held by trx other than
    the trx holding the implicit lock. */
    holds = expl_lock->trx;
    break;
   }
  }

  ut_free(rw_trx_snapshot);

 } else {
  mutex_exit(&trx_sys->mutex);
 }

 lock_mutex_exit();

> But the OpenSSL changes are wrong. It looks like the only issue with
> OpenSSL < 0.9.8l that breaks AES_ENCRYPT/AES_DECRYPT compatibility is
> that those old versions incorrectly report the required IV length with
> AES in ECB mode. IV is not required by the ECB cipher, so
> EVP_CIPHER_iv_length() should return 0, whereas old versions
> return 16.

Yes.

> Which confuses my_aes_needs_iv(), in particular, and makes the server
> believe AES_*() functions require the 3rd argument with
> block_encryption_mode=aes-128-ecb (i.e. an IV).

Yes.

> Which is also an upstream issue, i.e. a workaround for old OpenSSL
> libs is required. And the workaround is simple: whenever
> EVP_CIPHER_iv_length() is used to get the required IV length, also
> check EVP_CIPHER_mode(). If it’s EVP_CIPH_ECB_MODE, disregard the
> value returned by EVP_CIPHER_iv_length() and assume the
> required IV length to be 0.

OK, that's a better workaround than mine.

> The approach implemented in this MP is rather dangerous: we make the
> server pretend that it accepts IV when required, when in fact it is
> ignored for old OpenSSL versions. Security folks may get upset :)

My idea was to make MySQL call OpenSSL in exactly same way (Foo vs
FooEx aside) it was in 5.6.16-, including 5.5 GA etc. So that
implementation would be as secure or insecure as, say, current 5.5.

> Speaking of the new Openssl_version variable, its only purpose in this
> MP was to patch up the test suite to hide the fact that IV is ignored
> for old OpenSSL versions. Which means there’s no need for it
> anymore.

Right, removing.

> Besides, it is misleading: it shows the OpenSSL version t...

Read more...

Revision history for this message
Alexey Kopytov (akopytov) wrote : Posted in a previous version of this proposal

Hi Laurynas,

On Tue, Apr 22 2014 17:42:58 +0400, Laurynas Biveinis wrote:

>> Changes to lock_rec_other_trx_holds_expl() look okay-ish, though they
>> could benefit from the trx descriptors optimization by replacing
>> pointers to transactions with their IDs. I don’t insist, since it’s a
>> debug-only code.
>
> Debug-only code was the reason why I did not do this the first time
> around, but why not. Does the following look reasonable?
>

Hm, not quite. It still looks up pointers to transactions, and for that
it has iterate rw_trx_list by calling trx_rw_get_active_trx_by_id(). And
it also has to do so for each trx from rw_trx_snapshot, which makes it
even less efficient than the upstream implementation. It looks like
lock_rec_has_expl() does not really need a pointer to a transaction
either. It only uses it to match against lock->trx. So by changing it to
accept trx ID as the last argument and matching against lock->trx->id
instead, we can avoid the trx_rw_get_active_trx_by_id() call in
lock_rec_other_has_expl(), and potentially optimize some non-debug code
as well!

But again, I don’t insist. Just pointing out that the current implementation
is even less efficient than the upstream one.

>> But the OpenSSL changes are wrong. It looks like the only issue with
>> OpenSSL < 0.9.8l that breaks AES_ENCRYPT/AES_DECRYPT compatibility is
>> that those old versions incorrectly report the required IV length with
>> AES in ECB mode. IV is not required by the ECB cipher, so
>> EVP_CIPHER_iv_length() should return 0, whereas old versions
>> return 16.
>
> Yes.
>
>> Which confuses my_aes_needs_iv(), in particular, and makes the server
>> believe AES_*() functions require the 3rd argument with
>> block_encryption_mode=aes-128-ecb (i.e. an IV).
>
> Yes.
>
>> Which is also an upstream issue, i.e. a workaround for old OpenSSL
>> libs is required. And the workaround is simple: whenever
>> EVP_CIPHER_iv_length() is used to get the required IV length, also
>> check EVP_CIPHER_mode(). If it’s EVP_CIPH_ECB_MODE, disregard the
>> value returned by EVP_CIPHER_iv_length() and assume the
>> required IV length to be 0.
>
> OK, that's a better workaround than mine.
>

Will you report it upstream? AFAIK it is not documented anywhere that
OpenSSL < 0.9.8l is not supported, so it’s a genuine upstream issue.

>> The approach implemented in this MP is rather dangerous: we make the
>> server pretend that it accepts IV when required, when in fact it is
>> ignored for old OpenSSL versions. Security folks may get upset :)
>
> My idea was to make MySQL call OpenSSL in exactly same way (Foo vs
> FooEx aside) it was in 5.6.16-, including 5.5 GA etc. So that
> implementation would be as secure or insecure as, say, current 5.5.
>

I meant that by accepting IV for ciphers that require it, but ignoring
it the server would:

1. Generate cryptographically weak results with non-default
block_encryption_mode values, while users would assume them to be
cryptographically strong.

2. Generate results that would not be decryptable on servers with recent
OpenSSL versions that would actually take IV into account.

Revision history for this message
Alexey Kopytov (akopytov) wrote : Posted in a previous version of this proposal

Not sure how you would like to address comments related to lock_rec_other_trx_holds_expl(). I see 3 options on the order of descending efficiency: 1) implement my suggestions 2) revert to the previous implementation 3) leave as is. I'm fine with all of them, so setting to Approved.

review: Approve
Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote : Posted in a previous version of this proposal

*** TODO Reply to the 2nd review round of MySQL 5.6.17 merge :@internet:
> Hm, not quite. It still looks up pointers to transactions, and for that
> it has iterate rw_trx_list by calling trx_rw_get_active_trx_by_id(). And
> it also has to do so for each trx from rw_trx_snapshot, which makes it
> even less efficient than the upstream implementation.

Oh, I completely missed that trx_rw_get_active_trx_by_id is O(n), yes,
that's not very reasonable implementation.

> It looks like
> lock_rec_has_expl() does not really need a pointer to a transaction
> either. It only uses it to match against lock->trx. So by changing it to
> accept trx ID as the last argument and matching against lock->trx->id
> instead, we can avoid the trx_rw_get_active_trx_by_id() call in
> lock_rec_other_has_expl(), and potentially optimize some non-debug code
> as well!

Done. Other changed code is lock_rec_queue_validate and
lock_rec_convert_impl_to_expl, the latter being non-debug code.

> But again, I don’t insist. Just pointing out that the current implementation
> is even less efficient than the upstream one.
>
> [...]
> Will you report it upstream? AFAIK it is not documented anywhere that
> OpenSSL < 0.9.8l is not supported, so it’s a genuine upstream issue.

I would, but we already had older OpenSSL version bug reported, which
was closed as "Unsupported":
http://bugs.mysql.com/bug.php?id=70489. That leaves us with an option
to report a bug that -DWITH_SSL=system should reject old versions at
configure time, but that is likely to be duplicate of
Bug 14167227 - CMAKE SHOULD REJECT -DWITH_SSL=SYSTEM IF OPENSSL IS
OLDER THAN 1.0.0
referenced in that bug report.

>
> >> The approach implemented in this MP is rather dangerous: we make the
> >> server pretend that it accepts IV when required, when in fact it is
> >> ignored for old OpenSSL versions. Security folks may get upset :)
> >
> > My idea was to make MySQL call OpenSSL in exactly same way (Foo vs
> > FooEx aside) it was in 5.6.16-, including 5.5 GA etc. So that
> > implementation would be as secure or insecure as, say, current 5.5.
> >
>
> I meant that by accepting IV for ciphers that require it, but ignoring
> it the server would:
>
> 1. Generate cryptographically weak results with non-default
> block_encryption_mode values, while users would assume them to be
> cryptographically strong.
>
> 2. Generate results that would not be decryptable on servers with recent
> OpenSSL versions that would actually take IV into account.

Right, I see.

Revision history for this message
Alexey Kopytov (akopytov) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.

Subscribers

People subscribed via source and target branches