MySQL Lists are EOL. Please join:

List:Commits« Previous MessageNext Message »
From:Olav Sandstaa Date:May 18 2009 9:42am
Subject:bzr commit into mysql-6.0-falcon-team branch (olav:2707) Bug#44292
View as plain text  
#At file:///home/os136802/mysql/develop/repo/falcon-bug44292/ based on revid:john.embretsen@stripped

 2707 Olav Sandstaa	2009-05-18
      Fix for Bug#44292 falcon_bug_34351_C fails with assertion (false) in file RecordLocatorPage.cpp
      
      This crash was caused by an inconsistency in the RecordLocator
      page. In some situations the maxLine value was not updates when
      inserting new space management slots. This could cause later updates
      to the record locator page to introduce inconsistencies in the record
      index.
      
      This patch changes RecordLocatorPage::setIndexSlot() to handle
      situations where the slot to be inserted has a slot number larger than
      the maxLine value. Before this patch if a slot number that was larger
      than the current maxLine value was inserted, the maxLine value was not
      updated accordingly. The fix is to update the maxLine value based on
      the inserted slot number.
     @ storage/falcon/RecordLocatorPage.cpp
        Fix for inconsistency in RecordLocatorPage. RecordLocatorPage::setIndexSlot() is changed so that it handles situations where the slot to be inserted on the page has a slot number that is
        larger than the maxLine value.

    modified:
      storage/falcon/RecordLocatorPage.cpp
=== modified file 'storage/falcon/RecordLocatorPage.cpp'
--- a/storage/falcon/RecordLocatorPage.cpp	2009-04-14 17:21:13 +0000
+++ b/storage/falcon/RecordLocatorPage.cpp	2009-05-18 09:42:26 +0000
@@ -360,6 +360,7 @@ void RecordLocatorPage::setIndexSlot(int
 			elements[spaceSlot].spaceAvailable = availableSpace;
 			element->page = pageNumber;
 			element->line = line;
+			maxLine = MAX(maxLine, slot + 1);
 			//validateSpaceSlots();
 			
 			return;
@@ -379,6 +380,7 @@ void RecordLocatorPage::setIndexSlot(int
 	element->page = pageNumber;
 	element->line = line;
 	insertSpaceSlot(slot, availableSpace);
+	maxLine = MAX(maxLine, slot + 1);
 	//validateSpaceSlots();
 }
 


Attachment: [text/bzr-bundle] bzr/olav@sun.com-20090518094226-0bt39y8v3qfya117.bundle
Thread
bzr commit into mysql-6.0-falcon-team branch (olav:2707) Bug#44292Olav Sandstaa18 May
  • Re: bzr commit into mysql-6.0-falcon-team branch (olav:2707) Bug#44292Kevin Lewis18 May