From 1f18e0c70e3602710c6cb3bef05e7a3ab80573d1 Mon Sep 17 00:00:00 2001 From: Elena Stepanova Date: Mon, 2 Nov 2020 01:29:52 +0200 Subject: [PATCH 01/15] List of unstable tests for 10.4.16 release --- mysql-test/unstable-tests | 1025 ++++++++++++++++--------------------- 1 file changed, 449 insertions(+), 576 deletions(-) diff --git a/mysql-test/unstable-tests b/mysql-test/unstable-tests index 1ddbc8d5278..30171bfe084 100644 --- a/mysql-test/unstable-tests +++ b/mysql-test/unstable-tests @@ -23,228 +23,182 @@ # ############################################################################## # -# Based on bb-10.4-release 9a156e1a23046ba3e37bdb1e4e1ad887d3f5829b -# Tue Aug 4 11:49:52 2020 +0300 : MDEV-23345 Assertion not_redundant ... +# Based on bb-10.4-release 80c951ce2875aac521b82323b5b6ebf638593445 +# Sat Oct 31 21:06:49 2020 +0100 : Merge branch '10.3' into 10.4 -main.alter_table : Modified in 10.4.14 -main.alter_table_trans : MDEV-12084 - timeout -main.alter_user : Modified in 10.4.13 -main.analyze_stmt_slow_query_log : MDEV-12237 - Wrong result -main.auth_named_pipe : MDEV-14724 - System error 2 -main.backup_interaction : Modified in 10.4.13 -main.backup_stages : MDEV-23401 - Bad file descriptor; modified in 10.4.14 -main.binary_to_hex : MDEV-20211 - Wrong result -main.column_compression : Modified in 10.4.13 -main.comment_table : Modified in 10.4.14 -main.connect : MDEV-17282 - Wrong result -main.connect-abstract : MDEV-20162 - Could not execute 'check-testcase' -main.connect2 : MDEV-13885 - Server crash -main.count_distinct2 : MDEV-11768 - timeout -main.create : Modified in 10.4.14 -main.create_delayed : MDEV-10605 - failed with timeout -main.create_drop_event : MDEV-16271 - Wrong result -main.create_drop_function : Modified in 10.4.14 -main.cte_nonrecursive : Modified in 10.4.13 -main.cte_recursive : Modified in 10.4.14 -main.ctype_binary : Modified in 10.4.14 -main.ctype_cp932_binlog_stm : MDEV-20534 - Wrong result -main.ctype_ucs : MDEV-17681 - Data too long for column -main.ctype_upgrade : MDEV-16945 - Error upon mysql_upgrade -main.ctype_utf16 : MDEV-10675: timeout or extra warnings; modified in 10.4.14 -main.ctype_utf16_uca : Modified in 10.4.14 -main.ctype_utf16le : MDEV-10675: timeout or extra warnings; modified in 10.4.14 -main.ctype_utf32 : Modified in 10.4.14 -main.ctype_utf32_uca : Modified in 10.4.14 -main.ctype_utf8 : Modified in 10.4.14 -main.ctype_utf8mb4 : Modified in 10.4.14 -main.ctype_utf8mb4_heap : Include file modified in 10.4.14 -main.ctype_utf8mb4_innodb : MDEV-17744 - Timeout; MDEV-18567 - ASAN use-after-poison; include file modified in 10.4.14 -main.ctype_utf8mb4_myisam : Include file modified in 10.4.14 -main.custom_aggregate_functions : Modified in 10.4.14 -main.debug_sync : MDEV-10607 - internal error -main.default_storage_engine : Modified in 10.4.13 -main.delayed : MDEV-20961 - Assertion failure -main.derived_cond_pushdown : MDEV-20532 - Floating point differences; modified in 10.4.13 -main.derived_opt : MDEV-11768 - timeout -main.dirty_close : MDEV-19368 - mysqltest failed but provided no output -main.distinct : MDEV-14194 - Crash -main.drop_bad_db_type : MDEV-15676 - Wrong result -main.dyncol : MDEV-19455 - Extra warning -main.errors : Modified in 10.4.13 -main.events_2 : MDEV-13277 - Crash -main.events_bugs : MDEV-12892 - Crash -main.events_restart : MDEV-12236 - Server shutdown problem; modified in 10.4.13 -main.events_slowlog : MDEV-12821 - Wrong result -main.failed_auth_3909 : Modified in 10.4.13 -main.failed_auth_unixsocket : Modified in 10.4.13 -main.flush : MDEV-19368 - mysqltest failed but provided no output -main.flush_ssl : MDEV-21276 - Aria recovery failure -main.fulltext : Modified in 10.4.13 -main.func_gconcat : MDEV-21379 - Valgrind warnings; modified in 10.4.14 -main.func_json : Modified in 10.4.14 -main.func_math : MDEV-20966 - Wrong error code; modified in 10.4.14 -main.func_str : Modified in 10.4.13 -main.gis : MDEV-13411 - wrong result on P8; modified in 10.4.13 -main.gis-rtree : Modified in 10.4.13 -main.gis_notembedded : MDEV-21264 - Wrong result with non-default charset -main.grant : Modified in 10.4.14 -main.grant2 : Modified in 10.4.13 -main.grant5 : Modified in 10.4.14 -main.grant_repair : Added in 10.4.13 -main.group_by : Modified in 10.4.13 -main.host_cache_size_functionality : MDEV-10606 - sporadic failure on shutdown -main.index_intersect_innodb : MDEV-10643 - failed with timeout -main.index_merge_innodb : MDEV-7142 - Plan mismatch; modified in 10.4.14 -main.index_merge_myisam : Modified in 10.4.13 -main.information_schema : Modified in 10.4.14 -main.innodb_icp : MDEV-20168 - Wrong execution plans; include file modified in 10.4.13 -main.innodb_mrr_cpk : MDEV-23370 - Server crash -main.innodb_mysql_lock : Modified in 10.4.13 -main.invisible_field_grant_completely : MDEV-22254 - Syscall param write points to uninitialised bytes -main.ipv4_and_ipv6 : MDEV-20964 - Wrong result -main.ipv6 : MDEV-20964 - Wrong result -main.join_cache : MDEV-17743 - Bad address from storage engine MyISAM; modified in 10.4.13 -main.join_outer : Modified in 10.4.14 -main.key : Modified in 10.4.13 -main.kill-2 : MDEV-13257 - Wrong result -main.kill_processlist-6619 : MDEV-10793 - Wrong result -main.loaddata : MDEV-19368 - mysqltest failed but provided no output -main.locale : MDEV-20521 - Missing warning; configuration added in 10.4.13 -main.lock : Modified in 10.4.14 -main.lock_user : Modified in 10.4.13 -main.log_slow : MDEV-13263 - Wrong result -main.log_tables : Modified in 10.4.14 -main.log_tables-big : MDEV-13408 - wrong result -main.log_tables_upgrade : MDEV-20962 - Wrong result -main.long_unique_bugs : Modified in 10.4.14 -main.lowercase_fs_off : Modified in 10.4.14 -main.mdev-21101 : Added in 10.4.14 -main.mdev-504 : MDEV-15171 - warning -main.mdev375 : MDEV-10607 - sporadic "can't connect"; modified in 10.4.13 -main.mdev_22370 : Added in 10.4.14 -main.merge : MDEV-10607 - sporadic "can't connect" -main.multi_update : Modified in 10.4.13 -main.multi_update_debug : Modified in 10.4.13 -main.myisam_icp : Include file modified in 10.4.13 -main.mysql : MDEV-20156 - Wrong result -main.mysql_client_test : MDEV-19369 - error: 5888, status: 23, errno: 2; MDEV-19511 - Big endian issue; modified in 10.4.13 -main.mysql_client_test_comp : MDEV-16641 - Error in exec -main.mysql_client_test_nonblock : CONC-208 - Error on Power; MDEV-15096 - exec failed -main.mysql_cp932 : MDEV-21275 - Wrong result -main.mysql_install_db_win : Modified in 10.4.14 -main.mysql_upgrade : MDEV-20161 - Wrong result; MDEV-20166 - FATAL ERROR: Upgrade failed; modified in 10.4.14 -main.mysql_upgrade-6984 : MDEV-22514 - Wrong result; modified in 10.4.13 -main.mysql_upgrade_no_innodb : MDEV-20537 - Wrong result -main.mysql_upgrade_noengine : MDEV-14355 - Wrong result -main.mysql_upgrade_view : MDEV-20161 - Wrong result; MDEV-23392 - Wrong result -main.mysqladmin : MDEV-20535 - Wrong result -main.mysqlcheck : MDEV-20164 - Wrong result -main.mysqld--defaults-file : Modified in 10.4.13 -main.mysqld_option_err : MDEV-21236 - Wrong error; MDEV-21571 - Crash on bootstrap -main.mysqldump : MDEV-14800 - Stack smashing detected; modified in 10.4.13 -main.mysqldump-max : MDEV-21272 - Wrong result -main.mysqlhotcopy_myisam : MDEV-10995 - Hang on debug -main.mysqlshow : MDEV-20965 - Wrong result -main.mysqlslap : MDEV-11801 - timeout -main.mysqltest : MDEV-13887 - Wrong result -main.mysqltest_tracking_info : Modified in 10.4.14 -main.nested_profiling : Added in 10.4.14 -main.old-mode : MDEV-19373 - Wrong result -main.openssl_6975 : MDEV-17184 - Failures with OpenSSL 1.1.1 -main.opt_trace : Modified in 10.4.14 -main.order_by : Modified in 10.4.14 -main.order_by_optimizer_innodb : MDEV-10683 - Wrong result -main.parser : Modified in 10.4.14 -main.partition : Modified in 10.4.14 -main.partition_alter : Modified in 10.4.14 -main.partition_debug_sync : MDEV-15669 - Deadlock found when trying to get lock -main.partition_explicit_prune : Modified in 10.4.14 -main.partition_innodb : MDEV-20169 - Wrong result; modified in 10.4.13 -main.partition_innodb_plugin : MDEV-12901 - Valgrind warnings -main.partition_innodb_semi_consistent : MDEV-19411 - Failed to start mysqld.1 -main.partition_mrr_aria : Include file modified in 10.4.13 -main.partition_mrr_innodb : Include file modified in 10.4.13 -main.partition_mrr_myisam : Modified in 10.4.13 -main.partition_range : Modified in 10.4.13 -main.plugin : Modified in 10.4.14 -main.plugin_auth : MDEV-20957 - Upgrade file was not properly created -main.plugin_auth_qa_2 : MDEV-20165 - Wrong result -main.pool_of_threads : MDEV-18135 - SSL error: key too small -main.processlist_notembedded : Modified in 10.4.14 -main.ps : MDEV-11017 - sporadic wrong Prepared_stmt_count; modified in 10.4.14 -main.ps_grant : Modified in 10.4.13 -main.query_cache : MDEV-16180 - Wrong result; modified in 10.4.14 -main.query_cache_debug : MDEV-15281 - Query cache is disabled -main.range : Modified in 10.4.13 -main.range_innodb : MDEV-23371 - Server crash; modified in 10.4.13 -main.range_vs_index_merge : Modified in 10.4.13 -main.range_vs_index_merge_innodb : MDEV-15283 - Server has gone away -main.repair : Modified in 10.4.14 -main.rowid_filter : Modified in 10.4.13 -main.rowid_filter_innodb : MDEV-20538 - Wrong result; modified in 10.4.13 -main.rowid_filter_myisam : Added in 10.4.14 -main.rpl_mysql_upgrade_slave_repo_check : Added in 10.4.13 -main.rowid_filter_innodb_debug : MDEV-22761 - Added in 10.4.15 -main.select : MDEV-20532 - Floating point differences -main.select_jcl6 : MDEV-20532 - Floating point differences -main.select_pkeycache : MDEV-20532 - Floating point differences -main.selectivity : Modified in 10.4.14 -main.set_statement : MDEV-13183 - Wrong result -main.set_statement_notembedded : MDEV-19414 - Wrong result -main.shm : MDEV-12727 - Mismatch, ERROR 2013 -main.show_explain : MDEV-10674 - Wrong result code -main.signal : Modified in 10.4.14 -main.sp : MDEV-7866 - Mismatch; modified in 10.4.14 -main.sp-big : Modified in 10.4.14 -main.sp-error : Modified in 10.4.14 -main.sp-security : MDEV-10607 - sporadic "can't connect" -main.sp2 : Added in 10.4.14 -main.sp_notembedded : MDEV-10607 - internal error -main.ssl : MDEV-17184 - Failures with OpenSSL 1.1.1 -main.ssl_7937 : MDEV-20958 - Wrong result -main.ssl_ca : MDEV-10895 - SSL connection error on Power -main.ssl_cipher : MDEV-17184 - Failures with OpenSSL 1.1.1 -main.ssl_timeout : MDEV-11244 - Crash -main.stat_tables_innodb : Modified in 10.4.14 -main.stat_tables_par_innodb : MDEV-14155 - Wrong rounding -main.stat_tables_partition : Modified in 10.4.14 -main.status : MDEV-13255 - Wrong result -main.subselect : MDEV-20551 - Valgrind failure -main.subselect4 : Modified in 10.4.14 -main.subselect_exists2in : Modified in 10.4.14 -main.subselect_innodb : MDEV-10614 - Wrong result -main.subselect_sj2_mat : Modified in 10.4.13 -main.table_value_constr : Modified in 10.4.14 -main.tc_heuristic_recover : MDEV-14189 - Wrong result -main.temp_table : Modified in 10.4.14 -main.type_bit : Modified in 10.4.14 -main.type_blob : MDEV-15195 - Wrong result; modified in 10.4.13 -main.type_date : Modified in 10.4.14 -main.type_datetime : Modified in 10.4.14 -main.type_datetime_hires : MDEV-10687 - Timeout; modified in 10.4.14 -main.type_enum : Modified in 10.4.14 -main.type_float : MDEV-20532 - Floating point differences; modified in 10.4.14 -main.type_hex_hybrid : Modified in 10.4.14 -main.type_int : Modified in 10.4.14 -main.type_newdecimal : MDEV-20532 - Floating point differences -main.type_ranges : MDEV-20532 - Floating point differences -main.type_set : Modified in 10.4.14 -main.type_temporal_innodb : Modified in 10.4.14 -main.type_time : Modified in 10.4.14 -main.type_time_hires : Modified in 10.4.14 -main.type_timestamp : Modified in 10.4.14 -main.type_timestamp_hires : Modified in 10.4.14 -main.type_year : Modified in 10.4.14 -main.udf : Modified in 10.4.14 -main.union : Modified in 10.4.14 -main.upgrade_MDEV-19650 : Modified in 10.4.14 -main.upgrade_MDEV-23102-1 : Added in 10.4.14 -main.upgrade_MDEV-23102-2 : Added in 10.4.14 -main.userstat : MDEV-12904 - SSL errors -main.wait_timeout : MDEV-19023 - Lost connection to MySQL server during query -main.win : Modified in 10.4.14 -main.win_ntile : Modified in 10.4.14 -main.xa : MDEV-11769 - lock wait timeout; modified in 10.4.14 +main.alter_table : Modified in 10.4.16 +main.alter_table_trans : MDEV-12084 - timeout +main.analyze_stmt_slow_query_log : MDEV-12237 - Wrong result +main.aria_icp_debug : Added in 10.4.16 +main.auth_named_pipe : MDEV-14724 - System error 2 +main.backup_locks : Modified in 10.4.16 +main.backup_stages : MDEV-23401 - Bad file descriptor +main.binary_to_hex : MDEV-20211 - Wrong result +main.blackhole : Modified in 10.4.16 +main.bootstrap_innodb : Added in 10.4.16 +main.connect : MDEV-17282 - Wrong result +main.connect-abstract : MDEV-20162 - Could not execute 'check-testcase' +main.connect2 : MDEV-13885 - Server crash +main.count_distinct2 : MDEV-11768 - timeout +main.create_delayed : MDEV-10605 - failed with timeout +main.create_drop_event : MDEV-16271 - Wrong result +main.ctype_binary : MDEV-24080 - Data too long for column; include file modified in 10.4.16 +main.ctype_cp1251 : Include file modified in 10.4.16 +main.ctype_cp932_binlog_stm : MDEV-20534 - Wrong result +main.ctype_filename : Modified in 10.4.16 +main.ctype_latin1 : Include file modified in 10.4.16 +main.ctype_ucs : MDEV-17681 - Data too long for column; include file modified in 10.4.16 +main.ctype_upgrade : MDEV-16945 - Error upon mysql_upgrade +main.ctype_utf16 : MDEV-10675: timeout or extra warnings +main.ctype_utf16le : MDEV-10675: timeout or extra warnings +main.ctype_utf8 : Modified in 10.4.16 +main.ctype_utf8mb4_innodb : MDEV-17744 - Timeout; MDEV-18567 - ASAN use-after-poison +main.debug_sync : MDEV-10607 - internal error +main.delayed : MDEV-20961 - Assertion failure +main.derived_cond_pushdown : MDEV-20532 - Floating point differences +main.derived_opt : MDEV-11768 - timeout +main.dirty_close : MDEV-19368 - mysqltest failed but provided no output +main.distinct : MDEV-14194 - Crash +main.drop_bad_db_type : MDEV-15676 - Wrong result +main.dyncol : MDEV-19455 - Extra warning +main.empty_server_name-8224 : Modified in 10.4.16 +main.errors : Modified in 10.4.16 +main.events_2 : MDEV-13277 - Crash +main.events_bugs : MDEV-12892 - Crash +main.events_restart : MDEV-12236 - Server shutdown problem +main.events_slowlog : MDEV-12821 - Wrong result +main.fast_prefix_index_fetch_innodb : Modified in 10.4.16 +main.flush : MDEV-19368 - mysqltest failed but provided no output +main.flush_ssl : MDEV-21276 - Aria recovery failure +main.func_gconcat : MDEV-21379 - Valgrind warnings +main.func_json : Modified in 10.4.16 +main.func_math : MDEV-20966 - Wrong error code; modified in 10.4.16 +main.func_test : Modified in 10.4.16 +main.gis : MDEV-13411 - wrong result on P8 +main.gis_notembedded : MDEV-21264 - Wrong result with non-default charset +main.grant : Modified in 10.4.16 +main.grant5 : Modified in 10.4.16 +main.host_cache_size_functionality : MDEV-10606 - sporadic failure on shutdown +main.implicit_commit : Modified in 10.4.16 +main.index_intersect_innodb : MDEV-10643 - failed with timeout +main.index_merge_innodb : MDEV-7142 - Plan mismatch +main.information_schema : Modified in 10.4.16 +main.innodb_ext_key : Modified in 10.4.16 +main.innodb_icp : MDEV-20168 - Wrong execution plans +main.innodb_icp_debug : Added in 10.4.16 +main.invisible_field : Modified in 10.4.16 +main.invisible_field_grant_completely : MDEV-22254 - Syscall param write points to uninitialised bytes +main.ipv4_and_ipv6 : MDEV-20964 - Wrong result +main.ipv6 : MDEV-20964 - Wrong result +main.join_cache : MDEV-17743 - Bad address from storage engine MyISAM +main.kill : Modified in 10.4.16 +main.kill-2 : MDEV-13257 - Wrong result +main.kill_processlist-6619 : MDEV-10793 - Wrong result +main.limit_rows_examined : Modified in 10.4.16 +main.loaddata : MDEV-19368 - mysqltest failed but provided no output +main.locale : MDEV-20521 - Missing warning +main.lock_view : Added in 10.4.16 +main.log_slow : MDEV-13263 - Wrong result +main.log_tables : Modified in 10.4.16 +main.log_tables-big : MDEV-13408 - wrong result +main.log_tables_upgrade : MDEV-20962 - Wrong result +main.mdev-504 : MDEV-15171 - warning +main.mdev375 : MDEV-10607 - sporadic "can't connect" +main.merge : MDEV-10607 - sporadic "can't connect" +main.multi_update_big : Modified in 10.4.16 +main.myisam_icp_debug : Added in 10.4.16 +main.myisam_repair : Added in 10.4.16 +main.mysql : MDEV-20156 - Wrong result +main.mysql_client_test : MDEV-19369 - error: 5888, status: 23, errno: 2; MDEV-19511 - Big endian issue +main.mysql_client_test_comp : MDEV-16641 - Error in exec +main.mysql_client_test_nonblock : CONC-208 - Error on Power; MDEV-15096 - exec failed +main.mysql_cp932 : MDEV-21275 - Wrong result +main.mysql_upgrade : MDEV-20161 - Wrong result; MDEV-20166 - FATAL ERROR: Upgrade failed; modified in 10.4.16 +main.mysql_upgrade-6984 : MDEV-22514 - Wrong result +main.mysql_upgrade_no_innodb : MDEV-20537 - Wrong result +main.mysql_upgrade_noengine : MDEV-14355 - Wrong result +main.mysql_upgrade_view : MDEV-20161 - Wrong result; MDEV-23392 - Wrong result +main.mysqladmin : MDEV-20535 - Wrong result +main.mysqlbinlog_row_minimal : Modified in 10.4.16 +main.mysqlcheck : MDEV-20164 - Wrong result +main.mysqld--help : Modified in 10.4.16 +main.mysqld_option_err : MDEV-21236 - Wrong error; MDEV-21571 - Crash on bootstrap +main.mysqldump : MDEV-14800 - Stack smashing detected; modified in 10.4.16 +main.mysqldump-max : MDEV-21272 - Wrong result +main.mysqlhotcopy_myisam : MDEV-10995 - Hang on debug +main.mysqlshow : MDEV-20965 - Wrong result +main.mysqlslap : MDEV-11801 - timeout +main.mysqltest : MDEV-13887 - Wrong result +main.named_pipe : Modified in 10.4.16 +main.old-mode : MDEV-19373 - Wrong result +main.openssl_6975 : MDEV-17184 - Failures with OpenSSL 1.1.1 +main.order_by : Modified in 10.4.16 +main.order_by_optimizer_innodb : MDEV-10683 - Wrong result +main.parser : Modified in 10.4.16 +main.partition : Modified in 10.4.16 +main.partition_debug_sync : MDEV-15669 - Deadlock found when trying to get lock +main.partition_innodb : MDEV-20169 - Wrong result; MDEV-23427 - Server crash +main.partition_innodb_plugin : MDEV-12901 - Valgrind warnings +main.partition_innodb_semi_consistent : MDEV-19411 - Failed to start mysqld.1 +main.plugin_auth : MDEV-20957 - Upgrade file was not properly created +main.plugin_auth_qa_2 : MDEV-20165 - Wrong result +main.plugin_innodb : Modified in 10.4.16 +main.pool_of_threads : MDEV-18135 - SSL error: key too small; modified in 10.4.16 +main.precedence : Added in 10.4.16 +main.precedence_bugs : Added in 10.4.16 +main.processlist_notembedded : Modified in 10.4.16 +main.ps : MDEV-11017 - sporadic wrong Prepared_stmt_count +main.ps_error : MDEV-24079 - Memory not freed +main.query_cache : MDEV-16180 - Wrong result +main.query_cache_debug : MDEV-15281 - Query cache is disabled +main.range : Modified in 10.4.16 +main.range_innodb : MDEV-23371 - Server crash +main.range_vs_index_merge_innodb : MDEV-15283 - Server has gone away +main.rowid_filter : Modified in 10.4.16 +main.rowid_filter_innodb : MDEV-20538 - Wrong result +main.rowid_filter_innodb_debug : Added in 10.4.16 +main.rowid_filter_myisam_debug : Added in 10.4.16 +main.select : MDEV-20532 - Floating point differences +main.select_jcl6 : MDEV-20532 - Floating point differences +main.select_pkeycache : MDEV-20532 - Floating point differences +main.set_statement : MDEV-13183 - Wrong result +main.set_statement_notembedded : MDEV-19414 - Wrong result; modified in 10.4.16 +main.shm : MDEV-12727 - Mismatch, ERROR 2013 +main.show_explain : MDEV-10674 - Wrong result code +main.sp : MDEV-7866 - Mismatch; modified in 10.4.16 +main.sp-destruct : Modified in 10.4.16 +main.sp-security : MDEV-10607 - sporadic "can't connect" +main.sp_notembedded : MDEV-10607 - internal error +main.ssl : MDEV-17184 - Failures with OpenSSL 1.1.1 +main.ssl_7937 : MDEV-20958 - Wrong result +main.ssl_ca : MDEV-10895 - SSL connection error on Power +main.ssl_cipher : MDEV-17184 - Failures with OpenSSL 1.1.1 +main.ssl_timeout : MDEV-11244 - Crash +main.stat_tables_par_innodb : MDEV-14155 - Wrong rounding +main.status : MDEV-13255 - Wrong result +main.subselect : MDEV-20551 - Valgrind failure +main.subselect4 : Modified in 10.4.16 +main.subselect_innodb : MDEV-10614 - Wrong result; modified in 10.4.16 +main.sum_distinct-big : Modified in 10.4.16 +main.tc_heuristic_recover : MDEV-14189 - Wrong result +main.temp_table_symlink : MDEV-24058 - Wrong error code; added in 10.4.16 +main.type_blob : MDEV-15195 - Wrong result; modified in 10.4.16 +main.type_date : Modified in 10.4.16 +main.type_datetime : Modified in 10.4.16 +main.type_datetime_hires : MDEV-10687 - Timeout +main.type_float : MDEV-20532 - Floating point differences; modified in 10.4.16 +main.type_newdecimal : MDEV-20532 - Floating point differences; modified in 10.4.16 +main.type_ranges : MDEV-20532 - Floating point differences +main.type_temporal_innodb : MDEV-24025 - Wrong result +main.type_time : Modified in 10.4.16 +main.udf : Modified in 10.4.16 +main.upgrade_MDEV-19650 : Re-enabled in 10.4.16 +main.userstat : MDEV-12904 - SSL errors +main.view : Modified in 10.4.16 +main.wait_timeout : MDEV-19023 - Lost connection to MySQL server during query +main.win : Modified in 10.4.16 +main.windows_debug : Added in 10.4.16 +main.xa : MDEV-11769 - lock wait timeout #----------------------------------------------------------------------- @@ -260,37 +214,37 @@ archive-test_sql_discovery.discover : MDEV-16817 - Table marked as crashed #----------------------------------------------------------------------- -binlog.binlog_commit_wait : MDEV-10150 - Mismatch -binlog.binlog_innodb : MDEV-22516 - Wrong result -binlog.binlog_invalid_read_in_rotate : MDEV-22455 - Server crash -binlog.binlog_ioerr : MDEV-20159 - Assertion failure -binlog.binlog_killed : MDEV-12925 - Wrong result -binlog.binlog_max_extension : MDEV-19762 - Crash on shutdown -binlog.binlog_mysqlbinlog_row_frag : Modified in 10.4.14 -binlog.binlog_mysqlbinlog_row_innodb : MDEV-20530 - Binary files differ -binlog.binlog_mysqlbinlog_row_myisam : MDEV-20530 - Binary files differ -binlog.binlog_no_uniqfile_crash : Added in 10.4.14 -binlog.binlog_parallel_replication_marks_row : Include file modified in 10.4.14 -binlog.binlog_parallel_replication_marks_stm_mix : Include file modified in 10.4.14 -binlog.binlog_row_binlog : MDEV-23402 - Wrong result -binlog.binlog_show_binlog_event_random_pos : MDEV-22473 - Server crash -binlog.binlog_stm_binlog : MDEV-20412 - Wrong result -binlog.binlog_xa_recover : MDEV-8517 - Extra checkpoint -binlog.flashback-largebinlog : MDEV-19764 - Out of memory -binlog.load_data_stm_view : MDEV-16948 - Wrong result -binlog.show_concurrent_rotate : MDEV-20215 - Wrong result +binlog.binlog_commit_wait : MDEV-10150 - Mismatch +binlog.binlog_innodb : MDEV-22516 - Wrong result +binlog.binlog_ioerr : MDEV-20159 - Assertion failure +binlog.binlog_killed : MDEV-12925 - Wrong result +binlog.binlog_max_extension : MDEV-19762 - Crash on shutdown +binlog.binlog_mysqlbinlog_row : Modified in 10.4.16 +binlog.binlog_mysqlbinlog_row_frag : Modified in 10.4.16 +binlog.binlog_mysqlbinlog_row_innodb : MDEV-20530 - Binary files differ +binlog.binlog_mysqlbinlog_row_myisam : MDEV-20530 - Binary files differ +binlog.binlog_no_uniqfile_crash : MDEV-24078 - Server crash upon shutdown +binlog.binlog_recover_checksum_error : Added in 10.4.16 +binlog.binlog_row_binlog : MDEV-23402 - Wrong result +binlog.binlog_show_binlog_event_random_pos : Modified in 10.4.16 +binlog.binlog_stm_binlog : MDEV-20412 - Wrong result +binlog.binlog_stm_mix_innodb_myisam : MDEV-24057 - Wrong result +binlog.binlog_xa_recover : MDEV-8517 - Extra checkpoint +binlog.flashback-largebinlog : MDEV-19764 - Out of memory +binlog.load_data_stm_view : MDEV-16948 - Wrong result +binlog.show_concurrent_rotate : MDEV-20215 - Wrong result #----------------------------------------------------------------------- binlog_encryption.binlog_xa_recover : MDEV-12908 - Extra checkpoint -binlog_encryption.encrypted_master : MDEV-14201 - Extra warnings +binlog_encryption.encrypted_master : MDEV-23637 - Assertion failure; MDEV-14201 - Extra warnings binlog_encryption.encrypted_master_switch_to_unencrypted : MDEV-14190 - Can't init tc log binlog_encryption.encrypted_slave : MDEV-18135 - SSL error: key too small binlog_encryption.encryption_combo : MDEV-14199 - Table is marked as crashed binlog_encryption.multisource : MDEV-21289 - Wrong error code -binlog_encryption.rpl_binlog_errors : MDEV-12742 - Crash; include file modified in 10.4.14 +binlog_encryption.rpl_binlog_errors : MDEV-12742 - Crash binlog_encryption.rpl_checksum : MDEV-16951 - Wrong result -binlog_encryption.rpl_corruption : MDEV-20159 - Assertion failure; MDEV-20953 - Wrong error code; include file modified in 10.4.13 +binlog_encryption.rpl_corruption : MDEV-20159 - Assertion failure; MDEV-20953 - Wrong error code binlog_encryption.rpl_gtid_basic : MDEV-16947 - Server failed to start binlog_encryption.rpl_incident : MDEV-21569 - mutex: LOCK_global_system_variables unlocking binlog_encryption.rpl_loadfile : MDEV-16645 - Timeout in include @@ -308,44 +262,31 @@ binlog_encryption.rpl_typeconv : MDEV-14362 - Lost c #----------------------------------------------------------------------- -compat/maxdb.* : Added to the main set in 10.4.14 -compat/maxdb.rpl_mariadb_timestamp : Added in 10.4.14 -compat/maxdb.type_timestamp : Added in 10.4.14 - -#----------------------------------------------------------------------- - -compat/oracle.binlog_ptr_mysqlbinlog : Added in 10.4.14 -compat/oracle.parser : Modified in 10.4.14 -compat/oracle.rpl_mariadb_date : Added in 10.4.14 -compat/oracle.sp : Modified in 10.4.14 -compat/oracle.sp-cursor-rowtype : Modified in 10.4.14 -compat/oracle.type_date : Modified in 10.4.14 +compat/oracle.parser : Modified in 10.4.16 +compat/oracle.sp-package : Modified in 10.4.16 #----------------------------------------------------------------------- connect.alter : MDEV-18135 - SSL error: key too small connect.drop-open-error : MDEV-18135 - SSL error: key too small connect.json : MDEV-18135 - SSL error: key too small -connect.mysql_index : Modified in 10.4.13 connect.part_file : MDEV-18135 - SSL error: key too small connect.part_table : MDEV-18135 - SSL error: key too small connect.pivot : MDEV-14803 - Failed to discover table connect.secure_file_priv : MDEV-18135 - SSL error: key too small +connect.updelx : Modified in 10.4.16 connect.vcol : MDEV-12374 - Fails on Windows connect.zip : MDEV-13884 - Wrong result #----------------------------------------------------------------------- -csv.read_only : Modified in 10.4.14 - -#----------------------------------------------------------------------- - disks.disks_notembedded : MDEV-21587 - Wrong result #----------------------------------------------------------------------- encryption.corrupted_during_recovery : MDEV-20159 - Assertion failure -encryption.create_or_replace : MDEV-16115 - Trying to access tablespace +encryption.create_or_replace : MDEV-24081 - Lock wait timeout exceeded; modified in 10.4.16 +encryption.create_or_replace_big : Added in 10.4.16 encryption.debug_key_management : MDEV-13841 - Timeout encryption.encrypt_and_grep : MDEV-13765 - Wrong result encryption.innochecksum : MDEV-13644 - Assertion failure @@ -357,7 +298,8 @@ encryption.innodb-first-page-read : MDEV-14356 - Timeout in wait encryption.innodb-force-corrupt : MDEV-17286 - SSL error encryption.innodb-missing-key : MDEV-14728 - SSL error encryption.innodb-page_encryption : MDEV-10641 - mutex problem -encryption.innodb-page_encryption_log_encryption : MDEV-17339 - Crash on restart +encryption.innodb-page_encryption_compression : Modified in 10.4.16 +encryption.innodb-page_encryption_log_encryption : MDEV-17339 - Crash on restart; modified in 10.4.16 encryption.innodb-read-only : MDEV-16563 - Crash on startup encryption.innodb-redo-badkey : MDEV-12898 - Server hang on startup encryption.innodb-redo-nokeys : MDEV-20159 - Assertion failure @@ -366,20 +308,20 @@ encryption.innodb-spatial-index : MDEV-13746 - Wrong result encryption.innodb_encrypt_key_rotation_age : MDEV-19763 - Timeout encryption.innodb_encrypt_log : MDEV-13725 - Wrong result encryption.innodb_encrypt_log_corruption : MDEV-14379 - Server crash -encryption.innodb_encrypt_temporary_tables : MDEV-20142 - Wrong result; modified in 10.4.14 +encryption.innodb_encrypt_temporary_tables : MDEV-20142 - Wrong result encryption.innodb_encryption : MDEV-14728 - Unable to get certificate; MDEV-15675 - Timeout encryption.innodb_encryption-page-compression : MDEV-12630 - crash or assertion failure encryption.innodb_encryption_discard_import : MDEV-16116 - Wrong result encryption.innodb_encryption_filekeys : MDEV-15673 - Timeout encryption.innodb_encryption_is : MDEV-12898 - Server hang on startup encryption.innodb_encryption_row_compressed : MDEV-16113 - Crash -encryption.innodb_encryption_tables : MDEV-17339 - Crash on restart; modified in 10.4.14 +encryption.innodb_encryption_tables : MDEV-17339 - Crash on restart encryption.innodb_first_page : MDEV-10689 - Crash encryption.innodb_onlinealter_encryption : MDEV-17287 - SIGABRT on server restart encryption.innodb_scrub : MDEV-8139 - scrubbing tests need fixing (fixed in 10.5+) encryption.innodb_scrub_background : MDEV-8139 - scrubbing tests need fixing (fixed in 10.5+) encryption.innodb_scrub_compressed : MDEV-8139 - scrubbing tests need fixing (fixed in 10.5+) -encryption.tempfiles_encrypted : Added in 10.4.14 +encryption.tempfiles_encrypted : Modified in 10.4.16 #----------------------------------------------------------------------- @@ -402,8 +344,7 @@ federated.federated_innodb : MDEV-10617 - Wrong checksum federated.federated_partition : MDEV-10417 - Fails on Mips federated.federated_transactions : MDEV-10617 - Wrong checksum federated.federatedx : MDEV-10617 - Wrong checksum -federated.federatedx_create_handlers : Modified in 10.4.14 -federated.federatedx_versioning : Modified in 10.4.14 +federated.federatedx_create_handlers : Modified in 10.4.16 #----------------------------------------------------------------------- @@ -430,49 +371,50 @@ galera_3nodes.* : Suite is not stable yet #----------------------------------------------------------------------- -gcol.gcol_bugfixes : Modified in 10.4.14 +gcol.gcol_keys_innodb : Include file modified in 10.4.16 +gcol.gcol_keys_myisam : Include file modified in 10.4.16 +gcol.gcol_partition_innodb : Include file modified in 10.4.16 +gcol.gcol_update : Include file modified in 10.4.16 gcol.innodb_virtual_basic : MDEV-16950 - Failing assertion gcol.innodb_virtual_debug : MDEV-23404 - Server crash -gcol.innodb_virtual_debug_purge : MDEV-16952 - Wrong result; modified in 10.4.14 +gcol.innodb_virtual_debug_purge : Include file modified in 10.4.16 +gcol.innodb_virtual_fk : MDEV-20640 - Assertion failure; modified in 10.4.16 gcol.innodb_virtual_fk_restart : MDEV-17466 - Assertion failure -gcol.innodb_virtual_purge : MDEV-22952 - Lock wait timeout +gcol.innodb_virtual_index : Modified in 10.4.16 +gcol.innodb_virtual_purge : MDEV-22952 - Lock wait timeout; include file modified in 10.4.16 gcol.main_alter_table : MDEV-23403 - Wrong result #----------------------------------------------------------------------- innodb.101_compatibility : MDEV-13891 - Wrong result -innodb.alter_algorithm : Modified in 10.4.13 -innodb.alter_algorithm2 : Added in 10.4.13 innodb.alter_copy : MDEV-16181 - Assertion failure -innodb.alter_crash : MDEV-16944 - The process cannot access the file; modified in 10.4.14 +innodb.alter_crash : MDEV-16944 - The process cannot access the file innodb.alter_large_dml : MDEV-20148 - Debug sync point wait timed out -innodb.alter_missing_tablespace : Modified in 10.4.13 -innodb.alter_primary_key : Added in 10.4.14 -innodb.analyze_table : Modified in 10.4.14 +innodb.alter_table : Modified in 10.4.16 innodb.binlog_consistent : MDEV-10618 - Server fails to start innodb.blob-crash : MDEV-20481 - Crash during recovery -innodb.buf_pool_resize_oom : Added in 10.4.13 -innodb.corrupted_during_recovery : Modified in 10.4.13 innodb.create-index : MDEV-20159 - Assertion failure -innodb.default_row_format_alter : Modified in 10.4.14 innodb.default_row_format_compatibility : MDEV-20159 - Assertion failure innodb.doublewrite : MDEV-12905 - Server crash -innodb.foreign_key : Modified in 10.4.13 -innodb.foreign_key_debug : Added in 10.4.13 +innodb.foreign-keys : Modified in 10.4.16 +innodb.foreign_key : Modified in 10.4.16 innodb.group_commit_crash : MDEV-14191 - InnoDB registration failed +innodb.group_commit_crash_no_optimize_thread : MDEV-11770 - Checksum mismatch innodb.ibuf_not_empty : MDEV-19021 - Wrong result +innodb.innodb : Modified in 10.4.16 innodb.innodb-32k-crash : MDEV-20194 - Extra warnings +innodb.innodb-64k : Modified in 10.4.16 innodb.innodb-64k-crash : MDEV-13872 - Failure and crash on startup -innodb.innodb-alter : Modified in 10.4.14 innodb.innodb-alter-debug : MDEV-13182 - InnoDB: adjusting FSP_SPACE_FLAGS innodb.innodb-alter-table : MDEV-10619 - Testcase timeout -innodb.innodb-alter-timestamp : Modified in 10.4.13 innodb.innodb-bigblob : MDEV-18655 - ASAN unknown crash -innodb.innodb-blob : MDEV-12053 - Client crash; modified in 10.4.13 +innodb.innodb-blob : MDEV-12053 - Client crash innodb.innodb-change-buffer-recovery : MDEV-19115 - Lost connection to MySQL server during query innodb.innodb-dict : MDEV-20159 - Assertion failure innodb.innodb-fk : MDEV-13832 - Assertion failure on shutdown innodb.innodb-get-fk : MDEV-13276 - Server crash +innodb.innodb-index : Include file modified in 10.4.16 +innodb.innodb-index-debug : Include file modified in 10.4.16 innodb.innodb-index-online : MDEV-14809 - Cannot save statistics innodb.innodb-page_compression_default : MDEV-13644 - Assertion failure innodb.innodb-page_compression_lzma : MDEV-14353 - Wrong result @@ -481,23 +423,20 @@ innodb.innodb-page_compression_tables : MDEV-13644 - Assertion failure innodb.innodb-page_compression_zip : MDEV-10641 - mutex problem innodb.innodb-table-online : MDEV-13894 - Wrong result innodb.innodb-timeout : MDEV-20159 - Assertion failure -innodb.innodb-ucs2 : MDEV-23370 - Server crash -innodb.innodb-wl5522 : MDEV-13644 - Assertion failure; modified in 10.4.13 +innodb.innodb-wl5522 : MDEV-13644 - Assertion failure innodb.innodb-wl5522-1 : MDEV-22945 - Server crash -innodb.innodb-wl5522-debug : MDEV-14200 - Wrong errno; modified in 10.4.13 +innodb.innodb-wl5522-debug : MDEV-14200 - Wrong errno innodb.innodb_buffer_pool_dump_pct : MDEV-20139 - Timeout in wait_condition.inc -innodb.innodb_buffer_pool_load_now : Added in 10.4.13 innodb.innodb_buffer_pool_resize : MDEV-16964 - Assertion failure -innodb.innodb_buffer_pool_resize_debug : MDEV-22515 - Timeout in wait_condition; added in 10.4.13 +innodb.innodb_buffer_pool_resize_debug : MDEV-22515 - Timeout in wait_condition innodb.innodb_buffer_pool_resize_with_chunks : MDEV-16964 - Assertion failure innodb.innodb_bug14147491 : MDEV-11808 - Index is corrupt innodb.innodb_bug30423 : MDEV-7311 - Wrong result innodb.innodb_bug47167 : MDEV-20524 - Table 'user' is marked as crashed and should be repaired innodb.innodb_bug48024 : MDEV-14352 - Assertion failure innodb.innodb_bulk_create_index_replication : MDEV-15273 - Slave failed to start -innodb.innodb_defrag_concurrent : Modified in 10.4.13 innodb.innodb_defrag_stats_many_tables : MDEV-14198 - Table is full -innodb.innodb_force_recovery_rollback : MDEV-22889 - Wrong result; added in 10.4.14 +innodb.innodb_force_recovery_rollback : MDEV-22889 - Wrong result innodb.innodb_information_schema : MDEV-8851 - Wrong result innodb.innodb_max_recordsize_32k : MDEV-14801 - Operation failed innodb.innodb_max_recordsize_64k : MDEV-15203 - Wrong result @@ -505,149 +444,124 @@ innodb.innodb_monitor : MDEV-10939 - Testcase timeout innodb.innodb_mysql : MDEV-19873 - Wrong result innodb.innodb_simulate_comp_failures_small : MDEV-20526 - ASAN use-after-poison innodb.innodb_stats : MDEV-10682 - wrong result -innodb.innodb_stats_persistent : MDEV-17745 - Wrong result; MDEV-21567 - Wrong result in execution plan +innodb.innodb_stats_drop_locked : Modified in 10.4.16 +innodb.innodb_stats_persistent : MDEV-21567 - Wrong result in execution plan innodb.innodb_stats_persistent_debug : MDEV-14801 - Operation failed innodb.innodb_sys_semaphore_waits : MDEV-10331 - Semaphore wait -innodb.innodb_sys_var_valgrind : Added in 10.4.13 +innodb.innodb_trx_weight : Configuration deleted in 10.4.16 innodb.innodb_zip_innochecksum2 : MDEV-13882 - Warning: difficult to find free blocks -innodb.instant_alter : Modified in 10.4.13 -innodb.instant_alter_bugs : Modified in 10.4.14 -innodb.instant_alter_charset : Modified in 10.4.14 -innodb.instant_alter_debug : Modified in 10.4.13 -innodb.instant_alter_extend : MDEV-20963 - Binary files differ; modified in 10.4.14 -innodb.instant_alter_index_rename : Modified in 10.4.13 -innodb.instant_alter_limit : Modified in 10.4.14 -innodb.leaf_page_corrupted_during_recovery : Modified in 10.4.14 +innodb.instant_alter_bugs : Modified in 10.4.16 +innodb.instant_alter_crash : Modified in 10.4.16 +innodb.instant_alter_extend : MDEV-20963 - Binary files differ +innodb.instant_alter_index_rename : Modified in 10.4.16 +innodb.instant_alter_purge : Modified in 10.4.16 innodb.log_corruption : MDEV-13251 - Wrong result innodb.log_data_file_size : MDEV-14204 - Server failed to start; MDEV-20648 - Assertion failure innodb.log_file : MDEV-20159 - Assertion failure innodb.log_file_name : MDEV-14193 - Exception -innodb.log_file_name_debug : Modified in 10.4.13 innodb.log_file_size : MDEV-15668 - Not found pattern innodb.monitor : MDEV-16179 - Wrong result -innodb.mvcc : Modified in 10.4.14 innodb.page_id_innochecksum : MDEV-20159 - Assertion failure innodb.purge_secondary : MDEV-15681 - Wrong result innodb.purge_thread_shutdown : MDEV-13792 - Wrong result -innodb.read_only_recover_committed : Modified in 10.4.14 innodb.read_only_recovery : MDEV-13886 - Server crash innodb.recovery_shutdown : MDEV-15671 - Checksum mismatch in datafile -innodb.row_format_redundant : MDEV-15192 - Trying to access missing tablespace +innodb.row_format_redundant : MDEV-15192 - Trying to access missing tablespace; modified in 10.4.16 +innodb.stats_persistent : Added in 10.4.16 innodb.table_definition_cache_debug : MDEV-14206 - Extra warning -innodb.table_flags : MDEV-13572 - Wrong result; MDEV-19374 - Server failed to start +innodb.table_flags : MDEV-13572 - Wrong result; MDEV-19374 - Server failed to start; modified in 10.4.16 +innodb.temp_table_savepoint : MDEV-24077 - Assertion failure innodb.temporary_table : MDEV-13265 - Wrong result -innodb.truncate_foreign : Modified in 10.4.14 +innodb.truncate : Modified in 10.4.16 innodb.undo_truncate : MDEV-17340 - Server hung; MDEV-20840 - Sporadic timeout innodb.undo_truncate_recover : MDEV-17679 - Server has gone away; MDEV-19200 - Shutdown fails +innodb.update-cascade : Combinations added in 10.4.16 innodb.update_time : MDEV-14804 - Wrong result -innodb.xa_recovery : MDEV-15279 - mysqld got exception; modified in 10.4.14 -innodb.xa_recovery_debug : Modified in 10.4.14 +innodb.xa_recovery : MDEV-15279 - mysqld got exception #----------------------------------------------------------------------- -innodb_fts.innodb-fts-ddl : Modified in 10.4.14 -innodb_fts.innodb_fts_misc : Modified in 10.4.13 +innodb_fts.basic : Modified in 10.4.16 +innodb_fts.fulltext2 : MDEV-24074 - Server crash +innodb_fts.innodb_fts_misc_1 : Modified in 10.4.16 innodb_fts.innodb_fts_misc_debug : MDEV-14156 - Unexpected warning innodb_fts.innodb_fts_plugin : MDEV-13888 - Errors in server log innodb_fts.innodb_fts_stopword_charset : MDEV-13259 - Table crashed -innodb_fts.misc_debug : Modified in 10.4.13 -innodb_fts.misc_debug2 : Added in 10.4.13 -innodb_fts.stopword : Added in 10.4.13 -innodb_fts.sync : Modified in 10.4.13 innodb_fts.sync_ddl : MDEV-21568 - Errno: 2000; MDEV-18654 - Assertion failure #----------------------------------------------------------------------- innodb_gis.alter_spatial_index : MDEV-13745 - Server crash -innodb_gis.bug16236208 : Modified in 10.4.13 -innodb_gis.bug16266012 : Modified in 10.4.13 -innodb_gis.geometry : Modified in 10.4.13 -innodb_gis.gis_split_inf : Modified in 10.4.13 innodb_gis.gis_split_nan : MDEV-21678 - Cannot get geometry object -innodb_gis.point_big : Re-enabled in 10.4.13 +innodb_gis.rtree_add_index : Include file modified in 10.4.16 +innodb_gis.rtree_compress : Include file modified in 10.4.16 innodb_gis.rtree_compress2 : MDEV-16269 - Wrong result innodb_gis.rtree_concurrent_srch : MDEV-15284 - Wrong result with embedded -innodb_gis.rtree_multi_pk : Modified in 10.4.13 -innodb_gis.rtree_purge : MDEV-15275 - Timeout +innodb_gis.rtree_purge : MDEV-15275 - Timeout; include file modified in 10.4.16 innodb_gis.rtree_recovery : MDEV-15274 - Error on check -innodb_gis.rtree_split : MDEV-14208 - Too many arguments; modified in 10.4.13 -innodb_gis.rtree_undo : MDEV-14456 - Timeout in include file +innodb_gis.rtree_split : MDEV-14208 - Too many arguments +innodb_gis.rtree_undo : MDEV-14456 - Timeout in include file; include file modified in 10.4.16 innodb_gis.types : MDEV-15679 - Table is marked as crashed #----------------------------------------------------------------------- innodb_zip.cmp_per_index : MDEV-14490 - Table is marked as crashed -innodb_zip.create_options : MDEV-23370 - Server crash; MDEV-21329 - Assertion failure +innodb_zip.create_options : MDEV-21329 - Assertion failure; MDEV-24076 - Assertion failure innodb_zip.index_large_prefix_4k : MDEV-21679 - Row size too large innodb_zip.innochecksum : MDEV-14486 - Server failed to shut down innodb_zip.innochecksum_3 : MDEV-13279 - Extra warnings -innodb_zip.recover : MDEV-22512 - Server failed to restart -innodb_zip.wl5522_debug_zip : MDEV-11600 - Operating system error number 2; modified in 10.4.13 -innodb_zip.wl5522_zip : Modified in 10.4.13 +innodb_zip.recover : MDEV-22512 - Server failed to restart (fixed in 10.5+) +innodb_zip.wl5522_debug_zip : MDEV-11600 - Operating system error number 2 innodb_zip.wl6470_1 : MDEV-14240 - Assertion failure innodb_zip.wl6501_1 : MDEV-10891 - Can't create UNIX socket innodb_zip.wl6501_scale_1 : MDEV-13254 - Timeout, MDEV-14104 - Error 192 #----------------------------------------------------------------------- -maria.bulk_insert_crash : Added in 10.4.14 -maria.encrypt-no-key : Added in 10.4.14 -maria.icp : Include file modified in 10.4.13 +maria.alter : Modified in 10.4.16 +maria.create : Modified in 10.4.16 maria.insert_select : MDEV-12757 - Timeout maria.insert_select-7314 : MDEV-16492 - Timeout maria.maria : MDEV-14430 - Extra warning -maria.maria-no-logging : MDEV-20196 - Crash on shutdown or server can't start +maria.maria-no-logging : MDEV-20196 - Crash on shutdown or server can't start; modified in 10.4.16 #----------------------------------------------------------------------- -mariabackup.* : suite.pm modified in 10.4.13 mariabackup.absolute_ibdata_paths : MDEV-16571 - Wrong result -mariabackup.apply-log-only : MDEV-20135 - Timeout; modified in 10.4.14 -mariabackup.apply-log-only-incr : Modified in 10.4.14 -mariabackup.backup_lock_wait_timeout : Added in 10.4.13 -mariabackup.binlog : Modified in 10.4.14 +mariabackup.apply-log-only : MDEV-20135 - Timeout +mariabackup.backup_ssl : MDEV-24073 - Server crash upon shutdown mariabackup.create_with_data_directory_during_backup : MDEV-20159 - Assertion failure mariabackup.data_directory : MDEV-15270 - Error on exec +mariabackup.ddl_incremental_encrypted : Added in 10.4.16 mariabackup.full_backup : MDEV-16571 - Wrong result -mariabackup.huge_lsn : MDEV-18569 - Table doesn't exist; modified in 10.4.14 -mariabackup.incremental_backup : MDEV-21222 - Memory allocation failure; modified in 10.4.14 -mariabackup.incremental_ddl_before_backup : Modified in 10.4.14 -mariabackup.incremental_ddl_during_backup : Modified in 10.4.14 +mariabackup.huge_lsn : MDEV-18569 - Table doesn't exist +mariabackup.incremental_backup : MDEV-21222 - Memory allocation failure +mariabackup.incremental_ddl_during_backup : Modified in 10.4.16 mariabackup.incremental_encrypted : MDEV-15667 - timeout mariabackup.incremental_rocksdb : MDEV-20954 - Cannot access the file -mariabackup.innodb_xa_rollback : Added in 10.4.13 +mariabackup.innodb_redo_overwrite : MDEV-24023 - Wrong result; added in 10.4.16 mariabackup.log_checksum_mismatch : MDEV-16571 - Wrong result -mariabackup.mdev-14447 : MDEV-15201 - Timeout; modified in 10.4.14 -mariabackup.options_check : Added in 10.4.14 -mariabackup.partial_exclude : MDEV-15270 - Error on exec; modified in 10.4.13 -mariabackup.undo_space_id : Modified in 10.4.14 -mariabackup.unencrypted_page_compressed : MDEV-18653 - Wrong error +mariabackup.mdev-14447 : MDEV-15201 - Timeout +mariabackup.mlog_index_load : Modified in 10.4.16 +mariabackup.partial_exclude : MDEV-15270 - Error on exec +mariabackup.rpl_slave_info : Added in 10.4.16 +mariabackup.unencrypted_page_compressed : MDEV-18653 - Wrong error; include file modified in 10.4.16 mariabackup.xb_compressed_encrypted : MDEV-14812 - Segmentation fault mariabackup.xb_file_key_management : MDEV-16571 - Wrong result -mariabackup.xb_fulltext_encrypted : Modified in 10.4.14 mariabackup.xb_page_compress : MDEV-14810 - status: 1, errno: 11 -mariabackup.xb_partition : MDEV-17584 - Crash upon shutdown; modified in 10.4.14 +mariabackup.xb_partition : MDEV-17584 - Crash upon shutdown mariabackup.xb_rocksdb : MDEV-17338 - Server hung on shutdown #----------------------------------------------------------------------- -mroonga/storage.column_datetime_32bit_2038 : Wrong result on Alpha -mroonga/storage.column_datetime_32bit_before_unix_epoch : Wrong result on Alpha -mroonga/storage.column_datetime_32bit_max : Wrong result on Alpha -mroonga/storage.column_datetime_32bit_out_of_range : Wrong result on Alpha -mroonga/storage.index_multiple_column_unique_date_32bit_equal : Wrong result on Alpha -mroonga/storage.index_multiple_column_unique_date_order_32bit_desc : Wrong result on Alpha -mroonga/storage.index_multiple_column_unique_datetime_index_read : MDEV-8643 - Valgrind -mroonga/storage.optimization_count_skip_index_between : Modified in 10.4.13 -mroonga/storage.optimization_count_skip_index_greater : Modified in 10.4.13 -mroonga/storage.optimization_count_skip_index_greater_equal : Modified in 10.4.13 -mroonga/storage.optimization_count_skip_index_less : Modified in 10.4.13 -mroonga/storage.optimization_count_skip_index_less_equal : Modified in 10.4.13 -mroonga/storage.optimization_count_skip_primary_key_between : Modified in 10.4.13 -mroonga/storage.optimization_count_skip_primary_key_greater : Modified in 10.4.13 -mroonga/storage.optimization_count_skip_primary_key_greater_equal : Modified in 10.4.13 -mroonga/storage.repair_table_no_index_file : MDEV-9364 - wrong result, MDEV-14807 - wrong error message -mroonga/storage.variable_max_n_records_for_estimate_not_found_in_limit : Modified in 10.4.13 +mroonga/storage.column_datetime_32bit_2038 : Wrong result on Alpha +mroonga/storage.column_datetime_32bit_before_unix_epoch : Wrong result on Alpha +mroonga/storage.column_datetime_32bit_max : Wrong result on Alpha +mroonga/storage.column_datetime_32bit_out_of_range : Wrong result on Alpha +mroonga/storage.index_multiple_column_unique_date_32bit_equal : Wrong result on Alpha +mroonga/storage.index_multiple_column_unique_date_order_32bit_desc : Wrong result on Alpha +mroonga/storage.index_multiple_column_unique_datetime_index_read : MDEV-8643 - Valgrind +mroonga/storage.repair_table_no_index_file : MDEV-9364 - wrong result, MDEV-14807 - wrong error message #----------------------------------------------------------------------- @@ -667,32 +581,22 @@ multi_source.status_vars : MDEV-4632 - failed while waiting for Slave_received_h #----------------------------------------------------------------------- -oqgraph.social : MDEV-22280 - Timeout; MDEV-22280 - Timeout +oqgraph.social : MDEV-22280 - Timeout #----------------------------------------------------------------------- -parts.longname : Modified in 10.4.14 -parts.partition_alter1_1_2_innodb : MDEV-18655 - ASAN unknown crash -parts.partition_alter1_1_innodb : MDEV-18655 - ASAN unknown crash -parts.partition_alter1_2_innodb : MDEV-18655 - ASAN unknown crash -parts.partition_alter2_2_maria : MDEV-14364 - Lost connection to MySQL server during query -parts.partition_alter_instant : Added in 10.4.13 -parts.partition_auto_increment_archive : MDEV-16491 - Marked as crashed and should be repaired; include file modified in 10.4.14 -parts.partition_auto_increment_blackhole : Include file modified in 10.4.14 -parts.partition_auto_increment_innodb : Include file modified in 10.4.14 -parts.partition_auto_increment_maria : MDEV-14430 - Extra warning; include file modified in 10.4.14 -parts.partition_auto_increment_memory : Include file modified in 10.4.14 -parts.partition_auto_increment_myisam : Include file modified in 10.4.14 -parts.partition_basic_innodb : MDEV-20214 - ASAN error -parts.partition_debug : Modified in 10.4.14 -parts.partition_debug_innodb : MDEV-10891 - Can't create UNIX socket; MDEV-15095 - Table doesn't exist -parts.partition_exch_qa_10 : MDEV-11765 - wrong result -parts.partition_innodb_status_file : MDEV-12901 - Valgrind -parts.partition_special_innodb : MDEV-16942 - Timeout; modified in 10.4.13 - -#----------------------------------------------------------------------- - -percona.* : MDEV-10997 - Not maintained +parts.partition_alter1_1_2_innodb : MDEV-18655 - ASAN unknown crash +parts.partition_alter1_1_innodb : MDEV-18655 - ASAN unknown crash +parts.partition_alter1_2_innodb : MDEV-18655 - ASAN unknown crash +parts.partition_alter2_2_maria : MDEV-14364 - Lost connection to MySQL server during query +parts.partition_auto_increment_archive : MDEV-16491 - Marked as crashed and should be repaired +parts.partition_auto_increment_maria : MDEV-14430 - Extra warning +parts.partition_basic_innodb : MDEV-20214 - ASAN error +parts.partition_debug_innodb : MDEV-10891 - Can't create UNIX socket; MDEV-15095 - Table doesn't exist +parts.partition_exch_qa_10 : MDEV-11765 - wrong result +parts.partition_innodb_status_file : MDEV-12901 - Valgrind +parts.partition_special_innodb : MDEV-16942 - Timeout +parts.reorganize : Added in 10.4.16 #----------------------------------------------------------------------- @@ -706,13 +610,14 @@ perfschema.hostcache_ipv4_addrinfo_again_allow : MDEV-12759 - Crash perfschema.hostcache_ipv6_addrinfo_again_allow : MDEV-12752 - Crash perfschema.hostcache_ipv6_addrinfo_bad_allow : MDEV-13260 - Crash perfschema.hostcache_ipv6_ssl : MDEV-10696 - Crash +perfschema.nesting : MDEV-23458 - Wrong result perfschema.pfs_upgrade_event : MDEV-20957 - Wrong result perfschema.pfs_upgrade_func : MDEV-20957 - Upgrade file was not properly created perfschema.pfs_upgrade_proc : MDEV-20533 - Upgrade file was not properly created perfschema.pfs_upgrade_table : MDEV-20533 - Exec failed perfschema.pfs_upgrade_view : MDEV-20533 - Upgrade file was not properly created perfschema.privilege_table_io : MDEV-13184 - Extra lines -perfschema.relaylog : MDEV-18134 - Wrong result +perfschema.relaylog : MDEV-18134 - Wrong result; MDEV-24075 - Extra warning perfschema.rpl_gtid_func : MDEV-16897 - Wrong result perfschema.socket_instances_func : MDEV-20140 - Wrong result perfschema.socket_summary_by_event_name_func : MDEV-10622 - Wrong result @@ -730,17 +635,16 @@ perfschema_stress.* : MDEV-10996 - Not maintained #----------------------------------------------------------------------- -period.alter : Modified in 10.4.13 -period.update : Modified in 10.4.13 -period.versioning : MDEV-20159 - Assertion failure; include file modified in 10.4.14 +period.delete : Modified in 10.4.16 +period.update : Modified in 10.4.16 +period.versioning : MDEV-20159 - Assertion failure #----------------------------------------------------------------------- -plugins.audit_null_debug : Modified in 10.4.14 plugins.feedback_plugin_send : MDEV-7932, MDEV-11118 - Connection problems and such -plugins.multiauth : MDEV-20163 - Plugin could not be loaded; modified in 10.4.13 +plugins.multiauth : MDEV-20163 - Plugin could not be loaded plugins.processlist : MDEV-16574 - Wrong result -plugins.server_audit : MDEV-14295 - Wrong result; modified in 10.4.13 +plugins.server_audit : MDEV-14295 - Wrong result; modified in 10.4.16 plugins.thread_pool_server_audit : MDEV-14295 - Wrong result #----------------------------------------------------------------------- @@ -780,135 +684,128 @@ rocksdb_sys_vars.rocksdb_rate_limiter_bytes_per_sec_basic : MDEV-16639 - Crash #----------------------------------------------------------------------- -roles.create_and_grant_role : MDEV-11772 - wrong result -roles.drop_current_role : Added in 10.4.14 -roles.grant_revoke_current : Modified in 10.4.13 -roles.set_default_role_invalid : Modified in 10.4.14 +roles.acl_load_mutex-5170 : Modified in 10.4.16 +roles.create_and_grant_role : MDEV-11772 - wrong result #----------------------------------------------------------------------- -rpl.circular_serverid0 : MDEV-19372 - ASAN heap-use-after-free; modified in 10.4.13 -rpl.create_or_replace2 : MDEV-19412 - Lost connection to MySQL server -rpl.create_or_replace_mix : MDEV-20523 - Wrong result -rpl.create_or_replace_statement : MDEV-20523 - Wrong result -rpl.create_select : MDEV-14121 - Assertion failure -rpl.last_insert_id : MDEV-10625 - warnings in error log -rpl.parallel_backup : Added in 10.4.14 -rpl.rpl_auto_increment : MDEV-10417 - Fails on Mips -rpl.rpl_auto_increment_bug45679 : MDEV-10417 - Fails on Mips -rpl.rpl_auto_increment_update_failure : MDEV-10625 - warnings in error log -rpl.rpl_binlog_dump_slave_gtid_state_info : Added in 10.4.14 -rpl.rpl_binlog_errors : MDEV-12742 - Crash; include file modified in 10.4.13 -rpl.rpl_binlog_grant : MDEV-21274 - Lost connection at handshake -rpl.rpl_binlog_index : MDEV-9501 - Failed registering on master -rpl.rpl_bug41902 : Configuration deleted in 10.4.13 -rpl.rpl_cant_read_event_incident : MDEV-20960 - Abort on shutdown -rpl.rpl_checksum_cache : MDEV-22510 - Server crash -rpl.rpl_circular_for_4_hosts : MDEV-20536 - Server crash -rpl.rpl_colSize : MDEV-16112 - Server crash -rpl.rpl_conditional_comments : Modified in 10.4.13 -rpl.rpl_corruption : MDEV-20527 - Slave stopped with wrong error code; include file modified in 10.4.13 -rpl.rpl_create_tmp_table_if_not_exists : MDEV-20159 - Assertion failure -rpl.rpl_ctype_latin1 : MDEV-14813 - Wrong result on Mac -rpl.rpl_ddl : MDEV-10417 - Fails on Mips -rpl.rpl_domain_id_filter_io_crash : MDEV-12729 - Timeout in include file, MDEV-13677 - Server crash; modified in 10.4.13 -rpl.rpl_domain_id_filter_master_crash : MDEV-19043 - Table marked as crashed -rpl.rpl_domain_id_filter_restart : MDEV-10684 - Wrong result; MDEV-19043 - Table marked as crashed -rpl.rpl_drop_db_fail : MDEV-16898 - Slave fails to start -rpl.rpl_dump_request_retry_warning : Added in 10.4.14 -rpl.rpl_extra_col_master_innodb : MDEV-16570 - Extra warning -rpl.rpl_fail_register : Modified in 10.4.14 -rpl.rpl_flushlog_loop : MDEV-21570 - Server crash -rpl.rpl_get_lock : MDEV-19368 - mysqltest failed but provided no output -rpl.rpl_get_master_version_and_clock : Re-enabled in 10.4.13; include file modified in 10.4.13 -rpl.rpl_gtid_basic : MDEV-10681 - server startup problem -rpl.rpl_gtid_crash : MDEV-9501 - Failed registering on master, MDEV-13643 - Lost connection -rpl.rpl_gtid_delete_domain : MDEV-14463 - Timeout; MDEV-23103 - Could not delete gtid domain -rpl.rpl_gtid_errorhandling : MDEV-13261 - Crash -rpl.rpl_gtid_mdev9033 : MDEV-10680 - warnings -rpl.rpl_gtid_reconnect : MDEV-14497 - Crash -rpl.rpl_gtid_startpos : MDEV-20141 - mysqltest failed but provided no output -rpl.rpl_gtid_stop_start : MDEV-10629 - Crash on shutdown, MDEV-12629 - Valgrind warnings -rpl.rpl_gtid_strict : Modified in 10.4.13 -rpl.rpl_gtid_until : MDEV-10625 - warnings in error log -rpl.rpl_ignore_grant : MDEV-20159 - Assertion failure -rpl.rpl_ignore_table : Modified in 10.4.13 -rpl.rpl_ignore_table_update : MDEV-20159 - Assertion failure -rpl.rpl_innodb_bug30888 : MDEV-10417 - Fails on Mips -rpl.rpl_insert : MDEV-9329 - Fails on Ubuntu/s390x -rpl.rpl_insert_delayed : MDEV-9329 - Fails on Ubuntu/s390x -rpl.rpl_insert_id : MDEV-15197 - Wrong result -rpl.rpl_insert_id_pk : MDEV-16567 - Assertion failure -rpl.rpl_insert_ignore : MDEV-14365 - Lost connection to MySQL server during query -rpl.rpl_invoked_features : MDEV-10417 - Fails on Mips -rpl.rpl_ipv4_as_ipv6 : MDEV-20147 - Incorrect checksum for freed object -rpl.rpl_mariadb_slave_capability : MDEV-11018 - Extra lines in binlog -rpl.rpl_mdev12179 : MDEV-19043 - Table marked as crashed -rpl.rpl_mdev6020 : MDEV-15272 - Server crash -rpl.rpl_mixed_mixing_engines : MDEV-21266 - Timeout -rpl.rpl_non_direct_row_mixing_engines : MDEV-16561 - Timeout in master_pos_wait -rpl.rpl_old_master : MDEV-22956 - Failing assertion -rpl.rpl_parallel : MDEV-10653 - Timeouts -rpl.rpl_parallel2 : MDEV-17390 - Operation cannot be performed; re-enabled in 10.4.14; modified in 10.4.14 -rpl.rpl_parallel_conflicts : MDEV-15272 - Server crash -rpl.rpl_parallel_mdev6589 : MDEV-12979 - Assertion failure -rpl.rpl_parallel_multilevel : MDEV-20160 - Server crash -rpl.rpl_parallel_multilevel2 : MDEV-14723 - Timeout -rpl.rpl_parallel_optimistic : MDEV-15278 - Failed to sync with master -rpl.rpl_parallel_optimistic_nobinlog : MDEV-15278 - Failed to sync with master -rpl.rpl_parallel_optimistic_until : MDEV-23021 - Query didn't return a result set; added in 10.4.14 -rpl.rpl_parallel_retry : MDEV-11119 - Crash; MDEV-17109 - Timeout -rpl.rpl_parallel_temptable : MDEV-10356 - Crash; MDEV-19076 - Wrong result -rpl.rpl_partition_innodb : MDEV-10417 - Fails on Mips -rpl.rpl_password_boundaries : MDEV-11534 - Slave IO warnings -rpl.rpl_read_only : MDEV-20159 - Assertion failure -rpl.rpl_row_001 : MDEV-16653 - MTR's internal check fails -rpl.rpl_row_basic_11bugs : MDEV-12171 - Server failed to start -rpl.rpl_row_basic_2myisam : MDEV-13875 - command "diff_files" failed -rpl.rpl_row_corruption : MDEV-21569 - mutex: LOCK_global_system_variables unlocking; modified in 10.4.13 -rpl.rpl_row_drop_create_temp_table : MDEV-14487 - Wrong result -rpl.rpl_row_end_of_statement_loss : MDEV-21237 - Server crash -rpl.rpl_row_img_blobs : MDEV-13875 - command "diff_files" failed -rpl.rpl_row_img_eng_min : MDEV-13875 - diff_files failed -rpl.rpl_row_img_eng_noblob : MDEV-13875 - command "diff_files" failed -rpl.rpl_row_index_choice : MDEV-15196 - Slave crash -rpl.rpl_row_sp001 : MDEV-9329 - Fails on Ubuntu/s390x -rpl.rpl_row_until : MDEV-14052 - Master will not send events with checksum -rpl.rpl_row_virt : Added in 10.4.14 -rpl.rpl_semi_sync : MDEV-11220 - Wrong result -rpl.rpl_semi_sync_after_sync : MDEV-14366 - Wrong result -rpl.rpl_semi_sync_after_sync_row : MDEV-14366 - Wrong result -rpl.rpl_semi_sync_event_after_sync : MDEV-11806 - warnings -rpl.rpl_semi_sync_skip_repl : MDEV-23371 - Server crash -rpl.rpl_semi_sync_uninstall_plugin : MDEV-7140 - Assorted failures -rpl.rpl_semi_sync_wait_no_slave : MDEV-20159 - Assertion failure -rpl.rpl_semi_sync_wait_point : MDEV-11807 - timeout in wait condition -rpl.rpl_semisync_ali_issues : MDEV-16272 - Wrong result -rpl.rpl_show_slave_hosts : MDEV-10681 - Crash -rpl.rpl_shutdown_wait_slaves : MDEV-22517 - Timeout on sync_with_master -rpl.rpl_skip_replication : MDEV-23372 - Extra warning -rpl.rpl_slave_grp_exec : MDEV-10514 - Deadlock -rpl.rpl_slave_load_in : MDEV-20159 - Assertion failure -rpl.rpl_slow_query_log : MDEV-13250 - Test abort -rpl.rpl_sp_effects : MDEV-13249 - Crash -rpl.rpl_start_stop_slave : MDEV-13567 - Sync slave timeout -rpl.rpl_stm_multi_query : MDEV-9501 - Failed registering on master -rpl.rpl_stm_relay_ign_space : MDEV-14360 - Test assertion -rpl.rpl_stm_stop_middle_group : MDEV-13791 - Server crash; include file modified in 10.4.13 -rpl.rpl_temporal_mysql56_to_mariadb53 : MDEV-9501 - Failed registering on master -rpl.rpl_temporary_error2 : MDEV-10634 - Wrong number of retries -rpl.rpl_test_framework : MDEV-19368 - mysqltest failed but provided no output -rpl.rpl_trigger : MDEV-18055 - Wrong result -rpl.rpl_truncate_3innodb : MDEV-19454 - Syntax error -rpl.rpl_upgrade_master_info : MDEV-16567 - Assertion failure -rpl.rpl_user_variables : MDEV-20522 - Wrong result -rpl.rpl_variables : MDEV-20150 - Server crash -rpl.sec_behind_master-5114 : MDEV-13878 - Wrong result -rpl.show_status_stop_slave_race-7126 : MDEV-17438 - Timeout +rpl.circular_serverid0 : MDEV-19372 - ASAN heap-use-after-free +rpl.create_or_replace2 : MDEV-19412 - Lost connection to MySQL server +rpl.create_or_replace_mix : MDEV-20523 - Wrong result +rpl.create_or_replace_statement : MDEV-20523 - Wrong result +rpl.create_select : MDEV-14121 - Assertion failure +rpl.last_insert_id : MDEV-10625 - warnings in error log +rpl.rpl_auto_increment : MDEV-10417 - Fails on Mips +rpl.rpl_auto_increment_bug45679 : MDEV-10417 - Fails on Mips +rpl.rpl_auto_increment_update_failure : MDEV-10625 - warnings in error log +rpl.rpl_binlog_errors : MDEV-12742 - Crash +rpl.rpl_binlog_grant : MDEV-21274 - Lost connection at handshake +rpl.rpl_binlog_index : Modified in 10.4.16 +rpl.rpl_cant_read_event_incident : MDEV-20960 - Abort on shutdown +rpl.rpl_checksum_cache : MDEV-22510 - Server crash +rpl.rpl_circular_for_4_hosts : MDEV-20536 - Server crash +rpl.rpl_colSize : MDEV-16112 - Server crash +rpl.rpl_corruption : MDEV-20527 - Slave stopped with wrong error code +rpl.rpl_create_tmp_table_if_not_exists : MDEV-20159 - Assertion failure +rpl.rpl_ctype_latin1 : MDEV-14813 - Wrong result on Mac +rpl.rpl_ddl : MDEV-10417 - Fails on Mips +rpl.rpl_domain_id_filter_io_crash : MDEV-12729 - Timeout in include file, MDEV-13677 - Server crash +rpl.rpl_domain_id_filter_master_crash : MDEV-19043 - Table marked as crashed +rpl.rpl_domain_id_filter_restart : MDEV-10684 - Wrong result; MDEV-19043 - Table marked as crashed +rpl.rpl_drop_db_fail : MDEV-16898 - Slave fails to start +rpl.rpl_extra_col_master_innodb : MDEV-16570 - Extra warning +rpl.rpl_extra_col_master_myisam : MDEV-23372 - Extra warning +rpl.rpl_filter_tables_dynamic : Modified in 10.4.16 +rpl.rpl_filter_wild_tables_dynamic : Modified in 10.4.16 +rpl.rpl_flushlog_loop : MDEV-21570 - Server crash +rpl.rpl_get_lock : MDEV-19368 - mysqltest failed but provided no output +rpl.rpl_gtid_basic : MDEV-10681 - server startup problem +rpl.rpl_gtid_crash : MDEV-13643 - Lost connection; modified in 10.4.16 +rpl.rpl_gtid_delete_domain : MDEV-14463 - Timeout; MDEV-23103 - Could not delete gtid domain; modified in 10.4.16 +rpl.rpl_gtid_errorhandling : MDEV-13261 - Crash +rpl.rpl_gtid_mdev9033 : MDEV-10680 - warnings +rpl.rpl_gtid_reconnect : MDEV-14497 - Crash +rpl.rpl_gtid_startpos : MDEV-20141 - mysqltest failed but provided no output +rpl.rpl_gtid_stop_start : MDEV-10629 - Crash on shutdown, MDEV-12629 - Valgrind warnings +rpl.rpl_gtid_until : MDEV-10625 - warnings in error log +rpl.rpl_ignore_grant : MDEV-20159 - Assertion failure +rpl.rpl_ignore_table_update : MDEV-20159 - Assertion failure +rpl.rpl_innodb_bug30888 : MDEV-10417 - Fails on Mips +rpl.rpl_insert : MDEV-9329 - Fails on Ubuntu/s390x +rpl.rpl_insert_delayed : MDEV-9329 - Fails on Ubuntu/s390x +rpl.rpl_insert_id : MDEV-15197 - Wrong result +rpl.rpl_insert_id_pk : MDEV-16567 - Assertion failure +rpl.rpl_insert_ignore : MDEV-14365 - Lost connection to MySQL server during query +rpl.rpl_invoked_features : MDEV-10417 - Fails on Mips +rpl.rpl_ipv4_as_ipv6 : MDEV-20147 - Incorrect checksum for freed object +rpl.rpl_mariadb_slave_capability : MDEV-11018 - Extra lines in binlog +rpl.rpl_mdev12179 : MDEV-19043 - Table marked as crashed +rpl.rpl_mdev6020 : MDEV-23426 - Server crash, ASAN failures; MDEV-15272 - Server crash +rpl.rpl_mixed_mixing_engines : MDEV-21266 - Timeout +rpl.rpl_mysql_upgrade : Modified in 10.4.16 +rpl.rpl_non_direct_row_mixing_engines : MDEV-16561 - Timeout in master_pos_wait +rpl.rpl_old_master : MDEV-22956 - Failing assertion +rpl.rpl_parallel : MDEV-10653 - Timeouts +rpl.rpl_parallel2 : MDEV-17390 - Operation cannot be performed +rpl.rpl_parallel_conflicts : MDEV-15272 - Server crash +rpl.rpl_parallel_mdev6589 : MDEV-12979 - Assertion failure +rpl.rpl_parallel_multilevel : MDEV-20160 - Server crash +rpl.rpl_parallel_multilevel2 : MDEV-14723 - Timeout +rpl.rpl_parallel_optimistic : MDEV-15278 - Failed to sync with master +rpl.rpl_parallel_optimistic_nobinlog : MDEV-15278 - Failed to sync with master +rpl.rpl_parallel_optimistic_until : MDEV-23021 - Query didn't return a result set +rpl.rpl_parallel_retry : MDEV-11119 - Crash; MDEV-17109 - Timeout; modified in 10.4.16 +rpl.rpl_parallel_temptable : MDEV-10356 - Crash; MDEV-19076 - Wrong result +rpl.rpl_partition_innodb : MDEV-10417 - Fails on Mips +rpl.rpl_password_boundaries : MDEV-11534 - Slave IO warnings +rpl.rpl_read_only : MDEV-20159 - Assertion failure +rpl.rpl_rewrt_db : MDEV-24060 - Server did not start +rpl.rpl_row_001 : MDEV-16653 - MTR's internal check fails +rpl.rpl_row_basic_11bugs : MDEV-12171 - Server failed to start +rpl.rpl_row_basic_2myisam : MDEV-13875 - command "diff_files" failed +rpl.rpl_row_corruption : MDEV-21569 - mutex: LOCK_global_system_variables unlocking +rpl.rpl_row_drop_create_temp_table : MDEV-14487 - Wrong result +rpl.rpl_row_end_of_statement_loss : MDEV-21237 - Server crash +rpl.rpl_row_img_blobs : MDEV-13875 - command "diff_files" failed +rpl.rpl_row_img_eng_min : MDEV-13875 - diff_files failed +rpl.rpl_row_img_eng_noblob : MDEV-13875 - command "diff_files" failed +rpl.rpl_row_index_choice : MDEV-15196 - Slave crash +rpl.rpl_row_sp001 : MDEV-9329 - Fails on Ubuntu/s390x +rpl.rpl_row_until : MDEV-14052 - Master will not send events with checksum +rpl.rpl_semi_sync : MDEV-11220 - Wrong result +rpl.rpl_semi_sync_after_sync : MDEV-14366 - Wrong result +rpl.rpl_semi_sync_after_sync_row : MDEV-14366 - Wrong result +rpl.rpl_semi_sync_event_after_sync : MDEV-11806 - warnings +rpl.rpl_semi_sync_skip_repl : MDEV-23371 - Server crash +rpl.rpl_semi_sync_uninstall_plugin : MDEV-7140 - Assorted failures +rpl.rpl_semi_sync_wait_no_slave : MDEV-20159 - Assertion failure +rpl.rpl_semi_sync_wait_point : MDEV-11807 - timeout in wait condition +rpl.rpl_semisync_ali_issues : MDEV-16272 - Wrong result +rpl.rpl_show_slave_hosts : MDEV-10681 - Crash +rpl.rpl_shutdown_wait_slaves : MDEV-22517 - Timeout on sync_with_master +rpl.rpl_skip_replication : MDEV-23372 - Extra warning +rpl.rpl_slave_grp_exec : MDEV-10514 - Deadlock; re-enabled in 10.4.16; modified in 10.4.16 +rpl.rpl_slave_load_in : MDEV-20159 - Assertion failure +rpl.rpl_slave_load_tmpdir_not_exist : MDEV-23372 - Extra warning +rpl.rpl_slow_query_log : MDEV-13250 - Test abort +rpl.rpl_sp_effects : MDEV-13249 - Crash +rpl.rpl_start_stop_slave : MDEV-13567 - Sync slave timeout; modified in 10.4.16 +rpl.rpl_stm_relay_ign_space : MDEV-14360 - Test assertion +rpl.rpl_stm_stop_middle_group : MDEV-13791 - Server crash +rpl.rpl_sync : MDEV-10633 - Database page corruption +rpl.rpl_temporary_error2 : MDEV-10634 - Wrong number of retries +rpl.rpl_test_framework : MDEV-19368 - mysqltest failed but provided no output +rpl.rpl_trigger : MDEV-18055 - Wrong result +rpl.rpl_truncate_3innodb : MDEV-19454 - Syntax error +rpl.rpl_upgrade_master_info : MDEV-16567 - Assertion failure +rpl.rpl_user_variables : MDEV-20522 - Wrong result +rpl.rpl_variables : MDEV-20150 - Server crash +rpl.sec_behind_master-5114 : MDEV-13878 - Wrong result +rpl.show_status_stop_slave_race-7126 : Modified in 10.4.16 #----------------------------------------------------------------------- -rpl-tokudb.* : MDEV-14354 - Tests fail with tcmalloc +rpl-tokudb.* : MDEV-14354 - Tests failing with tcmalloc rpl-tokudb.rpl_deadlock_tokudb : MDEV-20529 - mysqltest failed but provided no output rpl-tokudb.rpl_tokudb_commit_after_flush : MDEV-16966 - Server crash @@ -929,22 +826,19 @@ spider.basic_sql : MDEV-11186 - Internal check fails #----------------------------------------------------------------------- -spider/bg.direct_aggregate : MDEV-7098 - Packets out of order -spider/bg.direct_aggregate_part : MDEV-7098 - Trying to unlock mutex that wasn't locked -spider/bg.ha : MDEV-9329 - failures on s390x -spider/bg.ha_part : MDEV-9329 - Fails on Ubuntu/s390x -spider/bg.spider3_fixes : MDEV-12639 - Syntax error -spider/bg.spider3_fixes_part : MDEV-7098 - Trying to unlock mutex -spider/bg.spider_fixes : MDEV-7098 -Mutex problem, MDEV-9329 - failures on s390x -spider/bg.spider_fixes_part : MDEV-7098 - Trying to unlock mutex that wasn't locked -spider/bg.vp_fixes : MDEV-9329 - Fails on Ubuntu/s390x +spider/bg.* : MDEV-24059 - Timeout +spider/bg.ha : MDEV-9329 - failures on s390x +spider/bg.ha_part : MDEV-9329 - Fails on Ubuntu/s390x +spider/bg.spider3_fixes : MDEV-12639 - Syntax error +spider/bg.spider_fixes : MDEV-9329 - failures on s390x +spider/bg.vp_fixes : MDEV-9329 - Fails on Ubuntu/s390x #----------------------------------------------------------------------- -spider/bugfix.mdev_20502 : Added in 10.4.13 -spider/bugfix.mdev_21884 : Added in 10.4.13 -spider/bugfix.return_found_rows_insert : Modified in 10.4.13 -spider/bugfix.return_found_rows_update : Modified in 10.4.13 +spider/bugfix.direct_sql_with_comma_pwd : Added in 10.4.16 +spider/bugfix.mdev_20100 : Added in 10.4.16 +spider/bugfix.mdev_22246 : Added in 10.4.16 +spider/bugfix.xa_cmd : Added in 10.4.16 #----------------------------------------------------------------------- @@ -952,12 +846,10 @@ spider/handler.* : MDEV-10987, MDEV-10990 - Tests have not been maintained #----------------------------------------------------------------------- -sql_sequence.alter : Modified in 10.4.14 sql_sequence.concurrent_create : MDEV-16635 - Server crash -sql_sequence.create : Modified in 10.4.14 -sql_sequence.kill : MDEV-23393 - Server crash; added in 10.4.14 +sql_sequence.kill : MDEV-23393 - Server crash +sql_sequence.next : Modified in 10.4.16 sql_sequence.read_only : MDEV-22956 - Failing assertion -sql_sequence.rebuild : Modified in 10.4.13 #----------------------------------------------------------------------- @@ -965,27 +857,24 @@ storage_engine.* : Tests are not always timely maintained #----------------------------------------------------------------------- -stress.* : Added to the main set in 10.4.14 stress.ddl_innodb : MDEV-10635 - Testcase timeout -stress.misc : Added in 10.4.14 #----------------------------------------------------------------------- -sys_vars.alter_algorithm_basic : Added in 10.4.13 sys_vars.autocommit_func2 : MDEV-9329 - Fails on Ubuntu/s390x sys_vars.host_cache_size_auto : MDEV-20112 - Wrong result sys_vars.innodb_buffer_pool_dump_at_shutdown_basic : MDEV-14280 - Unexpected error sys_vars.innodb_checksum_algorithm_basic : MDEV-21568 - Errno: 2000 -sys_vars.innodb_instant_alter_column_allowed_basic : Added in 10.4.13 sys_vars.keep_files_on_create_basic : MDEV-10676 - timeout sys_vars.log_slow_admin_statements_func : MDEV-12235 - Server crash -sys_vars.max_sort_length_basic : Modified in 10.4.14 -sys_vars.optimizer_switch_basic : Modified in 10.4.14 -sys_vars.rpl_init_slave_func : MDEV-10149 - Test assertion -sys_vars.session_track_system_variables_basic : Modified in 10.4.14 +sys_vars.replicate_do_db_basic : Modified in 10.4.16 +sys_vars.rpl_init_slave_func : Modified in 10.4.16 +sys_vars.session_track_system_variables_basic : Modified in 10.4.16 sys_vars.slow_query_log_func : MDEV-14273 - Wrong result sys_vars.thread_cache_size_func : MDEV-11775 - Wrong result sys_vars.wait_timeout_func : MDEV-12896 - Wrong result +sys_vars.wsrep_cluster_address_basic : Modified in 10.4.16 +sys_vars.wsrep_on_basic : Configuration deleted in 10.4.16 #----------------------------------------------------------------------- @@ -1009,7 +898,6 @@ tokudb.locks-select-update-1 : MDEV-13406 - Lock wait timeout tokudb.rows-32m-rand-insert : MDEV-12640 - Crash tokudb.rows-32m-seq-insert : MDEV-12640 - Crash tokudb.savepoint-5 : MDEV-15280 - Wrong result -tokudb.type_blob : Modified in 10.4.13 tokudb.type_datetime : MDEV-15193 - Wrong result #----------------------------------------------------------------------- @@ -1028,13 +916,12 @@ tokudb_bugs.frm_store : MDEV-12823 - Valgrind tokudb_bugs.frm_store2 : MDEV-12823 - Valgrind tokudb_bugs.frm_store3 : MDEV-12823 - Valgrind tokudb_bugs.xa : MDEV-11804 - Lock wait timeout -tokudb_bugs.xa-3 : MDEV-22512 - Server failed to restart -tokudb_bugs.xa-4 : MDEV-22512 - Server failed to restart +tokudb_bugs.xa-3 : MDEV-22512 - Server failed to restart (fixed in 10.5+) +tokudb_bugs.xa-4 : MDEV-22512 - Server failed to restart (fixed in 10.5+) #----------------------------------------------------------------------- -tokudb_parts.partition_alter4_tokudb : MDEV-12640 - Lost connection -tokudb_parts.partition_auto_increment_tokudb : Include file modified in 10.4.14 +tokudb_parts.partition_alter4_tokudb : MDEV-12640 - Lost connection #----------------------------------------------------------------------- @@ -1060,43 +947,29 @@ unit.mf_iocache : MDEV-20952 - ASAN stack-buffer-overflow vcol.not_supported : MDEV-10639 - Testcase timeout vcol.vcol_keys_innodb : MDEV-10639 - Testcase timeout -vcol.vcol_keys_myisam : Modified in 10.4.14 -vcol.vcol_misc : MDEV-16651 - Wrong error message; modified in 10.4.14 +vcol.vcol_misc : MDEV-16651 - Wrong error message; modified in 10.4.16 #----------------------------------------------------------------------- -versioning.alter : Include file modified in 10.4.14 -versioning.auto_increment : Include file modified in 10.4.14 -versioning.commit_id : Include file modified in 10.4.14 -versioning.create : Include file modified in 10.4.14 -versioning.delete : Include file modified in 10.4.14 -versioning.delete_history : Include file modified in 10.4.14 -versioning.engines : Combinations modified in 10.4.14 -versioning.foreign : Include file modified in 10.4.14 -versioning.insert : Include file modified in 10.4.14 -versioning.online : Include file modified in 10.4.14 -versioning.partition : Modified in 10.4.14 -versioning.partition_innodb : Modified in 10.4.14 -versioning.partition_rotation : Modified in 10.4.14 -versioning.replace : Include file modified in 10.4.14 -versioning.select : Modified in 10.4.14 -versioning.select2 : Modified in 10.4.14 -versioning.sysvars : Modified in 10.4.14 -versioning.update : MDEV-22475 - Wrong result code; modified in 10.4.14 -versioning.update-big : Include file modified in 10.4.14 -versioning.view : Modified in 10.4.14 +versioning.create : Modified in 10.4.16 +versioning.select : Modified in 10.4.16 +versioning.sysvars : Modified in 10.4.16 +versioning.update : MDEV-22475 - Wrong result code +versioning.view : Modified in 10.4.16 #----------------------------------------------------------------------- -wsrep.* : suite.pm modified in 10.4.13 -wsrep.MDEV-20625 : Added in 10.4.13 +wsrep.MDEV-22443 : Added in 10.4.16 +wsrep.MDEV-23081 : Added in 10.4.16 +wsrep.MDEV-23092 : Added in 10.4.16 +wsrep.MDEV-23466 : Added in 10.4.16 wsrep.foreign_key : MDEV-14725 - WSREP has not yet prepared node +wsrep.mdev_22681 : Added in 10.4.16 wsrep.mdev_6832 : MDEV-14195 - Check testcase failed wsrep.pool_of_threads : MDEV-17345 - WSREP has not yet prepared node for application use -wsrep.trans : Modified in 10.4.13 -wsrep.variables : MDEV-17585 - Deadlock +wsrep.variables : Modified in 10.4.16 +wsrep.variables_debug : Added in 10.4.16 #----------------------------------------------------------------------- -wsrep_info.* : suite.pm modified in 10.4.13 wsrep_info.plugin : MDEV-22470 - WSREP: no nodes coming from prim view, prim not possible From 7b20aa576b9e7e9fef2700a30d3061013c9f6dac Mon Sep 17 00:00:00 2001 From: Dmitry Shulga Date: Wed, 4 Nov 2020 13:33:30 +0700 Subject: [PATCH 02/15] MDEV-24116: Fix clang 12 -Wrange-loop-analysis --- storage/innobase/lock/lock0lock.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/storage/innobase/lock/lock0lock.cc b/storage/innobase/lock/lock0lock.cc index 42ab5d061af..56c3aeecc73 100644 --- a/storage/innobase/lock/lock0lock.cc +++ b/storage/innobase/lock/lock0lock.cc @@ -5032,7 +5032,7 @@ lock_validate() lock_mutex_exit(); - for (const page_id_t page_id : pages) { + for (page_id_t page_id : pages) { lock_rec_block_validate(page_id); } From 4cbfdeca840098b9ed0d8147d43288c36743a328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 4 Nov 2020 16:55:36 +0200 Subject: [PATCH 03/15] MDEV-24109 InnoDB hangs with innodb_flush_sync=OFF MDEV-23855 broke the handling of innodb_flush_sync=OFF. That parameter is supposed to limit the page write rate in case the log capacity is being exceeded and log checkpoints are needed. With this fix, the following should pass: ./mtr --mysqld=--loose-innodb-flush-sync=0 One of our best regression tests for page flushing is encryption.innochecksum. With innodb_page_size=16k and innodb_flush_sync=OFF it would likely hang without this fix. log_sys.last_checkpoint_lsn: Declare as Atomic_relaxed so that we are allowed to read the value while not holding log_sys.mutex. buf_flush_wait_flushed(): Let the page cleaner perform the flushing also if innodb_flush_sync=OFF. After the page cleaner has completed, perform a checkpoint if it is needed, because buf_flush_sync_for_checkpoint() will not be run if innodb_flush_sync=OFF. buf_flush_ahead(): Simplify the condition. We do not really care whether buf_flush_page_cleaner() is running. buf_flush_page_cleaner(): Evaluate innodb_flush_sync at the low level. If innodb_flush_sync=OFF, rate-limit the batches to innodb_io_capacity_max pages per second. Reviewed by: Vladislav Vaintroub --- include/my_atomic_wrapper.h | 1 + .../innodb_checksum_algorithm.combinations | 2 + .../sys_vars/r/innodb_flush_sync_basic.result | 10 +- .../sys_vars/t/innodb_flush_sync_basic.test | 7 +- storage/innobase/buf/buf0flu.cc | 116 +++++++++++------- storage/innobase/include/log0log.h | 6 +- storage/innobase/log/log0log.cc | 4 +- 7 files changed, 80 insertions(+), 66 deletions(-) diff --git a/include/my_atomic_wrapper.h b/include/my_atomic_wrapper.h index 64835e30ca7..c0e18ea7c91 100644 --- a/include/my_atomic_wrapper.h +++ b/include/my_atomic_wrapper.h @@ -13,6 +13,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */ +#pragma once #ifdef __cplusplus #include /** diff --git a/mysql-test/include/innodb_checksum_algorithm.combinations b/mysql-test/include/innodb_checksum_algorithm.combinations index fd237e1190a..039bfaef676 100644 --- a/mysql-test/include/innodb_checksum_algorithm.combinations +++ b/mysql-test/include/innodb_checksum_algorithm.combinations @@ -3,9 +3,11 @@ [strict_crc32] --innodb-checksum-algorithm=strict_crc32 +--innodb-flush-sync=OFF [full_crc32] --innodb-checksum-algorithm=full_crc32 [strict_full_crc32] --innodb-checksum-algorithm=strict_full_crc32 +--innodb-flush-sync=OFF diff --git a/mysql-test/suite/sys_vars/r/innodb_flush_sync_basic.result b/mysql-test/suite/sys_vars/r/innodb_flush_sync_basic.result index 9e3f7d95eb9..f45954ae1f8 100644 --- a/mysql-test/suite/sys_vars/r/innodb_flush_sync_basic.result +++ b/mysql-test/suite/sys_vars/r/innodb_flush_sync_basic.result @@ -1,16 +1,11 @@ SET @start_global_value = @@global.innodb_flush_sync; -SELECT @start_global_value; -@start_global_value -1 Valid values are 'ON' and 'OFF' select @@global.innodb_flush_sync in (0, 1); @@global.innodb_flush_sync in (0, 1) 1 -select @@global.innodb_flush_sync; -@@global.innodb_flush_sync -1 select @@session.innodb_flush_sync; ERROR HY000: Variable 'innodb_flush_sync' is a GLOBAL variable +SET GLOBAL innodb_flush_sync = ON; show global variables like 'innodb_flush_sync'; Variable_name Value innodb_flush_sync ON @@ -87,6 +82,3 @@ INNODB_FLUSH_SYNC ON set global innodb_flush_sync='AUTO'; ERROR 42000: Variable 'innodb_flush_sync' can't be set to the value of 'AUTO' SET @@global.innodb_flush_sync = @start_global_value; -SELECT @@global.innodb_flush_sync; -@@global.innodb_flush_sync -1 diff --git a/mysql-test/suite/sys_vars/t/innodb_flush_sync_basic.test b/mysql-test/suite/sys_vars/t/innodb_flush_sync_basic.test index a73575864bd..cb91cf87d83 100644 --- a/mysql-test/suite/sys_vars/t/innodb_flush_sync_basic.test +++ b/mysql-test/suite/sys_vars/t/innodb_flush_sync_basic.test @@ -1,16 +1,15 @@ --source include/have_innodb.inc SET @start_global_value = @@global.innodb_flush_sync; -SELECT @start_global_value; # # exists as global only # --echo Valid values are 'ON' and 'OFF' select @@global.innodb_flush_sync in (0, 1); -select @@global.innodb_flush_sync; --error ER_INCORRECT_GLOBAL_LOCAL_VAR select @@session.innodb_flush_sync; +SET GLOBAL innodb_flush_sync = ON; show global variables like 'innodb_flush_sync'; show session variables like 'innodb_flush_sync'; --disable_warnings @@ -18,9 +17,6 @@ select * from information_schema.global_variables where variable_name='innodb_fl select * from information_schema.session_variables where variable_name='innodb_flush_sync'; --enable_warnings -# -# show that it's writable -# set global innodb_flush_sync='OFF'; select @@global.innodb_flush_sync; --disable_warnings @@ -74,4 +70,3 @@ set global innodb_flush_sync='AUTO'; # SET @@global.innodb_flush_sync = @start_global_value; -SELECT @@global.innodb_flush_sync; diff --git a/storage/innobase/buf/buf0flu.cc b/storage/innobase/buf/buf0flu.cc index ac6c45deeab..316c1822f0b 100644 --- a/storage/innobase/buf/buf0flu.cc +++ b/storage/innobase/buf/buf0flu.cc @@ -1681,52 +1681,55 @@ ATTRIBUTE_COLD void buf_flush_wait_flushed(lsn_t sync_lsn) mysql_mutex_lock(&buf_pool.flush_list_mutex); + if (buf_pool.get_oldest_modification(sync_lsn) < sync_lsn) + { #if 1 /* FIXME: remove this, and guarantee that the page cleaner serves us */ - if (UNIV_UNLIKELY(!buf_page_cleaner_is_active) - ut_d(|| innodb_page_cleaner_disabled_debug)) - { - for (;;) + if (UNIV_UNLIKELY(!buf_page_cleaner_is_active) + ut_d(|| innodb_page_cleaner_disabled_debug)) { - const lsn_t lsn= buf_pool.get_oldest_modification(sync_lsn); - mysql_mutex_unlock(&buf_pool.flush_list_mutex); - if (lsn >= sync_lsn) - return; - ulint n_pages= buf_flush_lists(srv_max_io_capacity, sync_lsn); - buf_flush_wait_batch_end_acquiring_mutex(false); - if (n_pages) + do { - MONITOR_INC_VALUE_CUMULATIVE(MONITOR_FLUSH_SYNC_TOTAL_PAGE, - MONITOR_FLUSH_SYNC_COUNT, - MONITOR_FLUSH_SYNC_PAGES, n_pages); - log_checkpoint(); + mysql_mutex_unlock(&buf_pool.flush_list_mutex); + ulint n_pages= buf_flush_lists(srv_max_io_capacity, sync_lsn); + buf_flush_wait_batch_end_acquiring_mutex(false); + if (n_pages) + { + MONITOR_INC_VALUE_CUMULATIVE(MONITOR_FLUSH_SYNC_TOTAL_PAGE, + MONITOR_FLUSH_SYNC_COUNT, + MONITOR_FLUSH_SYNC_PAGES, n_pages); + } + MONITOR_INC(MONITOR_FLUSH_SYNC_WAITS); + mysql_mutex_lock(&buf_pool.flush_list_mutex); } - MONITOR_INC(MONITOR_FLUSH_SYNC_WAITS); - mysql_mutex_lock(&buf_pool.flush_list_mutex); + while (buf_pool.get_oldest_modification(sync_lsn) < sync_lsn); + + goto try_checkpoint; } - return; - } - else if (UNIV_LIKELY(srv_flush_sync)) #endif - { if (buf_flush_sync_lsn < sync_lsn) { buf_flush_sync_lsn= sync_lsn; mysql_cond_signal(&buf_pool.do_flush_list); } + + do + { + tpool::tpool_wait_begin(); + thd_wait_begin(nullptr, THD_WAIT_DISKIO); + mysql_cond_wait(&buf_pool.done_flush_list, &buf_pool.flush_list_mutex); + thd_wait_end(nullptr); + tpool::tpool_wait_end(); + + MONITOR_INC(MONITOR_FLUSH_SYNC_WAITS); + } + while (buf_pool.get_oldest_modification(sync_lsn) < sync_lsn); } - while (buf_pool.get_oldest_modification(sync_lsn) < sync_lsn) - { - tpool::tpool_wait_begin(); - thd_wait_begin(nullptr, THD_WAIT_DISKIO); - mysql_cond_wait(&buf_pool.done_flush_list, &buf_pool.flush_list_mutex); - thd_wait_end(nullptr); - tpool::tpool_wait_end(); - - MONITOR_INC(MONITOR_FLUSH_SYNC_WAITS); - } - +try_checkpoint: mysql_mutex_unlock(&buf_pool.flush_list_mutex); + + if (UNIV_UNLIKELY(log_sys.last_checkpoint_lsn < sync_lsn)) + log_checkpoint(); } /** If innodb_flush_sync=ON, initiate a furious flush. @@ -1739,8 +1742,7 @@ void buf_flush_ahead(lsn_t lsn) if (recv_recovery_is_on()) recv_sys.apply(true); - if (buf_flush_sync_lsn < lsn && - UNIV_LIKELY(srv_flush_sync) && UNIV_LIKELY(buf_page_cleaner_is_active)) + if (buf_flush_sync_lsn < lsn) { mysql_mutex_lock(&buf_pool.flush_list_mutex); if (buf_flush_sync_lsn < lsn) @@ -2054,13 +2056,15 @@ static os_thread_ret_t DECLARE_THREAD(buf_flush_page_cleaner)(void*) if (UNIV_UNLIKELY(lsn_limit != 0)) { furious_flush: - buf_flush_sync_for_checkpoint(lsn_limit); - last_pages= 0; - set_timespec(abstime, 1); - continue; + if (UNIV_LIKELY(srv_flush_sync)) + { + buf_flush_sync_for_checkpoint(lsn_limit); + last_pages= 0; + set_timespec(abstime, 1); + continue; + } } - - if (srv_shutdown_state > SRV_SHUTDOWN_INITIATED) + else if (srv_shutdown_state > SRV_SHUTDOWN_INITIATED) break; mysql_cond_timedwait(&buf_pool.do_flush_list, &buf_pool.flush_list_mutex, @@ -2070,15 +2074,25 @@ furious_flush: lsn_limit= buf_flush_sync_lsn; if (UNIV_UNLIKELY(lsn_limit != 0)) - goto furious_flush; - - if (srv_shutdown_state > SRV_SHUTDOWN_INITIATED) + { + if (UNIV_LIKELY(srv_flush_sync)) + goto furious_flush; + } + else if (srv_shutdown_state > SRV_SHUTDOWN_INITIATED) break; const ulint dirty_blocks= UT_LIST_GET_LEN(buf_pool.flush_list); if (!dirty_blocks) + { + if (UNIV_UNLIKELY(lsn_limit != 0)) + { + buf_flush_sync_lsn= 0; + /* wake up buf_flush_wait_flushed() */ + mysql_cond_broadcast(&buf_pool.done_flush_list); + } continue; + } /* We perform dirty reads of the LRU+free list lengths here. Division by zero is not possible, because buf_pool.flush_list is @@ -2086,19 +2100,29 @@ furious_flush: const double dirty_pct= double(dirty_blocks) * 100.0 / double(UT_LIST_GET_LEN(buf_pool.LRU) + UT_LIST_GET_LEN(buf_pool.free)); - if (dirty_pct < srv_max_dirty_pages_pct_lwm) + if (dirty_pct < srv_max_dirty_pages_pct_lwm && !lsn_limit) continue; const lsn_t oldest_lsn= buf_pool.get_oldest_modification(0); + if (UNIV_UNLIKELY(lsn_limit != 0) && oldest_lsn >= lsn_limit) + buf_flush_sync_lsn= 0; + mysql_mutex_unlock(&buf_pool.flush_list_mutex); ulint n_flushed; - if (!srv_adaptive_flushing) + if (UNIV_UNLIKELY(lsn_limit != 0)) + { + n_flushed= buf_flush_lists(srv_max_io_capacity, lsn_limit); + /* wake up buf_flush_wait_flushed() */ + mysql_cond_broadcast(&buf_pool.done_flush_list); + goto try_checkpoint; + } + else if (!srv_adaptive_flushing) { n_flushed= buf_flush_lists(srv_io_capacity, LSN_MAX); - +try_checkpoint: if (n_flushed) { MONITOR_INC_VALUE_CUMULATIVE(MONITOR_FLUSH_BACKGROUND_TOTAL_PAGE, diff --git a/storage/innobase/include/log0log.h b/storage/innobase/include/log0log.h index 5a26b4baf7d..1a79738bc9b 100644 --- a/storage/innobase/include/log0log.h +++ b/storage/innobase/include/log0log.h @@ -37,7 +37,7 @@ Created 12/9/1995 Heikki Tuuri #include "log0types.h" #include "os0file.h" #include "span.h" -#include +#include "my_atomic_wrapper.h" #include #include @@ -615,8 +615,8 @@ public: new query step is started */ ib_uint64_t next_checkpoint_no; /*!< next checkpoint number */ - lsn_t last_checkpoint_lsn; - /*!< latest checkpoint lsn */ + /** latest completed checkpoint (protected by log_sys.mutex) */ + Atomic_relaxed last_checkpoint_lsn; lsn_t next_checkpoint_lsn; /*!< next checkpoint lsn */ ulint n_pending_checkpoint_writes; diff --git a/storage/innobase/log/log0log.cc b/storage/innobase/log/log0log.cc index e65498321e4..cd5ed353767 100644 --- a/storage/innobase/log/log0log.cc +++ b/storage/innobase/log/log0log.cc @@ -920,7 +920,7 @@ ATTRIBUTE_COLD void log_write_checkpoint_info(lsn_t end_lsn) DBUG_PRINT("ib_log", ("checkpoint ended at " LSN_PF ", flushed to " LSN_PF, - log_sys.last_checkpoint_lsn, + lsn_t{log_sys.last_checkpoint_lsn}, log_sys.get_flushed_lsn())); MONITOR_INC(MONITOR_NUM_CHECKPOINT); @@ -1235,7 +1235,7 @@ log_print( lsn, log_sys.get_flushed_lsn(), pages_flushed, - log_sys.last_checkpoint_lsn); + lsn_t{log_sys.last_checkpoint_lsn}); current_time = time(NULL); From f424eb974d2cf5fe875fb41129ee2e638c67eebe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Thu, 5 Nov 2020 11:41:43 +0200 Subject: [PATCH 04/15] Clean up the merge of MDEV-22494 The merge commit f2a944516ea8fd3de1d79d46da5aa1c8a32cd78d included some incorrect conflict resolution and left an unused function wsrep_abort_slave_trx(). Also, we will clean up wsrep_innobase_kill_one_trx() a little. --- storage/innobase/handler/ha_innodb.cc | 25 ++---------------------- storage/innobase/include/ha_prototypes.h | 4 +--- 2 files changed, 3 insertions(+), 26 deletions(-) diff --git a/storage/innobase/handler/ha_innodb.cc b/storage/innobase/handler/ha_innodb.cc index c7e65abb0c7..ccd46dd88b6 100644 --- a/storage/innobase/handler/ha_innodb.cc +++ b/storage/innobase/handler/ha_innodb.cc @@ -18682,24 +18682,6 @@ static struct st_mysql_storage_engine innobase_storage_engine= { MYSQL_HANDLERTON_INTERFACE_VERSION }; #ifdef WITH_WSREP -void -wsrep_abort_slave_trx( -/*==================*/ - wsrep_seqno_t bf_seqno, - wsrep_seqno_t victim_seqno) -{ - WSREP_ERROR("Trx %lld tries to abort slave trx %lld. This could be " - "caused by:\n\t" - "1) unsupported configuration options combination, please check documentation.\n\t" - "2) a bug in the code.\n\t" - "3) a database corruption.\n Node consistency compromized, " - "need to abort. Restart the node to resync with cluster.", - (long long)bf_seqno, (long long)victim_seqno); - abort(); -} - -/*******************************************************************//** -This function is used to kill one transaction in BF. */ /** This function is used to kill one transaction. @@ -18724,10 +18706,7 @@ comparison as in the local certification failure. @param[in] bf_thd Brute force (BF) thread @param[in,out] victim_trx Vimtim trx to be killed @param[in] signal Should victim be signaled */ -UNIV_INTERN -int -wsrep_innobase_kill_one_trx(THD* bf_thd, trx_t *victim_trx, - bool signal) +int wsrep_innobase_kill_one_trx(THD *bf_thd, trx_t *victim_trx, bool signal) { ut_ad(bf_thd); ut_ad(victim_trx); @@ -18736,7 +18715,7 @@ wsrep_innobase_kill_one_trx(THD* bf_thd, trx_t *victim_trx, DBUG_ENTER("wsrep_innobase_kill_one_trx"); - THD *thd= (THD *) victim_trx->mysql_thd; + THD *thd= victim_trx->mysql_thd; ut_ad(thd); /* Note that bf_trx might not exist here e.g. on MDL conflict case (test: galera_concurrent_ctas). Similarly, BF thread diff --git a/storage/innobase/include/ha_prototypes.h b/storage/innobase/include/ha_prototypes.h index 0632c0c5140..35250f99df9 100644 --- a/storage/innobase/include/ha_prototypes.h +++ b/storage/innobase/include/ha_prototypes.h @@ -226,9 +226,7 @@ innobase_casedn_str( char* a); /*!< in/out: string to put in lower case */ #ifdef WITH_WSREP -int -wsrep_innobase_kill_one_trx(THD *bf_thd, trx_t *victim_trx, - bool signal); +int wsrep_innobase_kill_one_trx(THD *bf_thd, trx_t *victim_trx, bool signal); ulint wsrep_innobase_mysql_sort(int mysql_type, uint charset_number, unsigned char* str, ulint str_length, unsigned int buf_length); From 19a847d40c03213fd05693b1b43d974ce0bfe6bf Mon Sep 17 00:00:00 2001 From: Oleksandr Byelkin Date: Thu, 5 Nov 2020 17:37:55 +0100 Subject: [PATCH 05/15] MDEV-19838: followup to make happy following protocol implementations: - mysqlnd from PHP < 7.3 - mysql-connector-python any version - mysql-connector-java any version Relaxed check about garbage at the end of the packet in case of no parameters. Added check for array binding. Fixed test according to the new paradigm (allow junk at the end of the packet) --- sql/sql_prepare.cc | 21 +++++++++++++++++---- tests/mysql_client_test.c | 7 +++++-- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/sql/sql_prepare.cc b/sql/sql_prepare.cc index 11edd577309..4bf8142959d 100644 --- a/sql/sql_prepare.cc +++ b/sql/sql_prepare.cc @@ -3271,10 +3271,19 @@ void mysqld_stmt_execute(THD *thd, char *packet_arg, uint packet_length) void mysqld_stmt_bulk_execute(THD *thd, char *packet_arg, uint packet_length) { uchar *packet= (uchar*)packet_arg; // GCC 4.0.1 workaround + DBUG_ENTER("mysqld_stmt_execute_bulk"); + + const uint packet_header_lenght= 4 + 2; //ID & 2 bytes of flags + + if (packet_length < packet_header_lenght) + { + my_error(ER_MALFORMED_PACKET, MYF(0)); + DBUG_VOID_RETURN; + } + ulong stmt_id= uint4korr(packet); uint flags= (uint) uint2korr(packet + 4); uchar *packet_end= packet + packet_length; - DBUG_ENTER("mysqld_stmt_execute_bulk"); if (!(thd->client_capabilities & MARIADB_CLIENT_STMT_BULK_OPERATIONS)) @@ -3282,16 +3291,18 @@ void mysqld_stmt_bulk_execute(THD *thd, char *packet_arg, uint packet_length) DBUG_PRINT("error", ("An attempt to execute bulk operation without support")); my_error(ER_UNSUPPORTED_PS, MYF(0)); + DBUG_VOID_RETURN; } /* Check for implemented parameters */ if (flags & (~STMT_BULK_FLAG_CLIENT_SEND_TYPES)) { DBUG_PRINT("error", ("unsupported bulk execute flags %x", flags)); my_error(ER_UNSUPPORTED_PS, MYF(0)); + DBUG_VOID_RETURN; } /* stmt id and two bytes of flags */ - packet+= 4 + 2; + packet+= packet_header_lenght; mysql_stmt_execute_common(thd, stmt_id, packet, packet_end, 0, TRUE, (flags & STMT_BULK_FLAG_CLIENT_SEND_TYPES)); DBUG_VOID_RETURN; @@ -3368,9 +3379,11 @@ stmt_execute_packet_sanity_check(Prepared_statement *stmt, { /* If there is no parameters, this should be normally already end - of the packet. If it's not - then error + of the packet, but it is not a problem if something left (popular + mistake in protocol implementation) because we will not read anymore + from the buffer. */ - return (packet_end > packet); + return false; } return false; } diff --git a/tests/mysql_client_test.c b/tests/mysql_client_test.c index 058168eedd5..93f23236dbc 100644 --- a/tests/mysql_client_test.c +++ b/tests/mysql_client_test.c @@ -20032,8 +20032,11 @@ static void test_mdev19838() " VALUES " "(0x1111111111111111)", -1); - /* Expecting an error if parameters are sent */ - DIE_UNLESS(rc != 0 || paramCount == 0); + /* + We allow junk at the end of the packet in case of + no parameters. So it will succeed. + */ + DIE_UNLESS(rc == 0); } mysql_stmt_close(stmt); From 2845b656a3ed058bc424ca371760fb17b2a28703 Mon Sep 17 00:00:00 2001 From: Oleksandr Byelkin Date: Thu, 5 Nov 2020 17:49:58 +0100 Subject: [PATCH 06/15] Bump the version --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index a1f0ad08a61..b451aa8a789 100644 --- a/VERSION +++ b/VERSION @@ -1,3 +1,3 @@ MYSQL_VERSION_MAJOR=10 MYSQL_VERSION_MINOR=2 -MYSQL_VERSION_PATCH=35 +MYSQL_VERSION_PATCH=36 From f81eef62e7742806e5e74b5f37f35b7cd2f82291 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Mon, 9 Nov 2020 18:47:55 +0300 Subject: [PATCH 07/15] MDEV-24117: Memory management problem in statistics state for ... IN Part#1: Revert the patch that caused it: commit 291be494744abe90f4bdf6b5a35c4c26ee8ddda5 Author: Igor Babaev Date: Thu Sep 24 22:02:00 2020 -0700 MDEV-23811: With large number of indexes optimizer chooses an inefficient plan --- mysql-test/r/range.result | 74 +------------------ mysql-test/r/range_mrr_icp.result | 74 +------------------ .../r/range_vs_index_merge_innodb.result | 2 +- mysql-test/t/range.test | 42 ----------- sql/opt_range.cc | 20 ++--- 5 files changed, 11 insertions(+), 201 deletions(-) diff --git a/mysql-test/r/range.result b/mysql-test/r/range.result index 7299982e72d..26ea2c6d323 100644 --- a/mysql-test/r/range.result +++ b/mysql-test/r/range.result @@ -1274,7 +1274,7 @@ SELECT * FROM t1 WHERE 5 <= a AND b = 3 OR 3 <= a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range a a 5 NULL 3 Using where; Using index +1 SIMPLE t1 range a a 5 NULL 4 Using where; Using index SELECT * FROM t1 WHERE 3 <= a AND a <= 5 OR 5 <= a AND b = 3 OR @@ -3054,77 +3054,5 @@ a b set eq_range_index_dive_limit=default; drop table t1; # -# MDEV-23811: Both disjunct of WHERE condition contain range conditions -# for the same index such that the second range condition -# fully covers the first one. Additionally one of the disjuncts -# contains a range condition for the other index. -# -create table t1 ( -pk int primary key auto_increment, a int, b int, -index idx1(a), index idx2(b) -); -insert into t1(a,b) values -(5,50), (1,10), (3,30), (7,70), (8,80), (4,40), (2,20), (6,60); -insert into t1(a,b) select a+10, b+100 from t1; -insert into t1(a,b) select a+20, b+200 from t1; -insert into t1(a,b) select a+30, b+300 from t1; -insert into t1(a,b) select a,b from t1; -analyze table t1; -Table Op Msg_type Msg_text -test.t1 analyze status OK -explain select * from t1 where ((a between 3 and 4) and b < 100) or (a between 2 and 5); -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx1,idx2 idx1 5 NULL 11 Using index condition; Using where -select * from t1 where ((a between 3 and 4) and b < 100) or (a between 2 and 5); -pk a b -7 2 20 -71 2 20 -3 3 30 -67 3 30 -6 4 40 -70 4 40 -1 5 50 -65 5 50 -explain select * from t1 where (a between 2 and 5) or ((a between 3 and 4) and b < 100); -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx1,idx2 idx1 5 NULL 11 Using index condition; Using where -select * from t1 where (a between 2 and 5) or ((a between 3 and 4) and b < 100); -pk a b -7 2 20 -71 2 20 -3 3 30 -67 3 30 -6 4 40 -70 4 40 -1 5 50 -65 5 50 -explain select * from t1 where (a between 3 and 4) or ((a between 2 and 5) and b < 100); -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx1,idx2 idx1 5 NULL 11 Using index condition; Using where -select * from t1 where (a between 3 and 4) or ((a between 2 and 5) and b < 100); -pk a b -7 2 20 -71 2 20 -3 3 30 -67 3 30 -6 4 40 -70 4 40 -1 5 50 -65 5 50 -explain select * from t1 where ((a between 2 and 5) and b < 100) or (a between 3 and 4); -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx1,idx2 idx1 5 NULL 11 Using index condition; Using where -select * from t1 where ((a between 2 and 5) and b < 100) or (a between 3 and 4); -pk a b -7 2 20 -71 2 20 -3 3 30 -67 3 30 -6 4 40 -70 4 40 -1 5 50 -65 5 50 -drop table t1; -# # End of 10.2 tests # diff --git a/mysql-test/r/range_mrr_icp.result b/mysql-test/r/range_mrr_icp.result index cdaaa5e8ab7..fe4eb99f31f 100644 --- a/mysql-test/r/range_mrr_icp.result +++ b/mysql-test/r/range_mrr_icp.result @@ -1276,7 +1276,7 @@ SELECT * FROM t1 WHERE 5 <= a AND b = 3 OR 3 <= a; id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range a a 5 NULL 3 Using where; Using index +1 SIMPLE t1 range a a 5 NULL 4 Using where; Using index SELECT * FROM t1 WHERE 3 <= a AND a <= 5 OR 5 <= a AND b = 3 OR @@ -3066,78 +3066,6 @@ a b set eq_range_index_dive_limit=default; drop table t1; # -# MDEV-23811: Both disjunct of WHERE condition contain range conditions -# for the same index such that the second range condition -# fully covers the first one. Additionally one of the disjuncts -# contains a range condition for the other index. -# -create table t1 ( -pk int primary key auto_increment, a int, b int, -index idx1(a), index idx2(b) -); -insert into t1(a,b) values -(5,50), (1,10), (3,30), (7,70), (8,80), (4,40), (2,20), (6,60); -insert into t1(a,b) select a+10, b+100 from t1; -insert into t1(a,b) select a+20, b+200 from t1; -insert into t1(a,b) select a+30, b+300 from t1; -insert into t1(a,b) select a,b from t1; -analyze table t1; -Table Op Msg_type Msg_text -test.t1 analyze status OK -explain select * from t1 where ((a between 3 and 4) and b < 100) or (a between 2 and 5); -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx1,idx2 idx1 5 NULL 11 Using index condition; Using where; Rowid-ordered scan -select * from t1 where ((a between 3 and 4) and b < 100) or (a between 2 and 5); -pk a b -1 5 50 -3 3 30 -6 4 40 -7 2 20 -65 5 50 -67 3 30 -70 4 40 -71 2 20 -explain select * from t1 where (a between 2 and 5) or ((a between 3 and 4) and b < 100); -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx1,idx2 idx1 5 NULL 11 Using index condition; Using where; Rowid-ordered scan -select * from t1 where (a between 2 and 5) or ((a between 3 and 4) and b < 100); -pk a b -1 5 50 -3 3 30 -6 4 40 -7 2 20 -65 5 50 -67 3 30 -70 4 40 -71 2 20 -explain select * from t1 where (a between 3 and 4) or ((a between 2 and 5) and b < 100); -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx1,idx2 idx1 5 NULL 11 Using index condition; Using where; Rowid-ordered scan -select * from t1 where (a between 3 and 4) or ((a between 2 and 5) and b < 100); -pk a b -1 5 50 -3 3 30 -6 4 40 -7 2 20 -65 5 50 -67 3 30 -70 4 40 -71 2 20 -explain select * from t1 where ((a between 2 and 5) and b < 100) or (a between 3 and 4); -id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE t1 range idx1,idx2 idx1 5 NULL 11 Using index condition; Using where; Rowid-ordered scan -select * from t1 where ((a between 2 and 5) and b < 100) or (a between 3 and 4); -pk a b -1 5 50 -3 3 30 -6 4 40 -7 2 20 -65 5 50 -67 3 30 -70 4 40 -71 2 20 -drop table t1; -# # End of 10.2 tests # set optimizer_switch=@mrr_icp_extra_tmp; diff --git a/mysql-test/r/range_vs_index_merge_innodb.result b/mysql-test/r/range_vs_index_merge_innodb.result index 916c30bb770..581f512768c 100644 --- a/mysql-test/r/range_vs_index_merge_innodb.result +++ b/mysql-test/r/range_vs_index_merge_innodb.result @@ -369,7 +369,7 @@ WHERE ((ID < 200) AND (Name LIKE 'Ha%' OR (Country > 'A' AND Country < 'ARG'))) OR ((ID BETWEEN 100 AND 200) AND (Name LIKE 'Pa%' OR (Population > 103000 AND Population < 104000))); id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE City range PRIMARY,Population,Country,Name PRIMARY 4 NULL 200 Using where +1 SIMPLE City index_merge PRIMARY,Population,Country,Name Name,Population,PRIMARY 39,4,4 NULL 307 Using sort_union(Name,Population,PRIMARY); Using where SELECT * FROM City USE INDEX () WHERE ((ID < 10) AND (Name LIKE 'H%' OR (Country > 'A' AND Country < 'ARG'))) OR ((ID BETWEEN 100 AND 110) AND diff --git a/mysql-test/t/range.test b/mysql-test/t/range.test index 0d2fbe24835..67d876d5f10 100644 --- a/mysql-test/t/range.test +++ b/mysql-test/t/range.test @@ -2095,48 +2095,6 @@ set eq_range_index_dive_limit=default; drop table t1; ---echo # ---echo # MDEV-23811: Both disjunct of WHERE condition contain range conditions ---echo # for the same index such that the second range condition ---echo # fully covers the first one. Additionally one of the disjuncts ---echo # contains a range condition for the other index. ---echo # - -create table t1 ( - pk int primary key auto_increment, a int, b int, - index idx1(a), index idx2(b) -); -insert into t1(a,b) values - (5,50), (1,10), (3,30), (7,70), (8,80), (4,40), (2,20), (6,60); -insert into t1(a,b) select a+10, b+100 from t1; -insert into t1(a,b) select a+20, b+200 from t1; -insert into t1(a,b) select a+30, b+300 from t1; -insert into t1(a,b) select a,b from t1; - -analyze table t1; - -let $q1= -select * from t1 where ((a between 3 and 4) and b < 100) or (a between 2 and 5); -eval explain $q1; -eval $q1; - -let $q2= -select * from t1 where (a between 2 and 5) or ((a between 3 and 4) and b < 100); -eval explain $q2; -eval $q2; - -let $q3= -select * from t1 where (a between 3 and 4) or ((a between 2 and 5) and b < 100); -eval explain $q3; -eval $q3; - -let $q4= -select * from t1 where ((a between 2 and 5) and b < 100) or (a between 3 and 4); -eval explain $q4; -eval $q4; - -drop table t1; - --echo # --echo # End of 10.2 tests --echo # diff --git a/sql/opt_range.cc b/sql/opt_range.cc index cd58202ef5f..e933d2af355 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -1852,9 +1852,6 @@ SEL_ARG::SEL_ARG(SEL_ARG &arg) :Sql_alloc() next_key_part=arg.next_key_part; max_part_no= arg.max_part_no; use_count=1; elements=1; - next= 0; - if (next_key_part) - ++next_key_part->use_count; } @@ -8872,15 +8869,9 @@ tree_or(RANGE_OPT_PARAM *param,SEL_TREE *tree1,SEL_TREE *tree2) } bool no_imerge_from_ranges= FALSE; - SEL_TREE *rt1= tree1; - SEL_TREE *rt2= tree2; /* Build the range part of the tree for the formula (1) */ if (sel_trees_can_be_ored(param, tree1, tree2, &ored_keys)) { - if (no_merges1) - rt1= new SEL_TREE(tree1, TRUE, param); - if (no_merges2) - rt2= new SEL_TREE(tree2, TRUE, param); bool must_be_ored= sel_trees_must_be_ored(param, tree1, tree2, ored_keys); no_imerge_from_ranges= must_be_ored; @@ -8938,6 +8929,12 @@ tree_or(RANGE_OPT_PARAM *param,SEL_TREE *tree1,SEL_TREE *tree2) else if (!no_ranges1 && !no_ranges2 && !no_imerge_from_ranges) { /* Build the imerge part of the tree for the formula (1) */ + SEL_TREE *rt1= tree1; + SEL_TREE *rt2= tree2; + if (no_merges1) + rt1= new SEL_TREE(tree1, TRUE, param); + if (no_merges2) + rt2= new SEL_TREE(tree2, TRUE, param); if (!rt1 || !rt2 || result->merges.push_back(imerge_from_ranges) || imerge_from_ranges->or_sel_tree(param, rt1) || @@ -9600,11 +9597,10 @@ key_or(RANGE_OPT_PARAM *param, SEL_ARG *key1,SEL_ARG *key2) if (!tmp->next_key_part) { - SEL_ARG *key2_next= key2->next; if (key2->use_count) { SEL_ARG *key2_cpy= new SEL_ARG(*key2); - if (!key2_cpy) + if (key2_cpy) return 0; key2= key2_cpy; } @@ -9625,7 +9621,7 @@ key_or(RANGE_OPT_PARAM *param, SEL_ARG *key1,SEL_ARG *key2) Move on to next range in key2 */ key2->increment_use_count(-1); // Free not used tree - key2=key2_next; + key2=key2->next; continue; } else From 1404f3bea796c8479cf401cb36d518658600ddca Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Mon, 9 Nov 2020 19:27:56 +0300 Subject: [PATCH 08/15] MDEV-24117: Memory management problem ...: Add a testcase Add a testcase. --- mysql-test/r/range.result | 33 ++++++++++++++++++++++ mysql-test/r/range_mrr_icp.result | 33 ++++++++++++++++++++++ mysql-test/t/range.test | 46 +++++++++++++++++++++++++++++++ 3 files changed, 112 insertions(+) diff --git a/mysql-test/r/range.result b/mysql-test/r/range.result index 26ea2c6d323..b3324601e47 100644 --- a/mysql-test/r/range.result +++ b/mysql-test/r/range.result @@ -3054,5 +3054,38 @@ a b set eq_range_index_dive_limit=default; drop table t1; # +# MDEV-24117: Memory management problem in statistics state... +# (just the testcase) +# +create table t0(a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t1(a int); +insert into t1 +select A.a + B.a* 10 + C.a * 100 + D.a * 1000 +from t0 A, t0 B, t0 C, t0 D +where D.a<4; +create table t2 ( +a int, +b int, +key(a) +); +insert into t2 values (1,1),(2,2),(3,3); +set @query=(select group_concat(a) from t1); +set @tmp_24117= @@max_session_mem_used; +# +# On debug build, the usage was +# - 2.8M without the bug +# - 1G with the bug. +set max_session_mem_used=64*1024*1024; +set @query=concat('explain select * from t2 where a in (', @query, ')'); +prepare s from @query; +# This should not fail with an error: +execute s; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t2 ALL a NULL NULL NULL 3 Using where +set max_session_mem_used=@tmp_24117; +deallocate prepare s; +drop table t0,t1,t2; +# # End of 10.2 tests # diff --git a/mysql-test/r/range_mrr_icp.result b/mysql-test/r/range_mrr_icp.result index fe4eb99f31f..d614a3397ee 100644 --- a/mysql-test/r/range_mrr_icp.result +++ b/mysql-test/r/range_mrr_icp.result @@ -3066,6 +3066,39 @@ a b set eq_range_index_dive_limit=default; drop table t1; # +# MDEV-24117: Memory management problem in statistics state... +# (just the testcase) +# +create table t0(a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); +create table t1(a int); +insert into t1 +select A.a + B.a* 10 + C.a * 100 + D.a * 1000 +from t0 A, t0 B, t0 C, t0 D +where D.a<4; +create table t2 ( +a int, +b int, +key(a) +); +insert into t2 values (1,1),(2,2),(3,3); +set @query=(select group_concat(a) from t1); +set @tmp_24117= @@max_session_mem_used; +# +# On debug build, the usage was +# - 2.8M without the bug +# - 1G with the bug. +set max_session_mem_used=64*1024*1024; +set @query=concat('explain select * from t2 where a in (', @query, ')'); +prepare s from @query; +# This should not fail with an error: +execute s; +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t2 ALL a NULL NULL NULL 3 Using where +set max_session_mem_used=@tmp_24117; +deallocate prepare s; +drop table t0,t1,t2; +# # End of 10.2 tests # set optimizer_switch=@mrr_icp_extra_tmp; diff --git a/mysql-test/t/range.test b/mysql-test/t/range.test index 67d876d5f10..f34ac2049e1 100644 --- a/mysql-test/t/range.test +++ b/mysql-test/t/range.test @@ -2095,6 +2095,52 @@ set eq_range_index_dive_limit=default; drop table t1; +--echo # +--echo # MDEV-24117: Memory management problem in statistics state... +--echo # (just the testcase) +--echo # + +create table t0(a int); +insert into t0 values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9); + +create table t1(a int); + +# 4K rows +insert into t1 +select A.a + B.a* 10 + C.a * 100 + D.a * 1000 +from t0 A, t0 B, t0 C, t0 D +where D.a<4; + +create table t2 ( + a int, + b int, + key(a) +); + +insert into t2 values (1,1),(2,2),(3,3); + +set @query=(select group_concat(a) from t1); + +set @tmp_24117= @@max_session_mem_used; + +--echo # +--echo # On debug build, the usage was +--echo # - 2.8M without the bug +--echo # - 1G with the bug. + +set max_session_mem_used=64*1024*1024; + +set @query=concat('explain select * from t2 where a in (', @query, ')'); + +prepare s from @query; + +--echo # This should not fail with an error: +execute s; +set max_session_mem_used=@tmp_24117; + +deallocate prepare s; + +drop table t0,t1,t2; --echo # --echo # End of 10.2 tests --echo # From 10b2d5726fa21675362596ff4f52f2eca748bdc9 Mon Sep 17 00:00:00 2001 From: Monty Date: Mon, 9 Nov 2020 19:36:10 +0200 Subject: [PATCH 09/15] Fixed failing maria.create test This comes from a wrong merge from 10.3 --- mysql-test/suite/maria/create.test | 5 ----- 1 file changed, 5 deletions(-) diff --git a/mysql-test/suite/maria/create.test b/mysql-test/suite/maria/create.test index 3e0be3ebb9b..3937d800fed 100644 --- a/mysql-test/suite/maria/create.test +++ b/mysql-test/suite/maria/create.test @@ -86,11 +86,6 @@ flush tables; --error 1,ER_TABLE_EXISTS_ERROR --eval CREATE TABLE MDEV_23222 (i INT) DATA DIRECTORY = '$MYSQL_TMP_DIR', ENGINE=Aria TRANSACTIONAL=1; DROP TABLE t1; ---disable_warnings ---remove_file $mysqld_datadir/test/MDEV_23222.MAD ---replace_result $MYSQL_TMP_DIR MYSQL_TMP_DIR ---remove_file $MYSQL_TMP_DIR/MDEV_23222.MAD ---enable_warnings --echo # --echo # End of 10.3 tests From bea84aefb0563a10a310ea81d46c372919345c10 Mon Sep 17 00:00:00 2001 From: Igor Babaev Date: Mon, 9 Nov 2020 13:51:32 -0800 Subject: [PATCH 10/15] MDEV-23811: With large number of indexes optimizer chooses an inefficient plan This bug could manifest itself for a query with WHERE condition containing top level OR formula such that each conjunct contained a single-range condition supported by the same index. One of these range conditions must be fully covered by another range condition that is used later in the OR formula. Additionally at least one of these condition should be ANDed with a sargable range condition supported by a different index. There were several attempts to fix related problems for OR conditions after the backport of range optimizer code from MySQL (commit 0e19f3e36f7842583feb6bead2c2600cd620bced). Unfortunately the first of these fixes contained typo remained unnoticed until recently. This typo bug led to rejection of valid range accesses. This patch fixed this typo bug. The fix revealed another two bugs: one in a constructor for SEL_ARG, the other in the function tree_or(). Both are fixed in this patch. --- mysql-test/r/range.result | 72 +++++++++++++++++++ mysql-test/r/range_mrr_icp.result | 72 +++++++++++++++++++ .../r/range_vs_index_merge_innodb.result | 2 +- mysql-test/t/range.test | 42 +++++++++++ sql/opt_range.cc | 10 ++- 5 files changed, 194 insertions(+), 4 deletions(-) diff --git a/mysql-test/r/range.result b/mysql-test/r/range.result index b3324601e47..9ea0dc12a0b 100644 --- a/mysql-test/r/range.result +++ b/mysql-test/r/range.result @@ -3087,5 +3087,77 @@ set max_session_mem_used=@tmp_24117; deallocate prepare s; drop table t0,t1,t2; # +# MDEV-23811: Both disjunct of WHERE condition contain range conditions +# for the same index such that the second range condition +# fully covers the first one. Additionally one of the disjuncts +# contains a range condition for the other index. +# +create table t1 ( +pk int primary key auto_increment, a int, b int, +index idx1(a), index idx2(b) +); +insert into t1(a,b) values +(5,50), (1,10), (3,30), (7,70), (8,80), (4,40), (2,20), (6,60); +insert into t1(a,b) select a+10, b+100 from t1; +insert into t1(a,b) select a+20, b+200 from t1; +insert into t1(a,b) select a+30, b+300 from t1; +insert into t1(a,b) select a,b from t1; +analyze table t1; +Table Op Msg_type Msg_text +test.t1 analyze status OK +explain select * from t1 where ((a between 3 and 4) and b < 100) or (a between 2 and 5); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range idx1,idx2 idx1 5 NULL 11 Using index condition; Using where +select * from t1 where ((a between 3 and 4) and b < 100) or (a between 2 and 5); +pk a b +7 2 20 +71 2 20 +3 3 30 +67 3 30 +6 4 40 +70 4 40 +1 5 50 +65 5 50 +explain select * from t1 where (a between 2 and 5) or ((a between 3 and 4) and b < 100); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range idx1,idx2 idx1 5 NULL 11 Using index condition; Using where +select * from t1 where (a between 2 and 5) or ((a between 3 and 4) and b < 100); +pk a b +7 2 20 +71 2 20 +3 3 30 +67 3 30 +6 4 40 +70 4 40 +1 5 50 +65 5 50 +explain select * from t1 where (a between 3 and 4) or ((a between 2 and 5) and b < 100); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range idx1,idx2 idx1 5 NULL 11 Using index condition; Using where +select * from t1 where (a between 3 and 4) or ((a between 2 and 5) and b < 100); +pk a b +7 2 20 +71 2 20 +3 3 30 +67 3 30 +6 4 40 +70 4 40 +1 5 50 +65 5 50 +explain select * from t1 where ((a between 2 and 5) and b < 100) or (a between 3 and 4); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range idx1,idx2 idx1 5 NULL 11 Using index condition; Using where +select * from t1 where ((a between 2 and 5) and b < 100) or (a between 3 and 4); +pk a b +7 2 20 +71 2 20 +3 3 30 +67 3 30 +6 4 40 +70 4 40 +1 5 50 +65 5 50 +drop table t1; +# # End of 10.2 tests # diff --git a/mysql-test/r/range_mrr_icp.result b/mysql-test/r/range_mrr_icp.result index d614a3397ee..55613261ce9 100644 --- a/mysql-test/r/range_mrr_icp.result +++ b/mysql-test/r/range_mrr_icp.result @@ -3099,6 +3099,78 @@ set max_session_mem_used=@tmp_24117; deallocate prepare s; drop table t0,t1,t2; # +# MDEV-23811: Both disjunct of WHERE condition contain range conditions +# for the same index such that the second range condition +# fully covers the first one. Additionally one of the disjuncts +# contains a range condition for the other index. +# +create table t1 ( +pk int primary key auto_increment, a int, b int, +index idx1(a), index idx2(b) +); +insert into t1(a,b) values +(5,50), (1,10), (3,30), (7,70), (8,80), (4,40), (2,20), (6,60); +insert into t1(a,b) select a+10, b+100 from t1; +insert into t1(a,b) select a+20, b+200 from t1; +insert into t1(a,b) select a+30, b+300 from t1; +insert into t1(a,b) select a,b from t1; +analyze table t1; +Table Op Msg_type Msg_text +test.t1 analyze status OK +explain select * from t1 where ((a between 3 and 4) and b < 100) or (a between 2 and 5); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range idx1,idx2 idx1 5 NULL 11 Using index condition; Using where; Rowid-ordered scan +select * from t1 where ((a between 3 and 4) and b < 100) or (a between 2 and 5); +pk a b +1 5 50 +3 3 30 +6 4 40 +7 2 20 +65 5 50 +67 3 30 +70 4 40 +71 2 20 +explain select * from t1 where (a between 2 and 5) or ((a between 3 and 4) and b < 100); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range idx1,idx2 idx1 5 NULL 11 Using index condition; Using where; Rowid-ordered scan +select * from t1 where (a between 2 and 5) or ((a between 3 and 4) and b < 100); +pk a b +1 5 50 +3 3 30 +6 4 40 +7 2 20 +65 5 50 +67 3 30 +70 4 40 +71 2 20 +explain select * from t1 where (a between 3 and 4) or ((a between 2 and 5) and b < 100); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range idx1,idx2 idx1 5 NULL 11 Using index condition; Using where; Rowid-ordered scan +select * from t1 where (a between 3 and 4) or ((a between 2 and 5) and b < 100); +pk a b +1 5 50 +3 3 30 +6 4 40 +7 2 20 +65 5 50 +67 3 30 +70 4 40 +71 2 20 +explain select * from t1 where ((a between 2 and 5) and b < 100) or (a between 3 and 4); +id select_type table type possible_keys key key_len ref rows Extra +1 SIMPLE t1 range idx1,idx2 idx1 5 NULL 11 Using index condition; Using where; Rowid-ordered scan +select * from t1 where ((a between 2 and 5) and b < 100) or (a between 3 and 4); +pk a b +1 5 50 +3 3 30 +6 4 40 +7 2 20 +65 5 50 +67 3 30 +70 4 40 +71 2 20 +drop table t1; +# # End of 10.2 tests # set optimizer_switch=@mrr_icp_extra_tmp; diff --git a/mysql-test/r/range_vs_index_merge_innodb.result b/mysql-test/r/range_vs_index_merge_innodb.result index 581f512768c..916c30bb770 100644 --- a/mysql-test/r/range_vs_index_merge_innodb.result +++ b/mysql-test/r/range_vs_index_merge_innodb.result @@ -369,7 +369,7 @@ WHERE ((ID < 200) AND (Name LIKE 'Ha%' OR (Country > 'A' AND Country < 'ARG'))) OR ((ID BETWEEN 100 AND 200) AND (Name LIKE 'Pa%' OR (Population > 103000 AND Population < 104000))); id select_type table type possible_keys key key_len ref rows Extra -1 SIMPLE City index_merge PRIMARY,Population,Country,Name Name,Population,PRIMARY 39,4,4 NULL 307 Using sort_union(Name,Population,PRIMARY); Using where +1 SIMPLE City range PRIMARY,Population,Country,Name PRIMARY 4 NULL 200 Using where SELECT * FROM City USE INDEX () WHERE ((ID < 10) AND (Name LIKE 'H%' OR (Country > 'A' AND Country < 'ARG'))) OR ((ID BETWEEN 100 AND 110) AND diff --git a/mysql-test/t/range.test b/mysql-test/t/range.test index f34ac2049e1..264f7c784ce 100644 --- a/mysql-test/t/range.test +++ b/mysql-test/t/range.test @@ -2141,6 +2141,48 @@ set max_session_mem_used=@tmp_24117; deallocate prepare s; drop table t0,t1,t2; +--echo # +--echo # MDEV-23811: Both disjunct of WHERE condition contain range conditions +--echo # for the same index such that the second range condition +--echo # fully covers the first one. Additionally one of the disjuncts +--echo # contains a range condition for the other index. +--echo # + +create table t1 ( + pk int primary key auto_increment, a int, b int, + index idx1(a), index idx2(b) +); +insert into t1(a,b) values + (5,50), (1,10), (3,30), (7,70), (8,80), (4,40), (2,20), (6,60); +insert into t1(a,b) select a+10, b+100 from t1; +insert into t1(a,b) select a+20, b+200 from t1; +insert into t1(a,b) select a+30, b+300 from t1; +insert into t1(a,b) select a,b from t1; + +analyze table t1; + +let $q1= +select * from t1 where ((a between 3 and 4) and b < 100) or (a between 2 and 5); +eval explain $q1; +eval $q1; + +let $q2= +select * from t1 where (a between 2 and 5) or ((a between 3 and 4) and b < 100); +eval explain $q2; +eval $q2; + +let $q3= +select * from t1 where (a between 3 and 4) or ((a between 2 and 5) and b < 100); +eval explain $q3; +eval $q3; + +let $q4= +select * from t1 where ((a between 2 and 5) and b < 100) or (a between 3 and 4); +eval explain $q4; +eval $q4; + +drop table t1; + --echo # --echo # End of 10.2 tests --echo # diff --git a/sql/opt_range.cc b/sql/opt_range.cc index e933d2af355..798b1f284bc 100644 --- a/sql/opt_range.cc +++ b/sql/opt_range.cc @@ -1852,6 +1852,9 @@ SEL_ARG::SEL_ARG(SEL_ARG &arg) :Sql_alloc() next_key_part=arg.next_key_part; max_part_no= arg.max_part_no; use_count=1; elements=1; + next= 0; + if (next_key_part) + ++next_key_part->use_count; } @@ -9597,10 +9600,11 @@ key_or(RANGE_OPT_PARAM *param, SEL_ARG *key1,SEL_ARG *key2) if (!tmp->next_key_part) { - if (key2->use_count) + SEL_ARG *key2_next= key2->next; + if (key2_shared) { SEL_ARG *key2_cpy= new SEL_ARG(*key2); - if (key2_cpy) + if (!key2_cpy) return 0; key2= key2_cpy; } @@ -9621,7 +9625,7 @@ key_or(RANGE_OPT_PARAM *param, SEL_ARG *key1,SEL_ARG *key2) Move on to next range in key2 */ key2->increment_use_count(-1); // Free not used tree - key2=key2->next; + key2=key2_next; continue; } else From a0536d4253ff096b82ab1da01471784b4ab3b253 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Fri, 6 Nov 2020 14:29:09 +0200 Subject: [PATCH 11/15] MDEV-24096 InnoDB assertion 'first_free <= srv_page_size - 8' MDEV-23672 (commit 7eda55619654b76add275695e0a6039e60876e81) introduced a regression that can corrupt not only undo log pages, but anything that resides in the InnoDB buffer pool. trx_undo_left(): Add debug assertions for the assumptions. If the pointer is out of bounds, we will return a positive number, not a negative one. Thus, once a page overflow occurs, further overflow to adjacent pages will be allowed. This allows us to remove some more relaxed debug assertions from some callers. trx_undo_log_v_idx(): Correctly calculate the size limit. --- storage/innobase/trx/trx0rec.cc | 42 ++++++++++++++++----------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/storage/innobase/trx/trx0rec.cc b/storage/innobase/trx/trx0rec.cc index eb7d0967901..bf85121d947 100644 --- a/storage/innobase/trx/trx0rec.cc +++ b/storage/innobase/trx/trx0rec.cc @@ -143,15 +143,18 @@ trx_undo_parse_add_undo_rec( } /** Calculate the free space left for extending an undo log record. -@param[in] undo_block undo log page -@param[in] ptr current end of the undo page +@param undo_block undo log page +@param ptr current end of the undo page @return bytes left */ -static ulint trx_undo_left(const buf_block_t* undo_block, const byte* ptr) +static ulint trx_undo_left(const buf_block_t *undo_block, const byte *ptr) { - /* The 10 is a safety margin, in case we have some small - calculation error below */ - return srv_page_size - ulint(ptr - undo_block->frame) - - (10 + FIL_PAGE_DATA_END); + ut_ad(ptr >= &undo_block->frame[TRX_UNDO_PAGE_HDR]); + ut_ad(ptr <= &undo_block->frame[srv_page_size - 10 - FIL_PAGE_DATA_END]); + + /* The 10 is supposed to be an extra safety margin (and needed for + compatibility with older versions) */ + return srv_page_size - ulint(ptr - undo_block->frame) - + (10 + FIL_PAGE_DATA_END); } /**********************************************************************//** @@ -175,9 +178,6 @@ trx_undo_page_set_next_prev_and_add( that points to the next free offset value within undo_page.*/ - ut_ad(ptr > undo_block->frame); - ut_ad(ptr < undo_block->frame + srv_page_size); - if (UNIV_UNLIKELY(trx_undo_left(undo_block, ptr) < 2)) { return(0); } @@ -234,17 +234,15 @@ trx_undo_log_v_idx( ut_ad(!vcol->v_indexes.empty()); - /* Size to reserve, max 5 bytes for each index id and position, plus - 5 bytes for num of indexes, 2 bytes for write total length. - 1 byte for undo log record format version marker */ - ulint size = 5 + 2 + (first_v_col ? 1 : 0); + ulint size = first_v_col ? 1 + 2 : 2; const ulint avail = trx_undo_left(undo_block, ptr); - if (avail < size) { + /* The mach_write_compressed(ptr, flen) in + trx_undo_page_report_modify() will consume additional 1 to 5 bytes. */ + if (avail < size + 5) { return(NULL); } - size = 0; ulint n_idx = 0; for (const auto& v_index : vcol->v_indexes) { n_idx++; @@ -252,12 +250,14 @@ trx_undo_log_v_idx( size += mach_get_compressed_size(uint32_t(v_index.index->id)); size += mach_get_compressed_size(v_index.nth_field); } - size += 2 + mach_get_compressed_size(n_idx); - if (avail < size) { + size += mach_get_compressed_size(n_idx); + + if (avail < size + 5) { return(NULL); } + ut_d(const byte* orig_ptr = ptr); if (first_v_col) { /* write the version marker */ @@ -280,6 +280,8 @@ trx_undo_log_v_idx( ptr += mach_write_compressed(ptr, v_index.nth_field); } + ut_ad(orig_ptr + size == ptr); + mach_write_to_2(old_ptr, ulint(ptr - old_ptr)); return(ptr); @@ -497,8 +499,6 @@ trx_undo_page_report_insert( + undo_block->frame); ptr = undo_block->frame + first_free; - ut_ad(first_free <= srv_page_size); - if (trx_undo_left(undo_block, ptr) < 2 + 1 + 11 + 11) { /* Not enough space for writing the general parameters */ return(0); @@ -905,8 +905,6 @@ trx_undo_page_report_modify( + undo_block->frame); ptr = undo_block->frame + first_free; - ut_ad(first_free <= srv_page_size); - if (trx_undo_left(undo_block, ptr) < 50) { /* NOTE: the value 50 must be big enough so that the general fields written below fit on the undo log page */ From dba846ce2a4c57363c4f0256b0e6d2dd1a55ac40 Mon Sep 17 00:00:00 2001 From: Sergei Petrunia Date: Tue, 10 Nov 2020 12:29:20 +0300 Subject: [PATCH 12/15] MDEV-24117: Memory management problem (in range optimizer) Adjust the testcase for MariaDB 10.3+ : prevent IN-to-subquery conversion optimization from working. --- mysql-test/main/range.result | 2 +- mysql-test/main/range.test | 2 +- mysql-test/main/range_mrr_icp.result | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mysql-test/main/range.result b/mysql-test/main/range.result index 26f871e7c96..a54b76c0b3f 100644 --- a/mysql-test/main/range.result +++ b/mysql-test/main/range.result @@ -3056,7 +3056,7 @@ set @tmp_24117= @@max_session_mem_used; # - 2.8M without the bug # - 1G with the bug. set max_session_mem_used=64*1024*1024; -set @query=concat('explain select * from t2 where a in (', @query, ')'); +set @query=concat('explain select * from t2 where a=1 or a in (', @query, ')'); prepare s from @query; # This should not fail with an error: execute s; diff --git a/mysql-test/main/range.test b/mysql-test/main/range.test index f03c21ad9c1..c850498d7f2 100644 --- a/mysql-test/main/range.test +++ b/mysql-test/main/range.test @@ -2102,7 +2102,7 @@ set @tmp_24117= @@max_session_mem_used; set max_session_mem_used=64*1024*1024; -set @query=concat('explain select * from t2 where a in (', @query, ')'); +set @query=concat('explain select * from t2 where a=1 or a in (', @query, ')'); prepare s from @query; diff --git a/mysql-test/main/range_mrr_icp.result b/mysql-test/main/range_mrr_icp.result index 25cafc4b5a7..98e95e75d37 100644 --- a/mysql-test/main/range_mrr_icp.result +++ b/mysql-test/main/range_mrr_icp.result @@ -3068,7 +3068,7 @@ set @tmp_24117= @@max_session_mem_used; # - 2.8M without the bug # - 1G with the bug. set max_session_mem_used=64*1024*1024; -set @query=concat('explain select * from t2 where a in (', @query, ')'); +set @query=concat('explain select * from t2 where a=1 or a in (', @query, ')'); prepare s from @query; # This should not fail with an error: execute s; From e9b3d44c6eef3d7b4944d724ba597035798324ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 11 Nov 2020 09:11:34 +0200 Subject: [PATCH 13/15] MDEV-24190 Accessing INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION may break innodb_open_files logic If the function i_s_tablespaces_encryption_fill_table() was not able to report all content to the SQL layer, it would fail to decrement fil_system.freeze_space_list that it had incremented. This would prevent the not-frequently-used logic from working, potentially causing frequently used files to be closed and reopened whenever innodb_open_files is exceeded. This regression was caused by commit 45ed9dd957eebc7fc84feb2509f4aa6baa908a95 (part of MDEV-23855). --- storage/innobase/handler/i_s.cc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/storage/innobase/handler/i_s.cc b/storage/innobase/handler/i_s.cc index ecc0905de56..2d659d9f9a3 100644 --- a/storage/innobase/handler/i_s.cc +++ b/storage/innobase/handler/i_s.cc @@ -7049,6 +7049,7 @@ i_s_tablespaces_encryption_fill_table( DBUG_RETURN(0); } + int err = 0; mutex_enter(&fil_system.mutex); fil_system.freeze_space_list++; @@ -7058,19 +7059,19 @@ i_s_tablespaces_encryption_fill_table( && !space->is_stopping()) { space->reacquire(); mutex_exit(&fil_system.mutex); - if (int err = i_s_dict_fill_tablespaces_encryption( - thd, space, tables->table)) { - space->release(); - DBUG_RETURN(err); - } + err = i_s_dict_fill_tablespaces_encryption( + thd, space, tables->table); mutex_enter(&fil_system.mutex); space->release(); + if (err) { + break; + } } } fil_system.freeze_space_list--; mutex_exit(&fil_system.mutex); - DBUG_RETURN(0); + DBUG_RETURN(err); } /*******************************************************************//** Bind the dynamic table INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION From fff469db7f0537b415b520e70149473b51469f64 Mon Sep 17 00:00:00 2001 From: Daniel Bartholomew Date: Wed, 11 Nov 2020 10:20:34 -0500 Subject: [PATCH 14/15] bump the VERSION --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index c74b2ebdae2..d9c0d8beadb 100644 --- a/VERSION +++ b/VERSION @@ -1,4 +1,4 @@ MYSQL_VERSION_MAJOR=10 MYSQL_VERSION_MINOR=5 -MYSQL_VERSION_PATCH=8 +MYSQL_VERSION_PATCH=9 SERVER_MATURITY=stable From 97569d3c37a66bc941b933ac7c2cefa5430a5175 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20M=C3=A4kel=C3=A4?= Date: Wed, 11 Nov 2020 16:49:29 +0200 Subject: [PATCH 15/15] MDEV-24196 WITH_UBSAN: member call on null pointer of log_phys_t MDEV-12353 deliberately tries to avoid memory alignment overhead in log_phys_t, storing the stream of log records bytes straight after a header object. But, offsetof() is not allowed on C++ data objects, and neither are attempts to emulate it by invoking a member function on a null pointer. log_phys_t::len: Remove. Make it part of the byte stream that immediately follow the object. Thanks to Eugene Kosov for this idea. log_phys_t::start(): The start address of the following byte stream. log_phys_t::len(): Compute len. log_phys_t::alloc_size(): Use a simple sizeof calculation. --- storage/innobase/log/log0recv.cc | 37 ++++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/storage/innobase/log/log0recv.cc b/storage/innobase/log/log0recv.cc index c5cf21bf59a..fe691a4b256 100644 --- a/storage/innobase/log/log0recv.cc +++ b/storage/innobase/log/log0recv.cc @@ -96,13 +96,22 @@ struct log_phys_t : public log_rec_t /** start LSN of the mini-transaction (not necessarily of this record) */ const lsn_t start_lsn; private: - /** length of the record, in bytes */ - uint16_t len; + /** @return the start of length and data */ + const byte *start() const + { + return my_assume_aligned + (reinterpret_cast(&start_lsn + 1)); + } + /** @return the start of length and data */ + byte *start() + { return const_cast(const_cast(this)->start()); } + /** @return the length of the following record */ + uint16_t len() const { uint16_t i; memcpy(&i, start(), 2); return i; } /** @return start of the log records */ - byte *begin() { return reinterpret_cast(&len + 1); } + byte *begin() { return start() + 2; } /** @return end of the log records */ - byte *end() { byte *e= begin() + len; ut_ad(!*e); return e; } + byte *end() { byte *e= begin() + len(); ut_ad(!*e); return e; } public: /** @return start of the log records */ const byte *begin() const { return const_cast(this)->begin(); } @@ -112,11 +121,7 @@ public: /** Determine the allocated size of the object. @param len length of recs, excluding terminating NUL byte @return the total allocation size */ - static size_t alloc_size(size_t len) - { - return len + 1 + - reinterpret_cast(reinterpret_cast(0)->begin()); - } + static inline size_t alloc_size(size_t len); /** Constructor. @param start_lsn start LSN of the mini-transaction @@ -124,11 +129,13 @@ public: @param recs the first log record for the page in the mini-transaction @param size length of recs, in bytes, excluding terminating NUL byte */ log_phys_t(lsn_t start_lsn, lsn_t lsn, const byte *recs, size_t size) : - log_rec_t(lsn), start_lsn(start_lsn), len(static_cast(size)) + log_rec_t(lsn), start_lsn(start_lsn) { ut_ad(start_lsn); ut_ad(start_lsn < lsn); + const uint16_t len= static_cast(size); ut_ad(len == size); + memcpy(start(), &len, 2); reinterpret_cast(memcpy(begin(), recs, size))[size]= 0; } @@ -138,8 +145,10 @@ public: void append(const byte *recs, size_t size) { ut_ad(start_lsn < lsn); + uint16_t l= len(); reinterpret_cast(memcpy(end(), recs, size))[size]= 0; - len= static_cast(len + size); + l= static_cast(l + size); + memcpy(start(), &l, 2); } /** Apply an UNDO_APPEND record. @@ -514,6 +523,12 @@ page_corrupted: }; +inline size_t log_phys_t::alloc_size(size_t len) +{ + return len + (1 + 2 + sizeof(log_phys_t)); +} + + /** Tablespace item during recovery */ struct file_name_t { /** Tablespace file name (FILE_MODIFY) */