List:Falcon Storage Engine« Previous MessageNext Message »
From:John H. Embretsen Date:June 25 2009 9:16pm
Subject:Weekly Falcon bazaar merge
View as plain text  
Hi falconers,

I just finished a merge of our bazaar branches

   mysql-6.0-falcon-team (private) --> mysql-6.0-falcon (public)


Commit comments from the merged revisions are attached to this E-mail.

As always, please test your code tree for unusual problems such as
compile errors or the like.

The latest merge will appear in the public falcon branch on Launchpad
within a couple of hours. You can create your own local branch from
launchpad:

bzr branch lp:~mysql/mysql-server/mysql-6.0-falcon

(see https://code.launchpad.net/~mysql/mysql-server/mysql-6.0-falcon)


Regards,

-- 
John


You have 23 extra revision(s):
------------------------------------------------------------
revno: 2731 [merge]
committer: John H. Embretsen 
branch nick: mysql-6.0-falcon-to-merge
timestamp: Thu 2009-06-25 22:18:15 +0200
message:
  Merged mysql-6.0-falcon-team --> mysql-6.0-falcon
    ------------------------------------------------------------
    revno: 2729.1.18
    committer: John H. Embretsen 
    branch nick: mysql-6.0-falcon-team-jsandbox
    timestamp: Thu 2009-06-25 11:06:52 -0600
    message:
      Adjust falcon_team.experimental file to reflect recent changes (tests stabilized and
moved to falcon suite).
    ------------------------------------------------------------
    revno: 2729.1.17
    committer: John H. Embretsen 
    branch nick: mysql-6.0-falcon-team-jsandbox
    timestamp: Thu 2009-06-25 10:59:40 -0600
    message:
      Bug#45331 - Tests are not run on the weekly-6.0-falcon-team tree.
      Adjustments to run all Falcon big-tests in wekly runs instead of only non-failing or
relatively "fast" tests.
      Also including falcon_team suite (although there are no big-tests there currently)
to simplify maintenance.
    ------------------------------------------------------------
    revno: 2729.1.16
    committer: Kevin Lewis 
    branch nick: mysql-6.0-falcon-team
    timestamp: Wed 2009-06-24 16:17:25 -0600
    message:
      Bug#43650 - The server calls StorageInterface::rnd_pos() when it has a list of
records previously read and sorted and it wants to read them a final time.  If the
isolation mode is read-committed, the call to fetchVersion will return NULL if the
currently committed version is deleted.  This means it was deleted during the
transaction.  Since the transaction was able to find a visible version of the record
before, that visible version MUST still be around.  So the only reason that fetchVersion
would return NULL is if the current visible version is deleted.  In repeatable-read,
fetchVersion would return that previous visible record.
      
      So if fetchVersion or fetchForUpdate returns NULL to StorageDatabase::fetch(),
instead of returning 
         StorageErrorRecordNotFound - HA_KEY_NOT_FOUND - "can't find record",
      it should return 
         StorageErrorRecordDeleted - HA_ERR_RECORD_DELETED
      so that the server will ignore this record and go  on to the nexxt record.
    ------------------------------------------------------------
    revno: 2729.1.15
    committer: Kevin Lewis 
    branch nick: mysql-6.0-falcon-team
    timestamp: Wed 2009-06-24 15:28:30 -0600
    message:
      Code Cleanup
    ------------------------------------------------------------
    revno: 2729.1.14 [merge]
    committer: Olav.Sandstaa
    branch nick: falcon-elog
    timestamp: Wed 2009-06-24 20:25:44 +0200
    message:
      Merging
        ------------------------------------------------------------
        revno: 2729.3.2 [merge]
        committer: Kevin Lewis 
        branch nick: mysql-6.0-falcon-team
        timestamp: Wed 2009-06-24 11:07:35 -0600
        message:
          merge
            ------------------------------------------------------------
            revno: 2729.4.1
            committer: Christopher Powers 
            branch nick: mysql
            timestamp: Tue 2009-06-23 19:34:01 -0500
            message:
              Bug #37565 "Crash in Field_blob::pack"
              
              Online ALTER ADD COLUMN creates a new record format that has
              more fields than the existing rows.
              
              Previously, the disparity between the old record formats and
              the newer, larger record format was handled strictly by
              StorageInterface::decodeRecord(), which set the undefined
              fields to NULL prior to returning the decoded record to
              the server. 
              
              This was generally sufficient except when the older records
              were updated. Although Table::update() assigned the new format
              to the record and Record::setEncodedRecord() resized the field
              vector, the new fields in the record were never initialized to NULL.
              
              StorageInterface::encodeRecord() now initializes undefined fields
              to NULL prior to storing the encoded record.
        ------------------------------------------------------------
        revno: 2729.3.1
        committer: Kevin Lewis 
        branch nick: mysql-6.0-falcon-team
        timestamp: Tue 2009-06-23 15:16:25 -0600
        message:
          Bug#45665 - Change the tests so that the Record::data.record is read once 
          and tested multiple times instead of calling Record functions to test it
          multiple times in Table::checkUniqueRecordVersion().  
    ------------------------------------------------------------
    revno: 2729.1.13
    committer: Olav.Sandstaa
    branch nick: falcon-elog
    timestamp: Wed 2009-06-24 15:31:32 +0200
    message:
      Bug #43490 Falcon internal thread terminate after throwing an instance of 'SQLError'
      
      When this error occurs MySQL terminates and all that is written to the log
      file is that there was on uncaught SQLError exception. 
      The Thread class has code for writing out the exception string but unless
      the correct debug flag is specified nothing is written to the log file.
      
      This patch changes the Thread class to use Log::fatal() for writing the
      excpetion's string so that it is more likely that it get written to the log
      before the process is terminated. The patch does not fix the problem but
      will hopefully make it easier to understand what caused this exception
      to occure.
    ------------------------------------------------------------
    revno: 2729.1.12
    committer: Olav.Sandstaa
    branch nick: falcon-elog
    timestamp: Wed 2009-06-24 14:59:31 +0200
    message:
      Make Falcon's default log listener (StorageInterface::logger) take into
      account the newly introduced default debug mask for the Log.
      
      With this change anything written to the StorageInterface::logger will
      be written by the logger as long as the mask given as parameter contains
      the Log's default debug mask.
    ------------------------------------------------------------
    revno: 2729.1.11
    committer: Olav.Sandstaa
    branch nick: falcon-elog
    timestamp: Tue 2009-06-23 15:20:36 +0200
    message:
      Extend Falcon's Log class with the following:
            
      1. A new debug mask called LogAlwaysWrite:
            
         This debug mask will be on by default for the Falcon log. It will not 
         be disabled if the user provides a debug at startup or changes it for
         a running server.
            
      2. A new log method Log::fatal():
            
         Log messages written using this method will always be written to 
         Falcon/MySQL's log file.
    ------------------------------------------------------------
    revno: 2729.1.10
    committer: Olav Sandstaa 
    branch nick: falcon-bug45297
    timestamp: Mon 2009-06-22 14:23:12 +0200
    message:
      Fix for Bug#44744 "Recovery stage 3: segfault in
RecoveryObjects::findRecoveryObject" and Bug#45297 "Crash
      during recovery due to pread reading beyond EOF"
      
      These crashes was both caused by an inconsistency between the Record Locator Page
and the Data page. The record 
      locator page claimed that the record was stored in a data page while the record was
not present in the data page.
      This situation can happen during recovery if the Record Locator page has been
written to disk while the 
      data page has not been written to disk when a server crash occurs. The recovery
crash happened when the code
      had locate the record by a lookup in the Record Locator page and then called
DataPage::updateRecord() where the
      record was not present. In the crash situation the record expected to be located on
the same line number as
      the maxLine of the data page. This lead to reading "garbage" from the data page and
resulted in an invalid 
      overflow page number.
      
      This patch fixes this problem by handling that DataPage::updateRecord and
DataPage::deleteLine handles to
      be called also when the record is not present in the data page. In this situation
both the functions will
      just ignore the call. DataPage::updateRecord() will return that there was not room
for the record. This will
      result in the inconsistency between the data page and the Record Locator page being
resolved since 
      the "failing" call to DataPage::updateRecord() will trigger removal of the record's
entry in the Record Locator 
      page - and the record will be inserted somewhere else.
    ------------------------------------------------------------
    revno: 2729.1.9
    committer: Kevin Lewis 
    branch nick: mysql-6.0-falcon-team
    timestamp: Thu 2009-06-18 23:40:32 -0500
    message:
      Bug#41521 - Change the timing a bit more so that the first insert ALWAYS gets done
before the second.
    ------------------------------------------------------------
    revno: 2729.1.8
    committer: Kevin Lewis 
    branch nick: mysql-6.0-falcon-team
    timestamp: Thu 2009-06-18 17:21:08 -0500
    message:
      This no longer fails.  Fixed by Bug#41357.  Moving the test from suite/falcon_team
to suite/falcon
    ------------------------------------------------------------
    revno: 2729.1.7 [merge]
    committer: Kevin Lewis 
    branch nick: mysql-6.0-falcon-team
    timestamp: Thu 2009-06-18 14:49:29 -0500
    message:
      Merge
        ------------------------------------------------------------
        revno: 2729.2.1
        committer: lars-erik.bjork
        branch nick: clean
        timestamp: Thu 2009-06-18 19:56:06 +0200
        message:
          Removing all references to CHECK_DEFERRED_INDEXES. This is old, dead code
          
          Modified file 'storage/falcon/DeferredIndex.cpp'
          Modified file 'storage/falcon/Index.cpp'
          Modified file 'storage/falcon/Index.h'
    ------------------------------------------------------------
    revno: 2729.1.6
    committer: Kevin Lewis 
    branch nick: mysql-6.0-falcon-team
    timestamp: Thu 2009-06-18 14:48:02 -0500
    message:
      Bug#42140 - Move tests from falcon_team to falcon suite
    ------------------------------------------------------------
    revno: 2729.1.5
    committer: Kevin Lewis 
    branch nick: mysql-6.0-falcon-team
    timestamp: Thu 2009-06-18 14:35:15 -0500
    message:
      Bug#42140 - Add some sleeps and an extra select to better assure the timing between
connections.
    ------------------------------------------------------------
    revno: 2729.1.4
    committer: Kevin Lewis 
    branch nick: mysql-6.0-falcon-team
    timestamp: Thu 2009-06-18 11:32:33 -0500
    message:
      Bug#43554 - Move falcon_deadlock test to suite/falcon
    ------------------------------------------------------------
    revno: 2729.1.3
    committer: John H. Embretsen 
    branch nick: mysql-6.0-falcon-team-pbfix
    timestamp: Thu 2009-06-18 11:07:49 +0200
    message:
      Merge (cherrypick) non-fix (temporary move to "experimental" status) for test
backup_external_non_win which fails on Solaris, see bug 
      45117. Merged from mysql-6.0-backup-merge.
    ------------------------------------------------------------
    revno: 2729.1.2
    committer: John H. Embretsen 
    branch nick: mysql-6.0-falcon-team-pbfix
    timestamp: Thu 2009-06-18 10:19:53 +0200
    message:
      Bug#45331 (partial): Run Falcon tests found in certain non-falcon test suites in
daily and weekly PB2 runs in Falcon branches.
      Also run the regular falcon suite and the falcon_team suite (instead of the
irrelevant rpl_ndb suite) in daily PB2 for 
      mysql-6.0-falcon branch (and possibly children of that branch).
    ------------------------------------------------------------
    revno: 2729.1.1
    committer: John H. Embretsen 
    branch nick: mysql-6.0-falcon-team-pbfix
    timestamp: Wed 2009-06-17 17:27:41 +0200
    message:
      Bug#45331 (partial): Add Falcon's -big tests as weekly tests in PB2.
      For now only adding tests that are not known to fail often or drag out in time.
Tests are specified in falcon-team's weekly file in 
      mysql-test/collections. Timeout values may need to be adjusted depending on PB2
firepower and behavior (currently set to 5 hrs for a 
      single test and 24 hrs for the entire test run (suite)). 
      The following big tests are excluded for the time being:
      
         falcon.falcon_bug_22150-big          - Too time-consuming (more than 3 hrs on an
8-core Solaris 10 box)
         falcon_bug_22154-big                 - Fails often (bug 36631)
         falcon_bug_36294-big                 - Fails often (possibly bug 36631)
         falcon_record_cache_memory_leak2-big - Too time-consuming 
      
      Tests and settings can/should be adjusted after some initial trial period.

Thread
Weekly Falcon bazaar mergeJohn H. Embretsen25 Jun