MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:Christopher Powers Date:March 9 2009 12:12pm
Subject:bzr commit into mysql-6.0-falcon-team branch (christopher.powers:3057)
Bug#43504
View as plain text  
#At file:///home/cpowers/work/dev/dev-01/mysql/

 3057 Christopher Powers	2009-03-09
      Bug #43504 "Falcon DBT2 crash in Table::rollbackRecord()"
      
      It is possible that the backlogger may remove a locked record
      chain from the record tree. Disable backlogging until
      this is corrected.
      
      Also made a minor, somewhat unrelated fix in Table::allocRecord()
      and Table::allocRecordVersion().
modified:
  storage/falcon/Database.cpp
  storage/falcon/Table.cpp

per-file messages:
  storage/falcon/Database.cpp
    Disabled backlogging
  storage/falcon/Table.cpp
    Table::allocRecord() and Table::allocRecordVersion() allocate record
    object metadata independently of the record cache, so these methods
    do not need to check if scavenging is necessary.
=== modified file 'storage/falcon/Database.cpp'
--- a/storage/falcon/Database.cpp	2009-03-03 07:09:29 +0000
+++ b/storage/falcon/Database.cpp	2009-03-09 12:12:14 +0000
@@ -1840,6 +1840,9 @@ void Database::scavengeRecords(bool forc
 	recordScavenge.retiredActiveMemory = recordMemoryControl->getCurrentMemory(MemMgrRecordData);
 	recordScavenge.retireStop = deltaTime;
 
+	// Backlogging disabled: Bug#43504 "Falcon DBT2 crash in Table::rollbackRecord()"
+
+#if 0 
 	// Enable backlogging if memory is low
 
 	if (recordScavenge.retiredActiveMemory > recordScavengeFloor)
@@ -1851,6 +1854,7 @@ void Database::scavengeRecords(bool forc
 			if (--lowMemoryCount == 0)
 				clearLowMemory();
 		}
+#endif	
 
 	recordScavenge.print();
 	// Log::log(analyze(analyzeRecordLeafs));

=== modified file 'storage/falcon/Table.cpp'
--- a/storage/falcon/Table.cpp	2009-03-07 01:37:19 +0000
+++ b/storage/falcon/Table.cpp	2009-03-09 12:12:14 +0000
@@ -3666,9 +3666,6 @@ RecordVersion* Table::allocRecordVersion
 		{
 		try
 			{
-			if ((++database->recordPoolAllocCount & 0x7F) == 0)
-				database->checkRecordScavenge();
-
 			return POOL_NEW(database->recordVersionPool) RecordVersion(this, format, transaction, priorVersion);
 			}
 
@@ -3703,9 +3700,6 @@ Record* Table::allocRecord(int recordNum
 		{
 		try
 			{
-			if ((++database->recordPoolAllocCount & 0x7F) == 0)
-				database->checkRecordScavenge();
-
 			return POOL_NEW(database->recordPool) Record (this, recordNumber, stream);
 			}
 

Thread
bzr commit into mysql-6.0-falcon-team branch (christopher.powers:3057)Bug#43504Christopher Powers9 Mar
  • Re: bzr commit into mysql-6.0-falcon-team branch(christopher.powers:3057) Bug#43504Kevin Lewis9 Mar