mirror of
https://github.com/MariaDB/server.git
synced 2026-05-15 19:37:16 +02:00
buf0buf.c Fixed a race condition in buf0lru and btr0sea which could corrupt the LRU list
buf0lru.c Fixed a race condition in buf0lru and btr0sea which could corrupt the LRU list innobase/buf/buf0buf.c: Fixed a race condition in buf0lru and btr0sea which could corrupt the LRU list innobase/buf/buf0lru.c: Fixed a race condition in buf0lru and btr0sea which could corrupt the LRU list BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted
This commit is contained in:
parent
e0296db76e
commit
34236e7747
3 changed files with 17 additions and 1 deletions
|
|
@ -863,6 +863,19 @@ buf_page_get_known_nowait(
|
|||
|
||||
mutex_enter(&(buf_pool->mutex));
|
||||
|
||||
if (block->state == BUF_BLOCK_REMOVE_HASH) {
|
||||
/* Another thread is just freeing the block from the LRU list
|
||||
of the buffer pool: do not try to access this page; this
|
||||
attempt to access the page can only come through the hash
|
||||
index because when the buffer block state is ..._REMOVE_HASH,
|
||||
we have already removed it from the page address hash table
|
||||
of the buffer pool. */
|
||||
|
||||
mutex_exit(&(buf_pool->mutex));
|
||||
|
||||
return(FALSE);
|
||||
}
|
||||
|
||||
#ifdef UNIV_SYNC_DEBUG
|
||||
buf_block_buf_fix_inc_debug(block, file, line);
|
||||
#else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue