From e0296db76e3d02b6aa239cf27588db523928aab5 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 15 Mar 2001 15:00:39 +0200 Subject: [PATCH 1/2] Updated manual. BitKeeper/etc/logging_ok: Logging to logging@openlogging.org accepted --- BitKeeper/etc/logging_ok | 13 +------------ Docs/manual.texi | 4 ++++ 2 files changed, 5 insertions(+), 12 deletions(-) diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index 049e31bff81..966f7a398de 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -1,12 +1 @@ -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 +jani@hynda.mysql.fi diff --git a/Docs/manual.texi b/Docs/manual.texi index 6c2d45d7948..3e02ab2d958 100644 --- a/Docs/manual.texi +++ b/Docs/manual.texi @@ -26421,6 +26421,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. From 34236e77473358d13cd087ecb3791bca4c3e8b20 Mon Sep 17 00:00:00 2001 From: unknown Date: Fri, 16 Mar 2001 00:22:21 +0200 Subject: [PATCH 2/2] 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 --- BitKeeper/etc/logging_ok | 1 + innobase/buf/buf0buf.c | 13 +++++++++++++ innobase/buf/buf0lru.c | 4 +++- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok index 966f7a398de..10d6827b09d 100644 --- a/BitKeeper/etc/logging_ok +++ b/BitKeeper/etc/logging_ok @@ -1 +1,2 @@ jani@hynda.mysql.fi +heikki@donna.mysql.fi 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(); - } + } } /**********************************************************************