summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorheikki@hundin.mysql.fi <>2005-03-15 08:33:47 +0200
committerheikki@hundin.mysql.fi <>2005-03-15 08:33:47 +0200
commit9967ee9d28eb05ec8822fa04877519c3d5105a91 (patch)
tree9d69fdd24aedba855244b2fb4846b705757771f7
parent1e1a1b1f82b76a56301a6874c189377c491027c6 (diff)
downloadmariadb-git-9967ee9d28eb05ec8822fa04877519c3d5105a91.tar.gz
buf0flu.c:
Add diagnostics to track why ut_a(block->state == BUF_BLOCK_FILE_PAGE) failed in buf_flush_ready_for_replace() for a user
-rw-r--r--innobase/buf/buf0flu.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/innobase/buf/buf0flu.c b/innobase/buf/buf0flu.c
index 964c396dd08..4df0e9962fb 100644
--- a/innobase/buf/buf0flu.c
+++ b/innobase/buf/buf0flu.c
@@ -115,7 +115,15 @@ buf_flush_ready_for_replace(
#ifdef UNIV_SYNC_DEBUG
ut_ad(mutex_own(&(buf_pool->mutex)));
#endif /* UNIV_SYNC_DEBUG */
- ut_a(block->state == BUF_BLOCK_FILE_PAGE);
+ if (block->state != BUF_BLOCK_FILE_PAGE) {
+ ut_print_timestamp(stderr);
+ fprintf(stderr,
+" InnoDB: Error: buffer block state %lu in the LRU list!\n",
+ (ulong)block->state);
+ ut_print_buf(stderr, (byte*)block, sizeof(buf_block_t));
+
+ return(FALSE);
+ }
if ((ut_dulint_cmp(block->oldest_modification, ut_dulint_zero) > 0)
|| (block->buf_fix_count != 0)