summaryrefslogtreecommitdiff
path: root/mysql-test/main/grant_repair.test
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2020-04-25 12:49:47 +0200
committerSergei Golubchik <serg@mariadb.org>2020-04-27 09:22:36 +0200
commit6dab094fbd31ef93a1d51b1b9c867188b2f958c3 (patch)
treebdecc2f8afe50c4c0e1c444e941c8a457efd47a8 /mysql-test/main/grant_repair.test
parenta58b2b3b2b564bff9a521c90ab23f850ee9888d3 (diff)
downloadmariadb-git-6dab094fbd31ef93a1d51b1b9c867188b2f958c3.tar.gz
MDEV-20257 Server crashes in Grant_table_base::init_read_record upon crash-upgrade
when opening the `user` table separately, reset `thd->open_tables` for the duration of open, otherwise auto-repair fallback-and-retry will close *all* tables (but reopen only `user`)
Diffstat (limited to 'mysql-test/main/grant_repair.test')
-rw-r--r--mysql-test/main/grant_repair.test19
1 files changed, 19 insertions, 0 deletions
diff --git a/mysql-test/main/grant_repair.test b/mysql-test/main/grant_repair.test
new file mode 100644
index 00000000000..0fc0edc7ded
--- /dev/null
+++ b/mysql-test/main/grant_repair.test
@@ -0,0 +1,19 @@
+#
+# MDEV-20257 Server crashes in Grant_table_base::init_read_record upon crash-upgrade
+#
+
+call mtr.add_suppression("/mysql/user");
+source include/switch_to_mysql_user.inc;
+
+let mysql_datadir=`select @@datadir`;
+flush tables;
+perl;
+ $f=$ENV{mysql_datadir} . '/mysql/user.MAI';
+ sysopen F, $f, 2 or die "sysopen $f: $!";
+ # set the open_count to 1, "table was not closed properly"
+ sysseek F, 24, O_RDWR or die "sysseek: $!";
+ syswrite F, 1, 1 or die "syswrite: $!";
+EOF
+flush privileges;
+
+source include/switch_to_mysql_global_priv.inc;