List:Commits« Previous MessageNext Message »
From:Christopher Powers Date:November 14 2008 2:50pm
Subject:bzr push into mysql-6.0-falcon-team branch (cpowers:2910)
View as plain text  
 2910 Christopher Powers	2008-11-14 [merge]
      merge
removed:
  mysql-test/suite/rpl/r/rpl_row_stop_middle.result
  mysql-test/suite/rpl/t/rpl_row_stop_middle.test
  unittest/mysys/CMakeLists.txt
added:
  mysql-test/r/partition_innodb_stmt.result
  mysql-test/r/query_cache_disabled.result
  mysql-test/t/partition_innodb_stmt.test
  mysql-test/t/query_cache_disabled-master.opt
  mysql-test/t/query_cache_disabled.test
  sql/MSG00001.bin
  sql/message.h
  sql/message.rc
  unittest/mysys/CMakeLists.txt
modified:
  BUILD/SETUP.sh
  configure.in
  include/Makefile.am
  include/config-netware.h
  include/my_pthread.h
  include/mysql_com.h
  mysql-test/extra/rpl_tests/rpl_insert_id.test
  mysql-test/extra/rpl_tests/rpl_row_basic.test
  mysql-test/include/restart_mysqld.inc
  mysql-test/include/wait_until_connected_again.inc
  mysql-test/r/alter_table.result
  mysql-test/r/ctype_cp1251.result
  mysql-test/r/ctype_ldml.result
  mysql-test/r/debug_sync.result
  mysql-test/r/events_bugs.result
  mysql-test/r/explain.result
  mysql-test/r/group_by.result
  mysql-test/r/information_schema.result
  mysql-test/r/information_schema_parameters.result
  mysql-test/r/information_schema_part.result
  mysql-test/r/information_schema_routines.result
  mysql-test/r/innodb_data_home_dir_basic.result
  mysql-test/r/innodb_flush_method_basic.result
  mysql-test/r/innodb_mysql.result
  mysql-test/r/limit.result
  mysql-test/r/locktrans_innodb.result
  mysql-test/r/locktrans_myisam.result
  mysql-test/r/log_tables.result
  mysql-test/r/merge.result
  mysql-test/r/metadata.result
  mysql-test/r/order_by.result
  mysql-test/r/partition.result
  mysql-test/r/partition_archive.result
  mysql-test/r/partition_datatype.result
  mysql-test/r/partition_innodb.result
  mysql-test/r/partition_mgm.result
  mysql-test/r/partition_mgm_err.result
  mysql-test/r/partition_not_windows.result
  mysql-test/r/partition_range.result
  mysql-test/r/partition_symlink.result
  mysql-test/r/partition_windows.result
  mysql-test/r/ps_11bugs.result
  mysql-test/r/show_check.result
  mysql-test/r/sp.result
  mysql-test/r/ssl_capath_basic.result
  mysql-test/r/ssl_cipher_basic.result
  mysql-test/r/subselect3.result
  mysql-test/r/subselect_sj.result
  mysql-test/r/symlink.result
  mysql-test/r/thread_cache_size_func.result
  mysql-test/r/variables.result
  mysql-test/r/view.result
  mysql-test/r/windows.result
  mysql-test/r/xa.result
  mysql-test/std_data/Index.xml
  mysql-test/suite/backup/r/backup_backupdir.result
  mysql-test/suite/falcon/r/falcon_bug_33404.result
  mysql-test/suite/falcon/t/falcon_bug_28095.test
  mysql-test/suite/funcs_1/r/is_columns_is.result
  mysql-test/suite/funcs_1/r/is_events.result
  mysql-test/suite/funcs_1/r/is_routines.result
  mysql-test/suite/funcs_1/r/is_triggers.result
  mysql-test/suite/ndb/r/ndb_partition_key.result
  mysql-test/suite/ndb/r/ndb_partition_range.result
  mysql-test/suite/ndb_team/r/ndb_dd_backuprestore.result
  mysql-test/suite/parts/inc/partition_auto_increment.inc
  mysql-test/suite/parts/inc/partition_directory.inc
  mysql-test/suite/parts/inc/partition_mgm.inc
  mysql-test/suite/parts/r/ndb_dd_backuprestore.result
  mysql-test/suite/parts/r/part_supported_sql_func_innodb.result
  mysql-test/suite/parts/r/part_supported_sql_func_myisam.result
  mysql-test/suite/parts/r/part_supported_sql_func_ndb.result
  mysql-test/suite/parts/r/partition_alter1_1_2_innodb.result
  mysql-test/suite/parts/r/partition_alter1_1_2_myisam.result
  mysql-test/suite/parts/r/partition_alter1_1_innodb.result
  mysql-test/suite/parts/r/partition_alter1_1_myisam.result
  mysql-test/suite/parts/r/partition_alter1_2_innodb.result
  mysql-test/suite/parts/r/partition_alter1_2_myisam.result
  mysql-test/suite/parts/r/partition_alter2_1_innodb.result
  mysql-test/suite/parts/r/partition_alter2_1_myisam.result
  mysql-test/suite/parts/r/partition_alter2_2_innodb.result
  mysql-test/suite/parts/r/partition_alter2_2_myisam.result
  mysql-test/suite/parts/r/partition_alter3_innodb.result
  mysql-test/suite/parts/r/partition_alter3_myisam.result
  mysql-test/suite/parts/r/partition_alter4_innodb.result
  mysql-test/suite/parts/r/partition_alter4_myisam.result
  mysql-test/suite/parts/r/partition_auto_increment_archive.result
  mysql-test/suite/parts/r/partition_auto_increment_blackhole.result
  mysql-test/suite/parts/r/partition_auto_increment_falcon.result
  mysql-test/suite/parts/r/partition_auto_increment_innodb.result
  mysql-test/suite/parts/r/partition_auto_increment_memory.result
  mysql-test/suite/parts/r/partition_auto_increment_myisam.result
  mysql-test/suite/parts/r/partition_auto_increment_ndb.result
  mysql-test/suite/parts/r/partition_basic_innodb.result
  mysql-test/suite/parts/r/partition_basic_myisam.result
  mysql-test/suite/parts/r/partition_basic_symlink_innodb.result
  mysql-test/suite/parts/r/partition_basic_symlink_myisam.result
  mysql-test/suite/parts/r/partition_bit_innodb.result
  mysql-test/suite/parts/r/partition_bit_myisam.result
  mysql-test/suite/parts/r/partition_bit_ndb.result
  mysql-test/suite/parts/r/partition_char_innodb.result
  mysql-test/suite/parts/r/partition_char_myisam.result
  mysql-test/suite/parts/r/partition_datetime_innodb.result
  mysql-test/suite/parts/r/partition_datetime_myisam.result
  mysql-test/suite/parts/r/partition_decimal_innodb.result
  mysql-test/suite/parts/r/partition_decimal_myisam.result
  mysql-test/suite/parts/r/partition_engine_innodb.result
  mysql-test/suite/parts/r/partition_engine_myisam.result
  mysql-test/suite/parts/r/partition_engine_ndb.result
  mysql-test/suite/parts/r/partition_float_innodb.result
  mysql-test/suite/parts/r/partition_float_myisam.result
  mysql-test/suite/parts/r/partition_int_innodb.result
  mysql-test/suite/parts/r/partition_int_myisam.result
  mysql-test/suite/parts/r/partition_int_ndb.result
  mysql-test/suite/parts/r/partition_mgm_lc0_archive.result
  mysql-test/suite/parts/r/partition_mgm_lc0_innodb.result
  mysql-test/suite/parts/r/partition_mgm_lc0_memory.result
  mysql-test/suite/parts/r/partition_mgm_lc0_myisam.result
  mysql-test/suite/parts/r/partition_mgm_lc0_ndb.result
  mysql-test/suite/parts/r/partition_mgm_lc1_archive.result
  mysql-test/suite/parts/r/partition_mgm_lc1_innodb.result
  mysql-test/suite/parts/r/partition_mgm_lc1_memory.result
  mysql-test/suite/parts/r/partition_mgm_lc1_myisam.result
  mysql-test/suite/parts/r/partition_mgm_lc1_ndb.result
  mysql-test/suite/parts/r/partition_mgm_lc2_archive.result
  mysql-test/suite/parts/r/partition_mgm_lc2_innodb.result
  mysql-test/suite/parts/r/partition_mgm_lc2_memory.result
  mysql-test/suite/parts/r/partition_mgm_lc2_myisam.result
  mysql-test/suite/parts/r/partition_mgm_lc2_ndb.result
  mysql-test/suite/parts/r/partition_special_innodb.result
  mysql-test/suite/parts/r/partition_special_myisam.result
  mysql-test/suite/parts/r/partition_syntax_innodb.result
  mysql-test/suite/parts/r/partition_syntax_myisam.result
  mysql-test/suite/parts/r/rpl_partition.result
  mysql-test/suite/parts/t/partition_mgm_lc0_archive.test
  mysql-test/suite/rpl/r/rpl_extraCol_innodb.result
  mysql-test/suite/rpl/r/rpl_extraCol_myisam.result
  mysql-test/suite/rpl/r/rpl_innodb_bug28430.result
  mysql-test/suite/rpl/r/rpl_insert_id.result
  mysql-test/suite/rpl/r/rpl_locktrans_myisam.result
  mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result
  mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result
  mysql-test/suite/rpl/r/rpl_row_basic_8partition.result
  mysql-test/suite/rpl/t/disabled.def
  mysql-test/suite/rpl_ndb/r/rpl_ndb_extraCol.result
  mysql-test/suite/rpl_ndb/r/rpl_ndb_innodb2ndb.result
  mysql-test/suite/rpl_ndb_big/r/rpl_ndb_2innodb.result
  mysql-test/suite/rpl_ndb_big/r/rpl_ndb_2myisam.result
  mysql-test/suite/rpl_ndb_big/r/rpl_ndb_dd_partitions.result
  mysql-test/suite/rpl_ndb_big/r/rpl_ndb_myisam2ndb.result
  mysql-test/suite/rpl_ndb_big/r/rpl_row_basic_7ndb.result
  mysql-test/t/alter_table.test
  mysql-test/t/ctype_cp1251.test
  mysql-test/t/ctype_ldml.test
  mysql-test/t/disabled.def
  mysql-test/t/events_bugs.test
  mysql-test/t/explain.test
  mysql-test/t/group_by.test
  mysql-test/t/information_schema.test
  mysql-test/t/innodb_mysql.test
  mysql-test/t/limit.test
  mysql-test/t/log_tables.test
  mysql-test/t/merge.test
  mysql-test/t/metadata.test
  mysql-test/t/order_by.test
  mysql-test/t/partition.test
  mysql-test/t/partition_innodb.test
  mysql-test/t/partition_mgm.test
  mysql-test/t/partition_mgm_err.test
  mysql-test/t/partition_not_windows.test
  mysql-test/t/ps_11bugs.test
  mysql-test/t/query_cache_limit_func.test
  mysql-test/t/query_cache_type_basic.test
  mysql-test/t/query_cache_type_func.test
  mysql-test/t/query_cache_wlock_invalidate_basic.test
  mysql-test/t/query_cache_wlock_invalidate_func.test
  mysql-test/t/sp.test
  mysql-test/t/subselect3.test
  mysql-test/t/subselect_sj.test
  mysql-test/t/thread_cache_size_func.test
  mysql-test/t/view.test
  mysql-test/t/windows.test*
  mysql-test/t/xa.test
  mysql-test/valgrind.supp
  mysys/my_init.c
  mysys/my_pthread.c
  mysys/my_symlink.c
  mysys/my_wincond.c
  mysys/my_winthread.c
  mysys/thr_alarm.c
  mysys/thr_mutex.c
  scripts/mysqldumpslow.sh
  sql/CMakeLists.txt
  sql/Makefile.am
  sql/backup/kernel.cc
  sql/backup/logger.h
  sql/event_scheduler.cc
  sql/field.cc
  sql/field.h
  sql/ha_partition.cc
  sql/ha_partition.h
  sql/handler.cc
  sql/handler.h
  sql/item.cc
  sql/item.h
  sql/item_cmpfunc.cc
  sql/item_func.cc
  sql/item_func.h
  sql/item_sum.cc
  sql/item_sum.h
  sql/key.cc
  sql/log_event.cc
  sql/log_event_old.cc
  sql/message.mc
  sql/mysql_priv.h
  sql/mysqld.cc
  sql/opt_range.cc
  sql/opt_sum.cc
  sql/partition_info.cc
  sql/set_var.cc
  sql/set_var.h
  sql/share/errmsg.txt
  sql/slave.cc
  sql/slave.h
  sql/sql_base.cc
  sql/sql_cache.cc
  sql/sql_cache.h
  sql/sql_class.cc
  sql/sql_class.h
  sql/sql_delete.cc
  sql/sql_error.cc
  sql/sql_insert.cc
  sql/sql_lex.cc
  sql/sql_lex.h
  sql/sql_parse.cc
  sql/sql_partition.cc
  sql/sql_plugin.cc
  sql/sql_prepare.cc
  sql/sql_select.cc
  sql/sql_show.cc
  sql/sql_table.cc
  sql/sql_view.cc
  sql/sql_yacc.yy
  sql/transaction.cc
  sql/unireg.cc
  sql/unireg.h
  storage/archive/ha_archive.cc
  storage/falcon/Log.h
  storage/falcon/StorageHandler.cpp
  storage/falcon/StorageVersion.h
  storage/falcon/ha_falcon.cpp
  storage/falcon/ha_falcon.h
  storage/innobase/handler/ha_innodb.cc
  storage/innobase/include/srv0srv.h
  storage/innobase/os/os0thread.c
  storage/innobase/srv/srv0srv.c
  strings/ctype-uca.c
  strings/ctype.c
  support-files/mysql.spec.sh
  tests/mysql_client_test.c

