mirror of
https://github.com/MariaDB/server.git
synced 2025-01-29 18:20:07 +01:00
Add more diagnostic to find out the problem on
innodb_shutdown_for_mysql in ppc64el on test case innodb_fts.innodb_fts_stopword_charset.
This commit is contained in:
parent
0fdb17e6c3
commit
406fe77763
6 changed files with 84 additions and 4 deletions
|
@ -4408,10 +4408,20 @@ buf_all_freed_instance(
|
|||
const buf_block_t* block = buf_chunk_not_freed(chunk);
|
||||
|
||||
if (UNIV_LIKELY_NULL(block)) {
|
||||
fprintf(stderr,
|
||||
"Page %lu %lu still fixed or dirty\n",
|
||||
fil_space_t* space = fil_space_get(block->page.space);
|
||||
ib_logf(IB_LOG_LEVEL_ERROR,
|
||||
"Page %lu %lu still fixed or dirty.",
|
||||
(ulong) block->page.space,
|
||||
(ulong) block->page.offset);
|
||||
ib_logf(IB_LOG_LEVEL_ERROR,
|
||||
"Page oldest_modification %lu fix_count %d io_fix %d.",
|
||||
block->page.oldest_modification,
|
||||
block->page.buf_fix_count,
|
||||
buf_page_get_io_fix(&block->page));
|
||||
ib_logf(IB_LOG_LEVEL_ERROR,
|
||||
"Page space_id %lu name %s.",
|
||||
(ulong)block->page.space,
|
||||
(space && space->name) ? space->name : "NULL");
|
||||
ut_error;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1299,6 +1299,28 @@ fil_space_free(
|
|||
return(TRUE);
|
||||
}
|
||||
|
||||
/*******************************************************************//**
|
||||
Returns a pointer to the file_space_t that is in the memory cache
|
||||
associated with a space id.
|
||||
@return file_space_t pointer, NULL if space not found */
|
||||
fil_space_t*
|
||||
fil_space_get(
|
||||
/*==========*/
|
||||
ulint id) /*!< in: space id */
|
||||
{
|
||||
fil_space_t* space;
|
||||
|
||||
ut_ad(fil_system);
|
||||
|
||||
mutex_enter(&fil_system->mutex);
|
||||
|
||||
space = fil_space_get_by_id(id);
|
||||
|
||||
mutex_exit(&fil_system->mutex);
|
||||
|
||||
return (space);
|
||||
}
|
||||
|
||||
/*******************************************************************//**
|
||||
Returns a pointer to the file_space_t that is in the memory cache
|
||||
associated with a space id. The caller must lock fil_system->mutex.
|
||||
|
|
|
@ -1210,5 +1210,13 @@ fil_user_tablespace_restore_page(
|
|||
ulint page_no); /* in: page_no to obtain from double
|
||||
write buffer */
|
||||
|
||||
/*******************************************************************//**
|
||||
Returns a pointer to the file_space_t that is in the memory cache
|
||||
associated with a space id.
|
||||
@return file_space_t pointer, NULL if space not found */
|
||||
fil_space_t*
|
||||
fil_space_get(
|
||||
/*==========*/
|
||||
ulint id); /*!< in: space id */
|
||||
#endif /* !UNIV_INNOCHECKSUM */
|
||||
#endif /* fil0fil_h */
|
||||
|
|
|
@ -4694,10 +4694,20 @@ buf_all_freed_instance(
|
|||
mutex_exit(&buf_pool->LRU_list_mutex);
|
||||
|
||||
if (UNIV_LIKELY_NULL(block)) {
|
||||
fprintf(stderr,
|
||||
"Page %lu %lu still fixed or dirty\n",
|
||||
fil_space_t* space = fil_space_get(block->page.space);
|
||||
ib_logf(IB_LOG_LEVEL_ERROR,
|
||||
"Page %lu %lu still fixed or dirty.",
|
||||
(ulong) block->page.space,
|
||||
(ulong) block->page.offset);
|
||||
ib_logf(IB_LOG_LEVEL_ERROR,
|
||||
"Page oldest_modification %lu fix_count %d io_fix %d.",
|
||||
block->page.oldest_modification,
|
||||
block->page.buf_fix_count,
|
||||
buf_page_get_io_fix(&block->page));
|
||||
ib_logf(IB_LOG_LEVEL_ERROR,
|
||||
"Page space_id %lu name %s.",
|
||||
(ulong)block->page.space,
|
||||
(space && space->name) ? space->name : "NULL");
|
||||
ut_error;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1342,6 +1342,28 @@ fil_space_free(
|
|||
return(TRUE);
|
||||
}
|
||||
|
||||
/*******************************************************************//**
|
||||
Returns a pointer to the file_space_t that is in the memory cache
|
||||
associated with a space id.
|
||||
@return file_space_t pointer, NULL if space not found */
|
||||
fil_space_t*
|
||||
fil_space_get(
|
||||
/*==========*/
|
||||
ulint id) /*!< in: space id */
|
||||
{
|
||||
fil_space_t* space;
|
||||
|
||||
ut_ad(fil_system);
|
||||
|
||||
mutex_enter(&fil_system->mutex);
|
||||
|
||||
space = fil_space_get_by_id(id);
|
||||
|
||||
mutex_exit(&fil_system->mutex);
|
||||
|
||||
return (space);
|
||||
}
|
||||
|
||||
/*******************************************************************//**
|
||||
Returns a pointer to the file_space_t that is in the memory cache
|
||||
associated with a space id. The caller must lock fil_system->mutex.
|
||||
|
|
|
@ -1210,6 +1210,14 @@ fil_user_tablespace_restore_page(
|
|||
ulint page_no); /* in: page_no to obtain from double
|
||||
write buffer */
|
||||
|
||||
/*******************************************************************//**
|
||||
Returns a pointer to the file_space_t that is in the memory cache
|
||||
associated with a space id.
|
||||
@return file_space_t pointer, NULL if space not found */
|
||||
fil_space_t*
|
||||
fil_space_get(
|
||||
/*==========*/
|
||||
ulint id); /*!< in: space id */
|
||||
#endif /* !UNIV_INNOCHECKSUM */
|
||||
|
||||
/*************************************************************************
|
||||
|
|
Loading…
Add table
Reference in a new issue