diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2022-03-04 14:29:36 +0200 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2022-03-04 14:29:36 +0200 |
commit | 02da00a98ceb8f82a65ed72a74b53b6d5ae3d144 (patch) | |
tree | 22d8225a0de58854ed2998a70843898a5d48c76d | |
parent | 3c06a0b7dc121eb606f1d56d0509326e4e7d52b4 (diff) | |
parent | a92f07f4bd450f7368a998ce63443dd66374262a (diff) | |
download | mariadb-git-02da00a98ceb8f82a65ed72a74b53b6d5ae3d144.tar.gz |
Merge 10.2 into 10.3
-rw-r--r-- | mysql-test/suite/federated/rpl.test | 1 | ||||
-rw-r--r-- | mysql-test/suite/innodb/r/page_reorganize.result | 7 | ||||
-rw-r--r-- | mysql-test/suite/innodb/t/page_reorganize.test | 8 | ||||
-rw-r--r-- | scripts/mysql_install_db.sh | 9 | ||||
-rw-r--r-- | scripts/mysqld_safe.sh | 1 | ||||
-rw-r--r-- | sql/item_func.cc | 14 | ||||
-rw-r--r-- | storage/innobase/btr/btr0cur.cc | 3 |
7 files changed, 30 insertions, 13 deletions
diff --git a/mysql-test/suite/federated/rpl.test b/mysql-test/suite/federated/rpl.test index 6ec4bec5a1a..cc94ea8b716 100644 --- a/mysql-test/suite/federated/rpl.test +++ b/mysql-test/suite/federated/rpl.test @@ -1,3 +1,4 @@ +source have_federatedx.inc; source include/have_binlog_format_row.inc; source include/master-slave.inc; diff --git a/mysql-test/suite/innodb/r/page_reorganize.result b/mysql-test/suite/innodb/r/page_reorganize.result index 1059fc78531..20e1600bd0d 100644 --- a/mysql-test/suite/innodb/r/page_reorganize.result +++ b/mysql-test/suite/innodb/r/page_reorganize.result @@ -25,3 +25,10 @@ f1 disconnect con1; connection default; drop table t1; +# +# MDEV-27993 Assertion failed in btr_page_reorganize_low() +# +CREATE TABLE t1(a INT PRIMARY KEY, b INT UNIQUE) ENGINE=InnoDB; +SET DEBUG_DBUG = '+d,do_page_reorganize'; +INSERT INTO t1 VALUES(0,0); +DROP TABLE t1; diff --git a/mysql-test/suite/innodb/t/page_reorganize.test b/mysql-test/suite/innodb/t/page_reorganize.test index 7408353976d..c4e0160cb6d 100644 --- a/mysql-test/suite/innodb/t/page_reorganize.test +++ b/mysql-test/suite/innodb/t/page_reorganize.test @@ -53,4 +53,12 @@ connection default; drop table t1; +--echo # +--echo # MDEV-27993 Assertion failed in btr_page_reorganize_low() +--echo # +CREATE TABLE t1(a INT PRIMARY KEY, b INT UNIQUE) ENGINE=InnoDB; +SET DEBUG_DBUG = '+d,do_page_reorganize'; +INSERT INTO t1 VALUES(0,0); +DROP TABLE t1; + --source include/wait_until_count_sessions.inc diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh index ee15cd6cb28..8a0da9811b5 100644 --- a/scripts/mysql_install_db.sh +++ b/scripts/mysql_install_db.sh @@ -483,10 +483,11 @@ then args="$args --user=$user" fi -if test -n "$group" -then - args="$args --group=$group" -fi +#To be enabled if/when we enable --group as an option to mysqld +#if test -n "$group" +#then +# args="$args --group=$group" +#fi # When doing a "cross bootstrap" install, no reference to the current # host should be added to the system tables. So we filter out any diff --git a/scripts/mysqld_safe.sh b/scripts/mysqld_safe.sh index 152077fe2a0..f92a31851ff 100644 --- a/scripts/mysqld_safe.sh +++ b/scripts/mysqld_safe.sh @@ -694,6 +694,7 @@ then if test "$user" != "root" -o $SET_USER = 1 then USER_OPTION="--user=$user" + # To be used if/when we enable --system-group as an option to mysqld GROUP_OPTION="--group=$group" fi if test -n "$open_files" diff --git a/sql/item_func.cc b/sql/item_func.cc index 8f55e2c266b..cb6fee34d48 100644 --- a/sql/item_func.cc +++ b/sql/item_func.cc @@ -1,5 +1,5 @@ /* Copyright (c) 2000, 2015, Oracle and/or its affiliates. - Copyright (c) 2009, 2020, MariaDB + Copyright (c) 2009, 2022, MariaDB This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -3290,6 +3290,7 @@ udf_handler::fix_fields(THD *thd, Item_func_or_sum *func, thd->alloc(f_args.arg_count*sizeof(Item_result)))) { + err_exit: free_udf(u_d); DBUG_RETURN(TRUE); } @@ -3327,7 +3328,8 @@ udf_handler::fix_fields(THD *thd, Item_func_or_sum *func, func->used_tables_and_const_cache_join(item); f_args.arg_type[i]=item->result_type(); } - if (!(buffers=new (thd->mem_root) String[arg_count]) || + buffers=new (thd->mem_root) String[arg_count]; + if (!buffers || !multi_alloc_root(thd->mem_root, &f_args.args, arg_count * sizeof(char *), &f_args.lengths, arg_count * sizeof(long), @@ -3336,10 +3338,7 @@ udf_handler::fix_fields(THD *thd, Item_func_or_sum *func, &f_args.attributes, arg_count * sizeof(char *), &f_args.attribute_lengths, arg_count * sizeof(long), NullS)) - { - free_udf(u_d); - DBUG_RETURN(TRUE); - } + goto err_exit; } if (func->fix_length_and_dec()) DBUG_RETURN(TRUE); @@ -3407,8 +3406,7 @@ udf_handler::fix_fields(THD *thd, Item_func_or_sum *func, { my_error(ER_CANT_INITIALIZE_UDF, MYF(0), u_d->name.str, init_msg_buff); - free_udf(u_d); - DBUG_RETURN(TRUE); + goto err_exit; } func->max_length=MY_MIN(initid.max_length,MAX_BLOB_WIDTH); func->maybe_null=initid.maybe_null; diff --git a/storage/innobase/btr/btr0cur.cc b/storage/innobase/btr/btr0cur.cc index 6e7dd8cfe94..95ac5db4e70 100644 --- a/storage/innobase/btr/btr0cur.cc +++ b/storage/innobase/btr/btr0cur.cc @@ -3,7 +3,7 @@ Copyright (c) 1994, 2019, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 2008, Google Inc. Copyright (c) 2012, Facebook Inc. -Copyright (c) 2015, 2021, MariaDB Corporation. +Copyright (c) 2015, 2022, MariaDB Corporation. Portions of this file contain modifications contributed and copyrighted by Google, Inc. Those modifications are gratefully acknowledged and are described @@ -3428,6 +3428,7 @@ fail_err: << ib::hex(thr ? thr->graph->trx->id : 0) << ' ' << rec_printer(entry).str()); DBUG_EXECUTE_IF("do_page_reorganize", + if (n_recs) btr_page_reorganize(page_cursor, index, mtr);); /* Now, try the insert */ |