mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
bugfix: mysqld failed to start if a compiled-in plugin failed to initialize
(--xxx=ON behaving as --xxx=FORCE)
This commit is contained in:
@ -13,9 +13,26 @@ FILES
|
||||
GLOBAL_STATUS
|
||||
GLOBAL_VARIABLES
|
||||
INDEX_STATISTICS
|
||||
INNODB_BUFFER_POOL_PAGES
|
||||
INNODB_BUFFER_POOL_PAGES_BLOB
|
||||
INNODB_BUFFER_POOL_PAGES_INDEX
|
||||
INNODB_CMP
|
||||
INNODB_CMPMEM
|
||||
INNODB_CMPMEM_RESET
|
||||
INNODB_CMP_RESET
|
||||
INNODB_INDEX_STATS
|
||||
INNODB_LOCKS
|
||||
INNODB_LOCK_WAITS
|
||||
INNODB_RSEG
|
||||
INNODB_SYS_COLUMNS
|
||||
INNODB_SYS_FIELDS
|
||||
INNODB_SYS_FOREIGN
|
||||
INNODB_SYS_FOREIGN_COLS
|
||||
INNODB_SYS_INDEXES
|
||||
INNODB_SYS_STATS
|
||||
INNODB_SYS_TABLES
|
||||
INNODB_SYS_TABLESTATS
|
||||
INNODB_TABLE_STATS
|
||||
INNODB_TRX
|
||||
KEY_CACHES
|
||||
KEY_COLUMN_USAGE
|
||||
@ -68,9 +85,26 @@ FILES TABLE_SCHEMA
|
||||
GLOBAL_STATUS VARIABLE_NAME
|
||||
GLOBAL_VARIABLES VARIABLE_NAME
|
||||
INDEX_STATISTICS TABLE_SCHEMA
|
||||
INNODB_BUFFER_POOL_PAGES page_type
|
||||
INNODB_BUFFER_POOL_PAGES_BLOB space_id
|
||||
INNODB_BUFFER_POOL_PAGES_INDEX index_id
|
||||
INNODB_CMP page_size
|
||||
INNODB_CMPMEM page_size
|
||||
INNODB_CMPMEM_RESET page_size
|
||||
INNODB_CMP_RESET page_size
|
||||
INNODB_INDEX_STATS table_schema
|
||||
INNODB_LOCKS lock_id
|
||||
INNODB_LOCK_WAITS requesting_trx_id
|
||||
INNODB_RSEG rseg_id
|
||||
INNODB_SYS_COLUMNS TABLE_ID
|
||||
INNODB_SYS_FIELDS INDEX_ID
|
||||
INNODB_SYS_FOREIGN ID
|
||||
INNODB_SYS_FOREIGN_COLS ID
|
||||
INNODB_SYS_INDEXES INDEX_ID
|
||||
INNODB_SYS_STATS INDEX_ID
|
||||
INNODB_SYS_TABLES SCHEMA
|
||||
INNODB_SYS_TABLESTATS SCHEMA
|
||||
INNODB_TABLE_STATS table_schema
|
||||
INNODB_TRX trx_id
|
||||
KEY_CACHES KEY_CACHE_NAME
|
||||
KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
|
||||
@ -123,9 +157,26 @@ FILES TABLE_SCHEMA
|
||||
GLOBAL_STATUS VARIABLE_NAME
|
||||
GLOBAL_VARIABLES VARIABLE_NAME
|
||||
INDEX_STATISTICS TABLE_SCHEMA
|
||||
INNODB_BUFFER_POOL_PAGES page_type
|
||||
INNODB_BUFFER_POOL_PAGES_BLOB space_id
|
||||
INNODB_BUFFER_POOL_PAGES_INDEX index_id
|
||||
INNODB_CMP page_size
|
||||
INNODB_CMPMEM page_size
|
||||
INNODB_CMPMEM_RESET page_size
|
||||
INNODB_CMP_RESET page_size
|
||||
INNODB_INDEX_STATS table_schema
|
||||
INNODB_LOCKS lock_id
|
||||
INNODB_LOCK_WAITS requesting_trx_id
|
||||
INNODB_RSEG rseg_id
|
||||
INNODB_SYS_COLUMNS TABLE_ID
|
||||
INNODB_SYS_FIELDS INDEX_ID
|
||||
INNODB_SYS_FOREIGN ID
|
||||
INNODB_SYS_FOREIGN_COLS ID
|
||||
INNODB_SYS_INDEXES INDEX_ID
|
||||
INNODB_SYS_STATS INDEX_ID
|
||||
INNODB_SYS_TABLES SCHEMA
|
||||
INNODB_SYS_TABLESTATS SCHEMA
|
||||
INNODB_TABLE_STATS table_schema
|
||||
INNODB_TRX trx_id
|
||||
KEY_CACHES KEY_CACHE_NAME
|
||||
KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
|
||||
@ -184,9 +235,26 @@ FILES information_schema.FILES 1
|
||||
GLOBAL_STATUS information_schema.GLOBAL_STATUS 1
|
||||
GLOBAL_VARIABLES information_schema.GLOBAL_VARIABLES 1
|
||||
INDEX_STATISTICS information_schema.INDEX_STATISTICS 1
|
||||
INNODB_BUFFER_POOL_PAGES information_schema.INNODB_BUFFER_POOL_PAGES 1
|
||||
INNODB_BUFFER_POOL_PAGES_BLOB information_schema.INNODB_BUFFER_POOL_PAGES_BLOB 1
|
||||
INNODB_BUFFER_POOL_PAGES_INDEX information_schema.INNODB_BUFFER_POOL_PAGES_INDEX 1
|
||||
INNODB_CMP information_schema.INNODB_CMP 1
|
||||
INNODB_CMPMEM information_schema.INNODB_CMPMEM 1
|
||||
INNODB_CMPMEM_RESET information_schema.INNODB_CMPMEM_RESET 1
|
||||
INNODB_CMP_RESET information_schema.INNODB_CMP_RESET 1
|
||||
INNODB_INDEX_STATS information_schema.INNODB_INDEX_STATS 1
|
||||
INNODB_LOCKS information_schema.INNODB_LOCKS 1
|
||||
INNODB_LOCK_WAITS information_schema.INNODB_LOCK_WAITS 1
|
||||
INNODB_RSEG information_schema.INNODB_RSEG 1
|
||||
INNODB_SYS_COLUMNS information_schema.INNODB_SYS_COLUMNS 1
|
||||
INNODB_SYS_FIELDS information_schema.INNODB_SYS_FIELDS 1
|
||||
INNODB_SYS_FOREIGN information_schema.INNODB_SYS_FOREIGN 1
|
||||
INNODB_SYS_FOREIGN_COLS information_schema.INNODB_SYS_FOREIGN_COLS 1
|
||||
INNODB_SYS_INDEXES information_schema.INNODB_SYS_INDEXES 1
|
||||
INNODB_SYS_STATS information_schema.INNODB_SYS_STATS 1
|
||||
INNODB_SYS_TABLES information_schema.INNODB_SYS_TABLES 1
|
||||
INNODB_SYS_TABLESTATS information_schema.INNODB_SYS_TABLESTATS 1
|
||||
INNODB_TABLE_STATS information_schema.INNODB_TABLE_STATS 1
|
||||
INNODB_TRX information_schema.INNODB_TRX 1
|
||||
KEY_CACHES information_schema.KEY_CACHES 1
|
||||
KEY_COLUMN_USAGE information_schema.KEY_COLUMN_USAGE 1
|
||||
@ -228,9 +296,26 @@ Database: information_schema
|
||||
| GLOBAL_STATUS |
|
||||
| GLOBAL_VARIABLES |
|
||||
| INDEX_STATISTICS |
|
||||
| INNODB_BUFFER_POOL_PAGES |
|
||||
| INNODB_BUFFER_POOL_PAGES_BLOB |
|
||||
| INNODB_BUFFER_POOL_PAGES_INDEX |
|
||||
| INNODB_CMP |
|
||||
| INNODB_CMPMEM |
|
||||
| INNODB_CMPMEM_RESET |
|
||||
| INNODB_CMP_RESET |
|
||||
| INNODB_INDEX_STATS |
|
||||
| INNODB_LOCKS |
|
||||
| INNODB_LOCK_WAITS |
|
||||
| INNODB_RSEG |
|
||||
| INNODB_SYS_COLUMNS |
|
||||
| INNODB_SYS_FIELDS |
|
||||
| INNODB_SYS_FOREIGN |
|
||||
| INNODB_SYS_FOREIGN_COLS |
|
||||
| INNODB_SYS_INDEXES |
|
||||
| INNODB_SYS_STATS |
|
||||
| INNODB_SYS_TABLES |
|
||||
| INNODB_SYS_TABLESTATS |
|
||||
| INNODB_TABLE_STATS |
|
||||
| INNODB_TRX |
|
||||
| KEY_CACHES |
|
||||
| KEY_COLUMN_USAGE |
|
||||
@ -273,9 +358,26 @@ Database: INFORMATION_SCHEMA
|
||||
| GLOBAL_STATUS |
|
||||
| GLOBAL_VARIABLES |
|
||||
| INDEX_STATISTICS |
|
||||
| INNODB_BUFFER_POOL_PAGES |
|
||||
| INNODB_BUFFER_POOL_PAGES_BLOB |
|
||||
| INNODB_BUFFER_POOL_PAGES_INDEX |
|
||||
| INNODB_CMP |
|
||||
| INNODB_CMPMEM |
|
||||
| INNODB_CMPMEM_RESET |
|
||||
| INNODB_CMP_RESET |
|
||||
| INNODB_INDEX_STATS |
|
||||
| INNODB_LOCKS |
|
||||
| INNODB_LOCK_WAITS |
|
||||
| INNODB_RSEG |
|
||||
| INNODB_SYS_COLUMNS |
|
||||
| INNODB_SYS_FIELDS |
|
||||
| INNODB_SYS_FOREIGN |
|
||||
| INNODB_SYS_FOREIGN_COLS |
|
||||
| INNODB_SYS_INDEXES |
|
||||
| INNODB_SYS_STATS |
|
||||
| INNODB_SYS_TABLES |
|
||||
| INNODB_SYS_TABLESTATS |
|
||||
| INNODB_TABLE_STATS |
|
||||
| INNODB_TRX |
|
||||
| KEY_CACHES |
|
||||
| KEY_COLUMN_USAGE |
|
||||
@ -309,5 +411,5 @@ Wildcard: inf_rmation_schema
|
||||
| information_schema |
|
||||
SELECT table_schema, count(*) FROM information_schema.TABLES WHERE table_schema IN ('mysql', 'INFORMATION_SCHEMA', 'test', 'mysqltest') AND table_name<>'ndb_binlog_index' AND table_name<>'ndb_apply_status' GROUP BY TABLE_SCHEMA;
|
||||
table_schema count(*)
|
||||
information_schema 40
|
||||
information_schema 57
|
||||
mysql 23
|
||||
|
10
mysql-test/r/plugin_loaderr.result
Normal file
10
mysql-test/r/plugin_loaderr.result
Normal file
@ -0,0 +1,10 @@
|
||||
call mtr.add_suppression("InnoDB");
|
||||
SELECT
|
||||
PLUGIN_NAME,PLUGIN_STATUS,PLUGIN_TYPE,PLUGIN_LIBRARY,PLUGIN_LIBRARY_VERSION,LOAD_OPTION
|
||||
FROM INFORMATION_SCHEMA.PLUGINS WHERE plugin_name = 'innodb';
|
||||
PLUGIN_NAME InnoDB
|
||||
PLUGIN_STATUS DISABLED
|
||||
PLUGIN_TYPE STORAGE ENGINE
|
||||
PLUGIN_LIBRARY NULL
|
||||
PLUGIN_LIBRARY_VERSION NULL
|
||||
LOAD_OPTION ON
|
@ -26,6 +26,9 @@ sub skip_combinations {
|
||||
|
||||
$skip{'include/not_windows.inc'} = 'Requires not Windows' if IS_WINDOWS;
|
||||
|
||||
$skip{'t/plugin_loaderr.test'} = 'needs compiled-in innodb'
|
||||
unless $::mysqld_variables{'innodb'} eq "ON";
|
||||
|
||||
# disable tests that use ipv6, if unsupported
|
||||
use Socket;
|
||||
$skip{'include/check_ipv6.inc'} = 'No IPv6'
|
||||
|
1
mysql-test/t/plugin_loaderr.opt
Normal file
1
mysql-test/t/plugin_loaderr.opt
Normal file
@ -0,0 +1 @@
|
||||
--innodb --innodb-page-size=6000
|
10
mysql-test/t/plugin_loaderr.test
Normal file
10
mysql-test/t/plugin_loaderr.test
Normal file
@ -0,0 +1,10 @@
|
||||
|
||||
# We used an invalid command-line option and InnoDB failed to start.
|
||||
# Ignore all related warnings
|
||||
call mtr.add_suppression("InnoDB");
|
||||
|
||||
--vertical_results
|
||||
SELECT
|
||||
PLUGIN_NAME,PLUGIN_STATUS,PLUGIN_TYPE,PLUGIN_LIBRARY,PLUGIN_LIBRARY_VERSION,LOAD_OPTION
|
||||
FROM INFORMATION_SCHEMA.PLUGINS WHERE plugin_name = 'innodb';
|
||||
|
@ -1587,7 +1587,11 @@ int plugin_init(int *argc, char **argv, int flags)
|
||||
{
|
||||
if (plugin_ptr->state == PLUGIN_IS_UNINITIALIZED &&
|
||||
plugin_initialize(plugin_ptr))
|
||||
goto err_unlock;
|
||||
{
|
||||
if (mandatory)
|
||||
goto err_unlock;
|
||||
plugin_ptr->state= PLUGIN_IS_DISABLED;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user