=== modified file 'storage/falcon/DeferredIndex.cpp'
--- a/storage/falcon/DeferredIndex.cpp	2008-10-16 02:53:35 +0000
+++ b/storage/falcon/DeferredIndex.cpp	2008-11-13 09:04:22 +0000
@@ -862,6 +862,10 @@ void DeferredIndex::chill(Dbb *dbb)
 	leaf->count = 0;
 	root = leaf;
 	count = 0;
+	minValue = NULL;
+	maxValue = NULL;
+	haveMinValue = true;
+	haveMaxValue = true;
 
 	Log::log(LogInfo, "%d: Index chill: transaction %ld, index %ld, %ld bytes, address %p, vofs %llx\n",
 				dbb->database->deltaTime, transaction->transactionId, index->indexId, sizeEstimate, this, virtualOffset);

=== modified file 'storage/falcon/SRLUpdateIndex.cpp'
--- a/storage/falcon/SRLUpdateIndex.cpp	2008-11-11 22:33:27 +0000
+++ b/storage/falcon/SRLUpdateIndex.cpp	2008-11-13 09:04:22 +0000
@@ -60,14 +60,16 @@ void SRLUpdateIndex::append(DeferredInde
 	uint64 virtualOffset = 0;
 	uint64 virtualOffsetAtEnd = 0;
 
-	// Save the absolute offset of the DeferredIndex record within the serial log
-
-	virtualOffset = log->writeWindow->getNextVirtualOffset();
-
 	for (DINode *node = walker.next(); node;)
 		{
 		START_RECORD(srlUpdateIndex, "SRLUpdateIndex::append(2)");
 		
+		// Save the absolute offset of the DeferredIndex record within the serial log.
+		// This must be done inside the SerialLog::syncWrite lock set by START_RECORD().
+
+		if (virtualOffset == 0)
+			virtualOffset = log->startRecordVirtualOffset;
+
 		log->updateIndexUseVector(indexId, tableSpaceId, 1);
 		SerialLogTransaction *srlTrans = log->getTransaction(transaction->transactionId);
 		srlTrans->setTransaction(transaction);
@@ -238,9 +240,9 @@ void SRLUpdateIndex::thaw(DeferredIndex*
 {
 	Sync sync(&log->syncWrite, "SRLUpdateIndex::thaw");
 	sync.lock(Exclusive);
+
 	uint64 virtualOffset = deferredIndex->virtualOffset;
 	int recordNumber = 0;  // a valid record number to get into the loop.
-	ASSERT(deferredIndex->virtualOffset);
 	Transaction *trans = deferredIndex->transaction;
 	TransId transId = trans->transactionId;
 	indexId = deferredIndex->index->indexId;
@@ -255,7 +257,7 @@ void SRLUpdateIndex::thaw(DeferredIndex*
 	
 	if (window == NULL)
 		{
-		Log::log("A window for DeferredIndex::virtualOffset=" I64FORMAT " could not be found.\n", deferredIndex->virtualOffset);
+		Log::log("Index thaw FAIL: A window for DeferredIndex::virtualOffset=" I64FORMAT " could not be found.\n", deferredIndex->virtualOffset);
 		log->printWindows();
 		return;
 		}
@@ -302,7 +304,10 @@ void SRLUpdateIndex::thaw(DeferredIndex*
 	if (srlRecord && srlRecord->type == srlVersion)
 		srlRecord = control->nextRecord();
 		
-	ASSERT(srlRecord->type == srlUpdateIndex);
+	if (srlRecord)
+		ASSERT(srlRecord->type == srlUpdateIndex);
+	else
+		Log::log("Index thaw FAIL: SRLUpdateIndex record not found. DeferredIndex::virtualOffset=" I64FORMAT "\n", deferredIndex->virtualOffset);
 	
 	// The DeferredIndex may reside in several serial log records. Read each record and
 	// rebuild the index from the nodes stored within the record.

=== modified file 'storage/falcon/SRLUpdateRecords.cpp'
--- a/storage/falcon/SRLUpdateRecords.cpp	2008-11-09 01:44:58 +0000
+++ b/storage/falcon/SRLUpdateRecords.cpp	2008-11-13 09:04:22 +0000
@@ -76,6 +76,9 @@ int SRLUpdateRecords::thaw(RecordVersion
 	if (!window)
 		return 0;
 		
+	Sync sync(&log->syncWrite, "SRLUpdateRecords::thaw");
+	sync.lock(Exclusive);
+	
 	// Return pointer to record data
 
 	control->input = window->buffer + (record->getVirtualOffset() - window->virtualOffset);
@@ -94,14 +97,15 @@ int SRLUpdateRecords::thaw(RecordVersion
 	int dataLength   = control->getInt();
 	int bytesReallocated = 0;
 	
+	window->deactivateWindow();
+	sync.unlock();
+	
 	// setRecordData() handles race conditions with an interlocked compare and exchange,
 	// but check the state and record number anyway
 
 	if (record->state == recChilled && recordNumber == record->recordNumber)
 		bytesReallocated = record->setRecordData(control->input, dataLength);
 
-	window->deactivateWindow();
-
 	if (bytesReallocated > 0)
 		{
 		ASSERT(recordNumber == record->recordNumber);

=== modified file 'storage/falcon/SerialLog.cpp'
--- a/storage/falcon/SerialLog.cpp	2008-10-30 00:22:54 +0000
+++ b/storage/falcon/SerialLog.cpp	2008-11-13 09:04:22 +0000
@@ -131,6 +131,7 @@ SerialLog::SerialLog(Database *db, JStri
 	gophers = NULL;
 	wantToSerializeGophers = 0;
 	serializeGophers = 0;
+	startRecordVirtualOffset = 0;
 	
 	for (uint n = 0; n < falcon_gopher_threads; ++n)
 		{
@@ -711,6 +712,8 @@ void SerialLog::startRecord()
 	if (writeError)
 		throw SQLError(IO_ERROR_SERIALLOG, "Previous I/O error on serial log prevents further processing");
 
+	startRecordVirtualOffset = writeWindow->getNextVirtualOffset();
+	
 	if (writePtr == writeBlock->data)
 		putVersion();
 

=== modified file 'storage/falcon/SerialLog.h'
--- a/storage/falcon/SerialLog.h	2008-10-20 21:28:11 +0000
+++ b/storage/falcon/SerialLog.h	2008-11-13 09:04:22 +0000
@@ -224,6 +224,7 @@ public:
 	uint64				chilledBytes;
 	int32				wantToSerializeGophers;
 	int32				serializeGophers;
+	uint64				startRecordVirtualOffset;
 
 	TableSpaceInfo		*tableSpaces[SLT_HASH_SIZE];
 	TableSpaceInfo		*tableSpaceInfo;

Thread
bzr push into mysql-6.0-falcon-team branch (cpowers:2910) Christopher Powers14 Nov