mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MDEV-12501 -- set --maturity-level by default
* Note: breaking change; since this commit, a plugin that has worked so far might get rejected due to plugin maturity * mariabackup is not affected (allows all plugins) * VERSION file defines SERVER_MATURITY, which defines the corresponding numeric value as SERVER_MATURITY_LEVEL in include/mysql_version.h * The default value for 'plugin_maturity' is SERVER_MATURITY_LEVEL - 1 * Logs a warning if a plugin has maturity lower than SERVER_MATURITY_LEVEL * Tests suppress the plugin maturity warning * Tests use --plugin-maturity=unknown by default so as not to fail due to the stricter plugin maturity handling
This commit is contained in:
1
VERSION
1
VERSION
@ -1,3 +1,4 @@
|
||||
MYSQL_VERSION_MAJOR=10
|
||||
MYSQL_VERSION_MINOR=3
|
||||
MYSQL_VERSION_PATCH=3
|
||||
SERVER_MATURITY=beta
|
||||
|
@ -48,6 +48,7 @@ MACRO(GET_MYSQL_VERSION)
|
||||
MYSQL_GET_CONFIG_VALUE("MYSQL_VERSION_MINOR" MINOR_VERSION)
|
||||
MYSQL_GET_CONFIG_VALUE("MYSQL_VERSION_PATCH" PATCH_VERSION)
|
||||
MYSQL_GET_CONFIG_VALUE("MYSQL_VERSION_EXTRA" EXTRA_VERSION)
|
||||
MYSQL_GET_CONFIG_VALUE("SERVER_MATURITY" SERVER_MATURITY)
|
||||
|
||||
IF(NOT "${MAJOR_VERSION}" MATCHES "[0-9]+" OR
|
||||
NOT "${MINOR_VERSION}" MATCHES "[0-9]+" OR
|
||||
@ -69,6 +70,10 @@ ENDMACRO()
|
||||
# Get mysql version and other interesting variables
|
||||
GET_MYSQL_VERSION()
|
||||
|
||||
# Maturity level
|
||||
string(TOUPPER ${SERVER_MATURITY} SERVER_MATURITY)
|
||||
SET(SERVER_MATURITY_LEVEL MariaDB_PLUGIN_MATURITY_${SERVER_MATURITY})
|
||||
|
||||
SET(MYSQL_TCP_PORT_DEFAULT 0)
|
||||
IF(NOT MYSQL_TCP_PORT)
|
||||
SET(MYSQL_TCP_PORT 3306)
|
||||
|
@ -165,6 +165,7 @@ static void encryption_plugin_init(int argc, char **argv)
|
||||
{
|
||||
/* Patch optional and mandatory plugins, we only need to load the one in xb_plugin_load. */
|
||||
mysql_optional_plugins[0] = mysql_mandatory_plugins[0] = 0;
|
||||
plugin_maturity = MariaDB_PLUGIN_MATURITY_UNKNOWN; /* mariabackup accepts all plugins */
|
||||
msg("Loading encryption plugin\n");
|
||||
for (int i= 1; i < argc; i++)
|
||||
msg("\t Encryption plugin parameter : '%s'\n", argv[i]);
|
||||
|
@ -22,6 +22,7 @@
|
||||
#define MYSQL_UNIX_ADDR "@MYSQL_UNIX_ADDR@"
|
||||
#define MYSQL_CONFIG_NAME "my"
|
||||
#define MYSQL_COMPILATION_COMMENT "@COMPILATION_COMMENT@"
|
||||
#define SERVER_MATURITY_LEVEL @SERVER_MATURITY_LEVEL@
|
||||
|
||||
#ifdef WITH_WSREP
|
||||
#define WSREP_PATCH_VERSION "@WSREP_PATCH_VERSION@"
|
||||
|
@ -17,7 +17,7 @@
|
||||
# Default values that applies to all MySQL Servers
|
||||
[mysqld]
|
||||
disable-getopt-prefix-matching
|
||||
|
||||
plugin-maturity=unknown
|
||||
open-files-limit= 1024
|
||||
local-infile
|
||||
character-set-server= latin1
|
||||
|
@ -1 +1 @@
|
||||
--plugin-load-add=$AUTH_TEST_PLUGIN_SO
|
||||
--plugin-load-add=$AUTH_TEST_PLUGIN_SO --plugin-maturity=unknown
|
||||
|
@ -224,6 +224,12 @@ INSERT INTO global_suppressions VALUES
|
||||
("Slave I/O: Setting @slave_gtid_ignore_duplicates failed with error.*"),
|
||||
("Slave I/O: Setting @slave_until_gtid failed with error.*"),
|
||||
("Slave I/O: Get master GTID position failed with error.*"),
|
||||
|
||||
/*
|
||||
MDEV-12501 -- set --maturity-level by default
|
||||
*/
|
||||
("Plugin .* is of maturity level .* while the server is .*"),
|
||||
|
||||
("THE_LAST_SUPPRESSION")||
|
||||
|
||||
|
||||
|
@ -1535,7 +1535,6 @@ performance-schema-session-connect-attrs-size -1
|
||||
performance-schema-setup-actors-size 100
|
||||
performance-schema-setup-objects-size 100
|
||||
performance-schema-users-size -1
|
||||
plugin-maturity unknown
|
||||
port 3306
|
||||
port-open-timeout 0
|
||||
preload-buffer-size 32768
|
||||
|
@ -1,2 +1,3 @@
|
||||
--plugin-load-add=$EXAMPLE_KEY_MANAGEMENT_SO
|
||||
--loose-example-key-management
|
||||
--plugin-maturity=unknown
|
||||
|
@ -4,6 +4,7 @@
|
||||
[mysqld]
|
||||
wsrep-on=1
|
||||
binlog-format=row
|
||||
plugin-maturity=unknown
|
||||
innodb-autoinc-lock-mode=2
|
||||
default-storage-engine=innodb
|
||||
wsrep-provider=@ENV.WSREP_PROVIDER
|
||||
|
1
mysql-test/suite/galera/suite.opt
Normal file
1
mysql-test/suite/galera/suite.opt
Normal file
@ -0,0 +1 @@
|
||||
--plugin-maturity=unknown
|
@ -3,6 +3,7 @@
|
||||
|
||||
[mysqld]
|
||||
binlog-format=row
|
||||
plugin-maturity=unknown
|
||||
innodb-autoinc-lock-mode=2
|
||||
default-storage-engine=innodb
|
||||
|
||||
|
1
mysql-test/suite/innodb/suite.opt
Normal file
1
mysql-test/suite/innodb/suite.opt
Normal file
@ -0,0 +1 @@
|
||||
--plugin-maturity=unknown
|
1
mysql-test/suite/rpl/suite.opt
Normal file
1
mysql-test/suite/rpl/suite.opt
Normal file
@ -0,0 +1 @@
|
||||
--plugin-maturity=unknown
|
@ -26,6 +26,7 @@ select * from information_schema.system_variables
|
||||
'lower_case_file_system',
|
||||
'lower_case_table_names',
|
||||
'open_files_limit',
|
||||
'plugin_maturity',
|
||||
'rand_seed1',
|
||||
'rand_seed2',
|
||||
'system_time_zone',
|
||||
|
@ -15,6 +15,7 @@ variable_name not in (
|
||||
'lower_case_file_system',
|
||||
'lower_case_table_names',
|
||||
'open_files_limit',
|
||||
'plugin_maturity',
|
||||
'rand_seed1',
|
||||
'rand_seed2',
|
||||
'system_time_zone',
|
||||
@ -3188,20 +3189,6 @@ NUMERIC_BLOCK_SIZE NULL
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY YES
|
||||
COMMAND_LINE_ARGUMENT REQUIRED
|
||||
VARIABLE_NAME PLUGIN_MATURITY
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE unknown
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE unknown
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
VARIABLE_TYPE ENUM
|
||||
VARIABLE_COMMENT The lowest desirable plugin maturity. Plugins less mature than that will not be installed or loaded
|
||||
NUMERIC_MIN_VALUE NULL
|
||||
NUMERIC_MAX_VALUE NULL
|
||||
NUMERIC_BLOCK_SIZE NULL
|
||||
ENUM_VALUE_LIST unknown,experimental,alpha,beta,gamma,stable
|
||||
READ_ONLY YES
|
||||
COMMAND_LINE_ARGUMENT REQUIRED
|
||||
VARIABLE_NAME PORT
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE MASTER_MYPORT
|
||||
|
@ -15,6 +15,7 @@ variable_name not in (
|
||||
'lower_case_file_system',
|
||||
'lower_case_table_names',
|
||||
'open_files_limit',
|
||||
'plugin_maturity',
|
||||
'rand_seed1',
|
||||
'rand_seed2',
|
||||
'system_time_zone',
|
||||
@ -3398,20 +3399,6 @@ NUMERIC_BLOCK_SIZE NULL
|
||||
ENUM_VALUE_LIST NULL
|
||||
READ_ONLY YES
|
||||
COMMAND_LINE_ARGUMENT REQUIRED
|
||||
VARIABLE_NAME PLUGIN_MATURITY
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE unknown
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE unknown
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
VARIABLE_TYPE ENUM
|
||||
VARIABLE_COMMENT The lowest desirable plugin maturity. Plugins less mature than that will not be installed or loaded
|
||||
NUMERIC_MIN_VALUE NULL
|
||||
NUMERIC_MAX_VALUE NULL
|
||||
NUMERIC_BLOCK_SIZE NULL
|
||||
ENUM_VALUE_LIST unknown,experimental,alpha,beta,gamma,stable
|
||||
READ_ONLY YES
|
||||
COMMAND_LINE_ARGUMENT REQUIRED
|
||||
VARIABLE_NAME PORT
|
||||
SESSION_VALUE NULL
|
||||
GLOBAL_VALUE MASTER_MYPORT
|
||||
|
@ -7,7 +7,7 @@ drop table if exists t1;
|
||||
|
||||
# Add the datadir to the bootstrap command
|
||||
let $MYSQLD_DATADIR= `select @@datadir`;
|
||||
let $MYSQLD_BOOTSTRAP_CMD= $MYSQLD_BOOTSTRAP_CMD --datadir=$MYSQLD_DATADIR --default-storage-engine=MyISAM --loose-skip-innodb;
|
||||
let $MYSQLD_BOOTSTRAP_CMD= $MYSQLD_BOOTSTRAP_CMD --datadir=$MYSQLD_DATADIR --default-storage-engine=MyISAM --loose-skip-innodb --plugin-maturity=unknown;
|
||||
#
|
||||
# Check that --bootstrap reads from stdin
|
||||
#
|
||||
|
@ -19,7 +19,7 @@ exec $MYSQLD_BOOTSTRAP_CMD --symbolic-links=0 --lower-case-table-names=1 --help
|
||||
perl;
|
||||
# Variables which we don't want to display in the result file since
|
||||
# their paths may vary:
|
||||
@skipvars=qw/basedir open-files-limit general-log-file log plugin-dir
|
||||
@skipvars=qw/basedir open-files-limit general-log-file log plugin-dir plugin-maturity
|
||||
log-slow-queries pid-file slow-query-log-file log-basename
|
||||
datadir slave-load-tmpdir tmpdir socket thread-pool-size
|
||||
large-files-support lower-case-file-system system-time-zone
|
||||
|
@ -1155,6 +1155,7 @@ static bool plugin_add(MEM_ROOT *tmp_root,
|
||||
report_error(report, ER_CANT_OPEN_LIBRARY, dl->str, ENOEXEC, buf);
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (plugin_maturity_map[plugin->maturity] < plugin_maturity)
|
||||
{
|
||||
char buf[256];
|
||||
@ -1167,6 +1168,14 @@ static bool plugin_add(MEM_ROOT *tmp_root,
|
||||
report_error(report, ER_CANT_OPEN_LIBRARY, dl->str, EPERM, buf);
|
||||
goto err;
|
||||
}
|
||||
else if (plugin_maturity_map[plugin->maturity] < SERVER_MATURITY_LEVEL)
|
||||
{
|
||||
sql_print_warning("Plugin '%s' is of maturity level %s while the server is %s",
|
||||
tmp.name.str,
|
||||
plugin_maturity_names[plugin->maturity],
|
||||
plugin_maturity_names[SERVER_MATURITY_LEVEL]);
|
||||
}
|
||||
|
||||
tmp.plugin= plugin;
|
||||
tmp.ref_count= 0;
|
||||
tmp.state= PLUGIN_IS_UNINITIALIZED;
|
||||
|
@ -5382,7 +5382,9 @@ static Sys_var_enum Sys_plugin_maturity(
|
||||
"The lowest desirable plugin maturity. "
|
||||
"Plugins less mature than that will not be installed or loaded",
|
||||
READ_ONLY GLOBAL_VAR(plugin_maturity), CMD_LINE(REQUIRED_ARG),
|
||||
plugin_maturity_names, DEFAULT(MariaDB_PLUGIN_MATURITY_UNKNOWN));
|
||||
plugin_maturity_names,
|
||||
DEFAULT(SERVER_MATURITY_LEVEL > 0 ?
|
||||
SERVER_MATURITY_LEVEL - 1 : SERVER_MATURITY_LEVEL));
|
||||
|
||||
static Sys_var_ulong Sys_deadlock_search_depth_short(
|
||||
"deadlock_search_depth_short",
|
||||
|
@ -1,2 +1 @@
|
||||
--ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO --default-storage-engine=rocksdb
|
||||
|
||||
--ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO --default-storage-engine=rocksdb --plugin-maturity=unknown
|
||||
|
1
storage/rocksdb/mysql-test/rocksdb_hotbackup/suite.opt
Normal file
1
storage/rocksdb/mysql-test/rocksdb_hotbackup/suite.opt
Normal file
@ -0,0 +1 @@
|
||||
--plugin-maturity=unknown
|
@ -1,2 +1 @@
|
||||
--ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO --default-storage-engine=rocksdb
|
||||
|
||||
--ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO --default-storage-engine=rocksdb --plugin-maturity=unknown
|
||||
|
1
storage/rocksdb/mysql-test/rocksdb_stress/suite.opt
Normal file
1
storage/rocksdb/mysql-test/rocksdb_stress/suite.opt
Normal file
@ -0,0 +1 @@
|
||||
--plugin-maturity=unknown
|
@ -1,2 +1 @@
|
||||
--ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO
|
||||
|
||||
--ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO --plugin-maturity=unknown
|
||||
|
@ -1 +1 @@
|
||||
--ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO --binlog_format=ROW --collation-server=latin1_bin --loose-rocksdb_flush_log_at_trx_commit=0
|
||||
--ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO --binlog_format=ROW --collation-server=latin1_bin --loose-rocksdb_flush_log_at_trx_commit=0 --plugin-maturity=unknown
|
||||
|
Reference in New Issue
Block a user