Below is the list of changes that have just been committed into a local
5.1 repository of dkatz. When dkatz does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2007-07-31 19:58:18-04:00, dkatz@stripped +1 -0
Bug #30091 Deadlock in mysql-test-run during bootstrap on Windows with '--debug'
sql/sql_cache.cc@stripped, 2007-07-31 19:58:09-04:00, dkatz@stripped +2 -2
Moved the debug check_integrity call to after the cache state is set back to NO_FLUSH_IN_PROGRESS. This was hanging because the check_integrity call can only proceed when the flush is completed, but we were performing the check during a flush.
diff -Nrup a/sql/sql_cache.cc b/sql/sql_cache.cc
--- a/sql/sql_cache.cc 2007-07-16 14:34:33 -04:00
+++ b/sql/sql_cache.cc 2007-07-31 19:58:09 -04:00
@@ -878,12 +878,12 @@ ulong Query_cache::resize(ulong query_ca
query_cache_size= query_cache_size_arg;
ulong new_query_cache_size= init_cache();
- DBUG_EXECUTE("check_querycache",check_integrity(0););
-
STRUCT_LOCK(&structure_guard_mutex);
m_cache_status= Query_cache::NO_FLUSH_IN_PROGRESS;
pthread_cond_signal(&COND_cache_status_changed);
STRUCT_UNLOCK(&structure_guard_mutex);
+
+ DBUG_EXECUTE("check_querycache",check_integrity(0););
DBUG_RETURN(new_query_cache_size);
}