MDEV-13583 Improvements for MTR rebootstrap introduced in MDEV-12042
- make re-bootstrap run with all extra options, not only InnoDB ones - re-use previously created bootstrap.sql - add --console - fix debian patch to keep it applicable
This commit is contained in:
parent
582545a384
commit
05e7d35e89
18
debian/patches/50_mysql-test__db_test.dpatch
vendored
18
debian/patches/50_mysql-test__db_test.dpatch
vendored
@ -11,14 +11,14 @@
|
||||
--- old/mysql-test/mysql-test-run.pl 2009-06-16 14:24:09.000000000 +0200
|
||||
+++ new/mysql-test/mysql-test-run.pl 2009-07-04 00:03:34.000000000 +0200
|
||||
@@ -3578,6 +3578,11 @@ sub mysql_install_db {
|
||||
mtr_appendfile_to_file("$sql_dir/mysql_system_tables_data.sql",
|
||||
$bootstrap_sql_file);
|
||||
mtr_appendfile_to_file("$sql_dir/mysql_system_tables_data.sql",
|
||||
$bootstrap_sql_file);
|
||||
|
||||
+ mtr_tofile($bootstrap_sql_file, "-- Debian removed the default privileges on the 'test' database\n");
|
||||
+ mtr_tofile($bootstrap_sql_file, "INSERT INTO mysql.db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');\n");
|
||||
+ mtr_tofile($bootstrap_sql_file, "INSERT INTO mysql.db VALUES ('%','test\\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');\n");
|
||||
+
|
||||
+ mtr_tofile($bootstrap_sql_file, "-- Debian removed the default privileges on the 'test' database\n");
|
||||
+ mtr_tofile($bootstrap_sql_file, "INSERT INTO mysql.db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');\n");
|
||||
+ mtr_tofile($bootstrap_sql_file, "INSERT INTO mysql.db VALUES ('%','test\\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','N','N','Y','Y');\n");
|
||||
+
|
||||
# Add test data for timezone - this is just a subset, on a real
|
||||
# system these tables will be populated either by mysql_tzinfo_to_sql
|
||||
# or by downloading the timezone table package from our website
|
||||
+
|
||||
# Add test data for timezone - this is just a subset, on a real
|
||||
# system these tables will be populated either by mysql_tzinfo_to_sql
|
||||
# or by downloading the timezone table package from our website
|
||||
|
@ -3509,14 +3509,16 @@ sub mysql_install_db {
|
||||
mtr_add_arg($args, "--bootstrap");
|
||||
mtr_add_arg($args, "--basedir=%s", $install_basedir);
|
||||
mtr_add_arg($args, "--datadir=%s", $install_datadir);
|
||||
mtr_add_arg($args, "--plugin-dir=%s", $plugindir);
|
||||
mtr_add_arg($args, "--default-storage-engine=myisam");
|
||||
mtr_add_arg($args, "--skip-plugin-$_") for @optional_plugins;
|
||||
mtr_add_arg($args, "--loose-skip-plugin-$_") for @optional_plugins;
|
||||
# starting from 10.0 bootstrap scripts require InnoDB
|
||||
mtr_add_arg($args, "--loose-innodb");
|
||||
mtr_add_arg($args, "--loose-innodb-log-file-size=5M");
|
||||
mtr_add_arg($args, "--disable-sync-frm");
|
||||
mtr_add_arg($args, "--tmpdir=%s", "$opt_vardir/tmp/");
|
||||
mtr_add_arg($args, "--core-file");
|
||||
mtr_add_arg($args, "--console");
|
||||
|
||||
if ( $opt_debug )
|
||||
{
|
||||
@ -3535,13 +3537,6 @@ sub mysql_install_db {
|
||||
mtr_add_arg($args, $extra_opt);
|
||||
}
|
||||
}
|
||||
# InnoDB options can come not only from the command line, but also
|
||||
# from option files or combinations
|
||||
foreach my $extra_opt ( @$extra_opts ) {
|
||||
if ($extra_opt =~ /--innodb/) {
|
||||
mtr_add_arg($args, $extra_opt);
|
||||
}
|
||||
}
|
||||
|
||||
# If DISABLE_GRANT_OPTIONS is defined when the server is compiled (e.g.,
|
||||
# configure --disable-grant-options), mysqld will not recognize the
|
||||
@ -3556,98 +3551,108 @@ sub mysql_install_db {
|
||||
# ----------------------------------------------------------------------
|
||||
$ENV{'MYSQLD_BOOTSTRAP_CMD'}= "$exe_mysqld_bootstrap " . join(" ", @$args);
|
||||
|
||||
|
||||
# Extra options can come not only from the command line, but also
|
||||
# from option files or combinations. We want them on a command line
|
||||
# that is executed now, because otherwise the datadir might be
|
||||
# incompatible with the test settings, but not on the general
|
||||
# $MYSQLD_BOOTSTRAP_CMD line
|
||||
foreach my $extra_opt ( @$extra_opts ) {
|
||||
mtr_add_arg($args, $extra_opt);
|
||||
}
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# Create the bootstrap.sql file
|
||||
# ----------------------------------------------------------------------
|
||||
my $bootstrap_sql_file= "$opt_vardir/tmp/bootstrap.sql";
|
||||
my $bootstrap_sql_file= "$opt_vardir/log/bootstrap.sql";
|
||||
|
||||
if ($opt_boot_gdb) {
|
||||
gdb_arguments(\$args, \$exe_mysqld_bootstrap, $mysqld->name(),
|
||||
$bootstrap_sql_file);
|
||||
}
|
||||
if ($opt_boot_dbx) {
|
||||
dbx_arguments(\$args, \$exe_mysqld_bootstrap, $mysqld->name(),
|
||||
$bootstrap_sql_file);
|
||||
}
|
||||
if ($opt_boot_ddd) {
|
||||
ddd_arguments(\$args, \$exe_mysqld_bootstrap, $mysqld->name(),
|
||||
$bootstrap_sql_file);
|
||||
}
|
||||
|
||||
my $path_sql= my_find_file($install_basedir,
|
||||
["mysql", "sql/share", "share/mariadb",
|
||||
"share/mysql", "share", "scripts"],
|
||||
"mysql_system_tables.sql",
|
||||
NOT_REQUIRED);
|
||||
|
||||
if (-f $path_sql )
|
||||
if (! -e $bootstrap_sql_file)
|
||||
{
|
||||
my $sql_dir= dirname($path_sql);
|
||||
# Use the mysql database for system tables
|
||||
mtr_tofile($bootstrap_sql_file, "use mysql;\n");
|
||||
if ($opt_boot_gdb) {
|
||||
gdb_arguments(\$args, \$exe_mysqld_bootstrap, $mysqld->name(),
|
||||
$bootstrap_sql_file);
|
||||
}
|
||||
if ($opt_boot_dbx) {
|
||||
dbx_arguments(\$args, \$exe_mysqld_bootstrap, $mysqld->name(),
|
||||
$bootstrap_sql_file);
|
||||
}
|
||||
if ($opt_boot_ddd) {
|
||||
ddd_arguments(\$args, \$exe_mysqld_bootstrap, $mysqld->name(),
|
||||
$bootstrap_sql_file);
|
||||
}
|
||||
|
||||
# Add the offical mysql system tables
|
||||
# for a production system
|
||||
mtr_appendfile_to_file("$sql_dir/mysql_system_tables.sql",
|
||||
$bootstrap_sql_file);
|
||||
my $path_sql= my_find_file($install_basedir,
|
||||
["mysql", "sql/share", "share/mariadb",
|
||||
"share/mysql", "share", "scripts"],
|
||||
"mysql_system_tables.sql",
|
||||
NOT_REQUIRED);
|
||||
|
||||
# Add the performance tables
|
||||
# for a production system
|
||||
mtr_appendfile_to_file("$sql_dir/mysql_performance_tables.sql",
|
||||
$bootstrap_sql_file);
|
||||
if (-f $path_sql )
|
||||
{
|
||||
my $sql_dir= dirname($path_sql);
|
||||
# Use the mysql database for system tables
|
||||
mtr_tofile($bootstrap_sql_file, "use mysql;\n");
|
||||
|
||||
# Add the mysql system tables initial data
|
||||
# for a production system
|
||||
mtr_appendfile_to_file("$sql_dir/mysql_system_tables_data.sql",
|
||||
$bootstrap_sql_file);
|
||||
# Add the offical mysql system tables
|
||||
# for a production system
|
||||
mtr_appendfile_to_file("$sql_dir/mysql_system_tables.sql",
|
||||
$bootstrap_sql_file);
|
||||
|
||||
# Add test data for timezone - this is just a subset, on a real
|
||||
# system these tables will be populated either by mysql_tzinfo_to_sql
|
||||
# or by downloading the timezone table package from our website
|
||||
mtr_appendfile_to_file("$sql_dir/mysql_test_data_timezone.sql",
|
||||
$bootstrap_sql_file);
|
||||
# Add the performance tables
|
||||
# for a production system
|
||||
mtr_appendfile_to_file("$sql_dir/mysql_performance_tables.sql",
|
||||
$bootstrap_sql_file);
|
||||
|
||||
# Fill help tables, just an empty file when running from bk repo
|
||||
# but will be replaced by a real fill_help_tables.sql when
|
||||
# building the source dist
|
||||
mtr_appendfile_to_file("$sql_dir/fill_help_tables.sql",
|
||||
$bootstrap_sql_file);
|
||||
# Add the mysql system tables initial data
|
||||
# for a production system
|
||||
mtr_appendfile_to_file("$sql_dir/mysql_system_tables_data.sql",
|
||||
$bootstrap_sql_file);
|
||||
|
||||
# mysql.gtid_slave_pos was created in InnoDB, but many tests
|
||||
# run without InnoDB. Alter it to MyISAM now
|
||||
mtr_tofile($bootstrap_sql_file, "ALTER TABLE gtid_slave_pos ENGINE=MyISAM;\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
# Install db from init_db.sql that exist in early 5.1 and 5.0
|
||||
# versions of MySQL
|
||||
my $init_file= "$install_basedir/mysql-test/lib/init_db.sql";
|
||||
mtr_report(" - from '$init_file'");
|
||||
my $text= mtr_grab_file($init_file) or
|
||||
mtr_error("Can't open '$init_file': $!");
|
||||
# Add test data for timezone - this is just a subset, on a real
|
||||
# system these tables will be populated either by mysql_tzinfo_to_sql
|
||||
# or by downloading the timezone table package from our website
|
||||
mtr_appendfile_to_file("$sql_dir/mysql_test_data_timezone.sql",
|
||||
$bootstrap_sql_file);
|
||||
|
||||
# Fill help tables, just an empty file when running from bk repo
|
||||
# but will be replaced by a real fill_help_tables.sql when
|
||||
# building the source dist
|
||||
mtr_appendfile_to_file("$sql_dir/fill_help_tables.sql",
|
||||
$bootstrap_sql_file);
|
||||
|
||||
# mysql.gtid_slave_pos was created in InnoDB, but many tests
|
||||
# run without InnoDB. Alter it to MyISAM now
|
||||
mtr_tofile($bootstrap_sql_file, "ALTER TABLE gtid_slave_pos ENGINE=MyISAM;\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
# Install db from init_db.sql that exist in early 5.1 and 5.0
|
||||
# versions of MySQL
|
||||
my $init_file= "$install_basedir/mysql-test/lib/init_db.sql";
|
||||
mtr_report(" - from '$init_file'");
|
||||
my $text= mtr_grab_file($init_file) or
|
||||
mtr_error("Can't open '$init_file': $!");
|
||||
|
||||
mtr_tofile($bootstrap_sql_file,
|
||||
sql_to_bootstrap($text));
|
||||
}
|
||||
|
||||
# Remove anonymous users
|
||||
mtr_tofile($bootstrap_sql_file,
|
||||
sql_to_bootstrap($text));
|
||||
"DELETE FROM mysql.user where user= '';\n");
|
||||
|
||||
# Create mtr database
|
||||
mtr_tofile($bootstrap_sql_file,
|
||||
"CREATE DATABASE mtr CHARSET=latin1;\n");
|
||||
|
||||
# Add help tables and data for warning detection and supression
|
||||
mtr_tofile($bootstrap_sql_file,
|
||||
sql_to_bootstrap(mtr_grab_file("include/mtr_warnings.sql")));
|
||||
|
||||
# Add procedures for checking server is restored after testcase
|
||||
mtr_tofile($bootstrap_sql_file,
|
||||
sql_to_bootstrap(mtr_grab_file("include/mtr_check.sql")));
|
||||
}
|
||||
|
||||
# Remove anonymous users
|
||||
mtr_tofile($bootstrap_sql_file,
|
||||
"DELETE FROM mysql.user where user= '';\n");
|
||||
|
||||
# Create mtr database
|
||||
mtr_tofile($bootstrap_sql_file,
|
||||
"CREATE DATABASE mtr CHARSET=latin1;\n");
|
||||
|
||||
# Add help tables and data for warning detection and supression
|
||||
mtr_tofile($bootstrap_sql_file,
|
||||
sql_to_bootstrap(mtr_grab_file("include/mtr_warnings.sql")));
|
||||
|
||||
# Add procedures for checking server is restored after testcase
|
||||
mtr_tofile($bootstrap_sql_file,
|
||||
sql_to_bootstrap(mtr_grab_file("include/mtr_check.sql")));
|
||||
|
||||
# Log bootstrap command
|
||||
my $path_bootstrap_log= "$opt_vardir/log/bootstrap.log";
|
||||
mtr_tofile($path_bootstrap_log,
|
||||
|
@ -1083,7 +1083,7 @@ character-sets-dir MYSQL_CHARSETSDIR/
|
||||
chroot (No default value)
|
||||
completion-type NO_CHAIN
|
||||
concurrent-insert AUTO
|
||||
console FALSE
|
||||
console TRUE
|
||||
date-format %Y-%m-%d
|
||||
datetime-format %Y-%m-%d %H:%i:%s
|
||||
deadlock-search-depth-long 15
|
||||
|
Loading…
x
Reference in New Issue
Block a user