summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Lindström <jan.lindstrom@mariadb.com>2015-03-31 09:00:01 +0300
committerJan Lindström <jan.lindstrom@mariadb.com>2015-03-31 09:00:01 +0300
commitcbc5157feb9801310e458f7ed10983ad478c881e (patch)
tree66b3d713f78b87cde136cc71f1cc67b40653a88a
parentf573b65e4173a90a738682837e2f0020c76827ff (diff)
downloadmariadb-git-cbc5157feb9801310e458f7ed10983ad478c881e.tar.gz
MDEV-7878: innodb_scrub_background fails sporadically in buildbot (Failing assertion: offset > 0 && offset < UNIV_PAGE_SIZE)
Problem was that when encrypted space was flushed page 0 is also updated but crypt data offset was sometimes not calculated.
-rw-r--r--storage/innobase/fil/fil0crypt.cc3
-rw-r--r--storage/xtradb/fil/fil0crypt.cc3
2 files changed, 6 insertions, 0 deletions
diff --git a/storage/innobase/fil/fil0crypt.cc b/storage/innobase/fil/fil0crypt.cc
index 0d2187cf50f..9f8315a8016 100644
--- a/storage/innobase/fil/fil0crypt.cc
+++ b/storage/innobase/fil/fil0crypt.cc
@@ -2033,6 +2033,9 @@ fil_crypt_flush_space(rotate_thread_t *state, ulint space)
RW_X_LATCH, NULL, BUF_GET,
__FILE__, __LINE__, &mtr);
byte* frame = buf_block_get_frame(block);
+ ulint maxsize = 0;
+ crypt_data->page0_offset =
+ fsp_header_get_crypt_offset(zip_size, &maxsize);
fil_space_write_crypt_data(space, frame,
crypt_data->page0_offset,
ULINT_MAX, &mtr);
diff --git a/storage/xtradb/fil/fil0crypt.cc b/storage/xtradb/fil/fil0crypt.cc
index 0d2187cf50f..9f8315a8016 100644
--- a/storage/xtradb/fil/fil0crypt.cc
+++ b/storage/xtradb/fil/fil0crypt.cc
@@ -2033,6 +2033,9 @@ fil_crypt_flush_space(rotate_thread_t *state, ulint space)
RW_X_LATCH, NULL, BUF_GET,
__FILE__, __LINE__, &mtr);
byte* frame = buf_block_get_frame(block);
+ ulint maxsize = 0;
+ crypt_data->page0_offset =
+ fsp_header_get_crypt_offset(zip_size, &maxsize);
fil_space_write_crypt_data(space, frame,
crypt_data->page0_offset,
ULINT_MAX, &mtr);