summaryrefslogtreecommitdiff
path: root/storage/xtradb/include/dict0mem.h
diff options
context:
space:
mode:
authorJan Lindström <jan.lindstrom@mariadb.com>2015-08-31 19:47:14 +0300
committerJan Lindström <jan.lindstrom@mariadb.com>2015-09-04 20:19:45 +0300
commit7e916bb86f512ff79f30d809b813608a625ec5ba (patch)
treed27594381375d2ec6907805b6fd1715ad1a86d13 /storage/xtradb/include/dict0mem.h
parente1978234ebe6606c3ad5a0d1be6ce0f86fcf7642 (diff)
downloadmariadb-git-7e916bb86f512ff79f30d809b813608a625ec5ba.tar.gz
MDEV-8588: Assertion failure in file ha_innodb.cc line 21140 if at least one encrypted table exists and encryption service is not available
Analysis: Problem was that in fil_read_first_page we do find that table has encryption information and that encryption service or used key_id is not available. But, then we just printed fatal error message that causes above assertion. Fix: When we open single table tablespace if it has encryption information (crypt_data) store this crypt data to the table structure. When we open a table and we find out that tablespace is not available, check has table a encryption information and from there is encryption service or used key_id is not available. If it is, add additional warning for SQL-layer.
Diffstat (limited to 'storage/xtradb/include/dict0mem.h')
-rw-r--r--storage/xtradb/include/dict0mem.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/storage/xtradb/include/dict0mem.h b/storage/xtradb/include/dict0mem.h
index 310891162ce..9c43829cecf 100644
--- a/storage/xtradb/include/dict0mem.h
+++ b/storage/xtradb/include/dict0mem.h
@@ -2,7 +2,7 @@
Copyright (c) 1996, 2015, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2012, Facebook Inc.
-Copyright (c) 2013, SkySQL Ab. All Rights Reserved.
+Copyright (c) 2013, 2015, MariaDB Corporation.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
@@ -1033,6 +1033,7 @@ struct dict_table_t{
table_id_t id; /*!< id of the table */
mem_heap_t* heap; /*!< memory heap */
char* name; /*!< table name */
+ void* thd; /*!< thd */
fil_space_crypt_t *crypt_data; /*!< crypt data if present */
const char* dir_path_of_temp_table;/*!< NULL or the directory path
where a TEMPORARY table that was explicitly
@@ -1346,6 +1347,7 @@ struct dict_table_t{
locks; /*!< list of locks on the table; protected
by lock_sys->mutex */
ibool is_corrupt;
+ ibool is_encrypted;
#endif /* !UNIV_HOTBACKUP */
#ifdef UNIV_DEBUG