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_STATUS
|
||||||
GLOBAL_VARIABLES
|
GLOBAL_VARIABLES
|
||||||
INDEX_STATISTICS
|
INDEX_STATISTICS
|
||||||
|
INNODB_BUFFER_POOL_PAGES
|
||||||
|
INNODB_BUFFER_POOL_PAGES_BLOB
|
||||||
|
INNODB_BUFFER_POOL_PAGES_INDEX
|
||||||
|
INNODB_CMP
|
||||||
INNODB_CMPMEM
|
INNODB_CMPMEM
|
||||||
|
INNODB_CMPMEM_RESET
|
||||||
|
INNODB_CMP_RESET
|
||||||
|
INNODB_INDEX_STATS
|
||||||
INNODB_LOCKS
|
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_INDEXES
|
||||||
|
INNODB_SYS_STATS
|
||||||
|
INNODB_SYS_TABLES
|
||||||
|
INNODB_SYS_TABLESTATS
|
||||||
|
INNODB_TABLE_STATS
|
||||||
INNODB_TRX
|
INNODB_TRX
|
||||||
KEY_CACHES
|
KEY_CACHES
|
||||||
KEY_COLUMN_USAGE
|
KEY_COLUMN_USAGE
|
||||||
@ -68,9 +85,26 @@ FILES TABLE_SCHEMA
|
|||||||
GLOBAL_STATUS VARIABLE_NAME
|
GLOBAL_STATUS VARIABLE_NAME
|
||||||
GLOBAL_VARIABLES VARIABLE_NAME
|
GLOBAL_VARIABLES VARIABLE_NAME
|
||||||
INDEX_STATISTICS TABLE_SCHEMA
|
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 page_size
|
||||||
|
INNODB_CMPMEM_RESET page_size
|
||||||
|
INNODB_CMP_RESET page_size
|
||||||
|
INNODB_INDEX_STATS table_schema
|
||||||
INNODB_LOCKS lock_id
|
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_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
|
INNODB_TRX trx_id
|
||||||
KEY_CACHES KEY_CACHE_NAME
|
KEY_CACHES KEY_CACHE_NAME
|
||||||
KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
|
KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
|
||||||
@ -123,9 +157,26 @@ FILES TABLE_SCHEMA
|
|||||||
GLOBAL_STATUS VARIABLE_NAME
|
GLOBAL_STATUS VARIABLE_NAME
|
||||||
GLOBAL_VARIABLES VARIABLE_NAME
|
GLOBAL_VARIABLES VARIABLE_NAME
|
||||||
INDEX_STATISTICS TABLE_SCHEMA
|
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 page_size
|
||||||
|
INNODB_CMPMEM_RESET page_size
|
||||||
|
INNODB_CMP_RESET page_size
|
||||||
|
INNODB_INDEX_STATS table_schema
|
||||||
INNODB_LOCKS lock_id
|
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_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
|
INNODB_TRX trx_id
|
||||||
KEY_CACHES KEY_CACHE_NAME
|
KEY_CACHES KEY_CACHE_NAME
|
||||||
KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
|
KEY_COLUMN_USAGE CONSTRAINT_SCHEMA
|
||||||
@ -184,9 +235,26 @@ FILES information_schema.FILES 1
|
|||||||
GLOBAL_STATUS information_schema.GLOBAL_STATUS 1
|
GLOBAL_STATUS information_schema.GLOBAL_STATUS 1
|
||||||
GLOBAL_VARIABLES information_schema.GLOBAL_VARIABLES 1
|
GLOBAL_VARIABLES information_schema.GLOBAL_VARIABLES 1
|
||||||
INDEX_STATISTICS information_schema.INDEX_STATISTICS 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 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_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_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
|
INNODB_TRX information_schema.INNODB_TRX 1
|
||||||
KEY_CACHES information_schema.KEY_CACHES 1
|
KEY_CACHES information_schema.KEY_CACHES 1
|
||||||
KEY_COLUMN_USAGE information_schema.KEY_COLUMN_USAGE 1
|
KEY_COLUMN_USAGE information_schema.KEY_COLUMN_USAGE 1
|
||||||
@ -228,9 +296,26 @@ Database: information_schema
|
|||||||
| GLOBAL_STATUS |
|
| GLOBAL_STATUS |
|
||||||
| GLOBAL_VARIABLES |
|
| GLOBAL_VARIABLES |
|
||||||
| INDEX_STATISTICS |
|
| INDEX_STATISTICS |
|
||||||
|
| INNODB_BUFFER_POOL_PAGES |
|
||||||
|
| INNODB_BUFFER_POOL_PAGES_BLOB |
|
||||||
|
| INNODB_BUFFER_POOL_PAGES_INDEX |
|
||||||
|
| INNODB_CMP |
|
||||||
| INNODB_CMPMEM |
|
| INNODB_CMPMEM |
|
||||||
|
| INNODB_CMPMEM_RESET |
|
||||||
|
| INNODB_CMP_RESET |
|
||||||
|
| INNODB_INDEX_STATS |
|
||||||
| INNODB_LOCKS |
|
| 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_INDEXES |
|
||||||
|
| INNODB_SYS_STATS |
|
||||||
|
| INNODB_SYS_TABLES |
|
||||||
|
| INNODB_SYS_TABLESTATS |
|
||||||
|
| INNODB_TABLE_STATS |
|
||||||
| INNODB_TRX |
|
| INNODB_TRX |
|
||||||
| KEY_CACHES |
|
| KEY_CACHES |
|
||||||
| KEY_COLUMN_USAGE |
|
| KEY_COLUMN_USAGE |
|
||||||
@ -273,9 +358,26 @@ Database: INFORMATION_SCHEMA
|
|||||||
| GLOBAL_STATUS |
|
| GLOBAL_STATUS |
|
||||||
| GLOBAL_VARIABLES |
|
| GLOBAL_VARIABLES |
|
||||||
| INDEX_STATISTICS |
|
| INDEX_STATISTICS |
|
||||||
|
| INNODB_BUFFER_POOL_PAGES |
|
||||||
|
| INNODB_BUFFER_POOL_PAGES_BLOB |
|
||||||
|
| INNODB_BUFFER_POOL_PAGES_INDEX |
|
||||||
|
| INNODB_CMP |
|
||||||
| INNODB_CMPMEM |
|
| INNODB_CMPMEM |
|
||||||
|
| INNODB_CMPMEM_RESET |
|
||||||
|
| INNODB_CMP_RESET |
|
||||||
|
| INNODB_INDEX_STATS |
|
||||||
| INNODB_LOCKS |
|
| 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_INDEXES |
|
||||||
|
| INNODB_SYS_STATS |
|
||||||
|
| INNODB_SYS_TABLES |
|
||||||
|
| INNODB_SYS_TABLESTATS |
|
||||||
|
| INNODB_TABLE_STATS |
|
||||||
| INNODB_TRX |
|
| INNODB_TRX |
|
||||||
| KEY_CACHES |
|
| KEY_CACHES |
|
||||||
| KEY_COLUMN_USAGE |
|
| KEY_COLUMN_USAGE |
|
||||||
@ -309,5 +411,5 @@ Wildcard: inf_rmation_schema
|
|||||||
| information_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;
|
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(*)
|
table_schema count(*)
|
||||||
information_schema 40
|
information_schema 57
|
||||||
mysql 23
|
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{'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
|
# disable tests that use ipv6, if unsupported
|
||||||
use Socket;
|
use Socket;
|
||||||
$skip{'include/check_ipv6.inc'} = 'No IPv6'
|
$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 &&
|
if (plugin_ptr->state == PLUGIN_IS_UNINITIALIZED &&
|
||||||
plugin_initialize(plugin_ptr))
|
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