diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index 049e31bff81..345c980a097 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -1,12 +1,3 @@ +jani@hynda.mysql.fi heikki@donna.mysql.fi -jcole@abel.spaceapes.com -jcole@tetra.spaceapes.com monty@donna.mysql.fi -monty@tik.mysql.fi -mwagner@evoq.mwagner.org -paul@central.snake.net -sasha@mysql.sashanet.com -sasha@work.mysql.com -serg@serg.mysql.com -tim@threads.polyesthetic.msg -tim@work.mysql.com diff --git a/Docs/manual.texi b/Docs/manual.texi index 6558575aa9f..3cc64a0067b 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -26463,6 +26463,10 @@ option to @code{configure}, and the character set configuration files listed in @file{SHAREDIR/charsets/Index}. @xref{Quick install}. +If you change the character set when running MySQL (which may also +change the sort order), you must run myisamchk -r -q on all +tables. Otherwise your indexes may not be ordered correctly. + When a client connects to a @strong{MySQL} server, the server sends the default character set in use to the client. The client will switch to use this character set for this connection. diff --git a/innobase/buf/buf0buf.c b/innobase/buf/buf0buf.c index 16662b6c51c..34fbc5b9f98 100644 --- a/innobase/buf/buf0buf.c +++ b/innobase/buf/buf0buf.c @@ -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 diff --git a/innobase/buf/buf0lru.c b/innobase/buf/buf0lru.c index 26bdd7db1fe..4626dc2757b 100644 --- a/innobase/buf/buf0lru.c +++ b/innobase/buf/buf0lru.c @@ -138,6 +138,8 @@ buf_LRU_search_and_free_block( mutex_enter(&(buf_pool->mutex)); + ut_a(block->buf_fix_count == 0); + buf_LRU_block_free_hashed_page(block); freed = TRUE; @@ -435,7 +437,7 @@ buf_LRU_add_block_to_end_low( defined: init it */ buf_LRU_old_init(); - } + } } /**********************************************************************