mirror of
https://github.com/MariaDB/server.git
synced 2025-10-27 05:56:07 +03: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:
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user