summaryrefslogtreecommitdiff
path: root/storage
diff options
context:
space:
mode:
authorJan Lindström <jplindst@mariadb.org>2014-07-22 22:08:06 +0300
committerJan Lindström <jplindst@mariadb.org>2014-07-22 22:08:06 +0300
commit67eb6f33a918c7ea43a3f7f5e7ec4c21c9b6fc12 (patch)
tree41455c1d2601d5b147400c3c96d6b37e14a6c958 /storage
parentc714073bfdc2a1e9297823bbfe680c98df6548bd (diff)
downloadmariadb-git-67eb6f33a918c7ea43a3f7f5e7ec4c21c9b6fc12.tar.gz
MDEV-5670: Assertion failure in file buf0lru.c line 2355
Add more status information if repeatable.
Diffstat (limited to 'storage')
-rw-r--r--storage/innobase/btr/btr0cur.c1
-rw-r--r--storage/innobase/buf/buf0lru.c9
-rw-r--r--storage/xtradb/buf/buf0lru.c14
3 files changed, 24 insertions, 0 deletions
diff --git a/storage/innobase/btr/btr0cur.c b/storage/innobase/btr/btr0cur.c
index 2450082afe8..19e67199214 100644
--- a/storage/innobase/btr/btr0cur.c
+++ b/storage/innobase/btr/btr0cur.c
@@ -282,6 +282,7 @@ btr_cur_latch_leaves(
case BTR_MODIFY_TREE:
/* x-latch also brothers from left to right */
left_page_no = btr_page_get_prev(page, mtr);
+ mode = latch_mode;
if (left_page_no != FIL_NULL) {
get_block = btr_block_get(
diff --git a/storage/innobase/buf/buf0lru.c b/storage/innobase/buf/buf0lru.c
index 148ac3d44f6..f39e51bf82c 100644
--- a/storage/innobase/buf/buf0lru.c
+++ b/storage/innobase/buf/buf0lru.c
@@ -2080,6 +2080,15 @@ buf_LRU_block_remove_hashed_page(
" in the hash table\n",
(ulong) bpage->space,
(ulong) bpage->offset);
+ fprintf(stderr,
+ "InnoDB: in_page_hash %lu in_zip_hash %lu\n"
+ " in_free_list %lu in_flush_list %lu in_LRU_list %lu\n"
+ " zip.data %p zip_size %lu page_state %d\n",
+ bpage->in_page_hash, bpage->in_zip_hash,
+ bpage->in_free_list, bpage->in_flush_list,
+ bpage->in_LRU_list, bpage->zip.data,
+ buf_page_get_zip_size(bpage),
+ buf_page_get_state(bpage));
if (hashed_bpage) {
fprintf(stderr,
"InnoDB: In hash table we find block"
diff --git a/storage/xtradb/buf/buf0lru.c b/storage/xtradb/buf/buf0lru.c
index a1fdf0a951c..f2d9e631956 100644
--- a/storage/xtradb/buf/buf0lru.c
+++ b/storage/xtradb/buf/buf0lru.c
@@ -2372,6 +2372,17 @@ buf_LRU_block_remove_hashed_page(
" in the hash table\n",
(ulong) bpage->space,
(ulong) bpage->offset);
+
+ fprintf(stderr,
+ "InnoDB: in_page_hash %lu in_zip_hash %lu\n"
+ " in_free_list %lu in_flush_list %lu in_LRU_list %lu\n"
+ " zip.data %p zip_size %lu page_state %d\n",
+ bpage->in_page_hash, bpage->in_zip_hash,
+ bpage->in_free_list, bpage->in_flush_list,
+ bpage->in_LRU_list, bpage->zip.data,
+ buf_page_get_zip_size(bpage),
+ buf_page_get_state(bpage));
+
if (hashed_bpage) {
fprintf(stderr,
"InnoDB: In hash table we find block"
@@ -2382,6 +2393,9 @@ buf_LRU_block_remove_hashed_page(
(const void*) bpage);
}
+ ut_a(buf_page_get_io_fix(bpage) == BUF_IO_NONE);
+ ut_a(bpage->buf_fix_count == 0);
+
#if defined UNIV_DEBUG || defined UNIV_BUF_DEBUG
mutex_exit(buf_page_get_mutex(bpage));
//buf_pool_mutex_exit(buf_pool);