summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarko Mäkelä <marko.makela@mariadb.com>2022-03-04 14:29:36 +0200
committerMarko Mäkelä <marko.makela@mariadb.com>2022-03-04 14:29:36 +0200
commit02da00a98ceb8f82a65ed72a74b53b6d5ae3d144 (patch)
tree22d8225a0de58854ed2998a70843898a5d48c76d
parent3c06a0b7dc121eb606f1d56d0509326e4e7d52b4 (diff)
parenta92f07f4bd450f7368a998ce63443dd66374262a (diff)
downloadmariadb-git-02da00a98ceb8f82a65ed72a74b53b6d5ae3d144.tar.gz
Merge 10.2 into 10.3
-rw-r--r--mysql-test/suite/federated/rpl.test1
-rw-r--r--mysql-test/suite/innodb/r/page_reorganize.result7
-rw-r--r--mysql-test/suite/innodb/t/page_reorganize.test8
-rw-r--r--scripts/mysql_install_db.sh9
-rw-r--r--scripts/mysqld_safe.sh1
-rw-r--r--sql/item_func.cc14
-rw-r--r--storage/innobase/btr/btr0cur.cc3
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 */