mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 05:22:25 +01:00
Bug#14756795 SELECT FROM NEW INNODB I_S TABLES CRASHES SERVER
WITH --SKIP-INNODB Description ----------- If the server is started with skip-innodb or InnoDB otherwise fails to start, any one of these queries will crash the server: For (5.5) SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE; SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE_LRU; SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_POOL_STATS; In (5.6+) ,following queries will also crash the server. SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES; SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES; SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS; SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS; SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN; SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS; SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS; SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_DATAFILES; SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES; FIX ---- When Innodb is not active we must prevent it from processing these tables,so we return a warning saying that innodb is not active. Approved by marko (http://rb.no.oracle.com/rb/r/1891)
This commit is contained in:
parent
7485b6c668
commit
dd5beeac30
1 changed files with 3 additions and 0 deletions
|
@ -2295,6 +2295,7 @@ i_s_innodb_buffer_stats_fill_table(
|
|||
buf_pool_info_t* pool_info;
|
||||
|
||||
DBUG_ENTER("i_s_innodb_buffer_fill_general");
|
||||
RETURN_IF_INNODB_NOT_STARTED(tables->schema_table_name);
|
||||
|
||||
/* Only allow the PROCESS privilege holder to access the stats */
|
||||
if (check_global_access(thd, PROCESS_ACL)) {
|
||||
|
@ -2911,6 +2912,7 @@ i_s_innodb_fill_buffer_pool(
|
|||
mem_heap_t* heap;
|
||||
|
||||
DBUG_ENTER("i_s_innodb_fill_buffer_pool");
|
||||
RETURN_IF_INNODB_NOT_STARTED(tables->schema_table_name);
|
||||
|
||||
heap = mem_heap_create(10000);
|
||||
|
||||
|
@ -3480,6 +3482,7 @@ i_s_innodb_fill_buffer_lru(
|
|||
ulint lru_len;
|
||||
|
||||
DBUG_ENTER("i_s_innodb_fill_buffer_lru");
|
||||
RETURN_IF_INNODB_NOT_STARTED(tables->schema_table_name);
|
||||
|
||||
/* Obtain buf_pool mutex before allocate info_buffer, since
|
||||
UT_LIST_GET_LEN(buf_pool->LRU) could change */
|
||||
|
|
Loading…
Reference in a new issue