List:Commits« Previous MessageNext Message »
From:Rafal Somla Date:March 31 2008 11:32am
Subject:Re: bk commit into 6.0 tree (rafal:1.2606) BUG#34721
View as plain text  
Hi Chuck,

I added a test case for testing the backup engine selection logic. The new patch 
is <http://lists.mysql.com/commits/44675>

Rafal

Chuck Bell wrote:
> Rafal,
> 
> I think we need to add a test for this using DBUG_EXECUTE_IF(). It will help
> us detect problems when new native drivers are added and/or some collateral
> errors occur based changes to the server or backup code.
> 
> Chuck 
> 
>> -----Original Message-----
>> From: rsomla@stripped [mailto:rsomla@stripped] 
>> Sent: Tuesday, March 25, 2008 10:22 AM
>> To: commits@stripped
>> Subject: bk commit into 6.0 tree (rafal:1.2606) BUG#34721
>>
>> Below is the list of changes that have just been committed 
>> into a local 6.0 repository of rafal.  When rafal 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, 2008-03-25 15:22:11+01:00, rafal@quant.(none) +2 -0
>>   BUG#34721 (Backup driver can't refuse to provide driver):
>>   
>>   This patch modifies backup kernel so that it falls back to 
>> built in backup
>>   engines in case a native backup engine can not be created. 
>>   
>>   This is for the special case when storage engine defines a 
>> get_backup_engine()
>>   factory function (inside the handlerton), but that function 
>> fails to create a
>>   backup engine instance. Previous code haven't dealt 
>> correctly with that case. 
>>   Now it puts a warning and tries the built-in engines.
>>
>>   sql/backup/backup_info.cc@stripped, 2008-03-25 15:22:04+01:00, 
>> rafal@quant.(none) +10 -9
>>     In case a native backup engine has been selected for a 
>> given table, check if 
>>     created Native_snapshot object is valid (in particular, 
>> has successfully created 
>>     the engine). Only then use it for that table, otherwise 
>> try other backup engines 
>>     including the built-in ones.
>>
>>   sql/backup/be_native.h@stripped, 2008-03-25 15:22:05+01:00, 
>> rafal@quant.(none) +1 -1
>>     If the get_backup_engine() factory function defined by a 
>> storage engine failes 
>>     to create a native backup engine don't treat it as a 
>> (fatal) error. In that case 
>>     we will try to use default, built-in backup engines. Thus 
>> only warning is printed.
>>
>> diff -Nrup a/sql/backup/backup_info.cc b/sql/backup/backup_info.cc
>> --- a/sql/backup/backup_info.cc	2008-03-21 09:43:43 +01:00
>> +++ b/sql/backup/backup_info.cc	2008-03-25 15:22:04 +01:00
>> @@ -83,16 +83,17 @@ Backup_info::find_backup_engine(const ba
>>      {
>>        Native_snapshot *nsnap= new Native_snapshot(m_ctx, se);
>>        DBUG_ASSERT(nsnap);
>> -      snapshots.push_front(nsnap);
>> -      native_snapshots.insert(se, nsnap);
>>  
>> -      /*
>> -        Question: Can native snapshot for a given storage 
>> engine not accept
>> -        a table using that engine? If yes, then what to do 
>> in that case - error 
>> -        or try other (default) snapshots?
>> -       */     
>> -      DBUG_ASSERT(nsnap->accept(tbl, se));
>> -      snap= nsnap;
>> +      if (nsnap->is_valid())
>> +      {
>> +        snapshots.push_front(nsnap);
>> +        native_snapshots.insert(se, nsnap);
>> +
>> +        if (nsnap->accept(tbl, se))        
>> +          snap= nsnap;
>> +      }
>> +      else
>> +        delete nsnap;
>>      }
>>    
>>    /*
>> diff -Nrup a/sql/backup/be_native.h b/sql/backup/be_native.h
>> --- a/sql/backup/be_native.h	2008-03-04 17:06:22 +01:00
>> +++ b/sql/backup/be_native.h	2008-03-25 15:22:05 +01:00
>> @@ -97,7 +97,7 @@ int Native_snapshot::init(Logger &log, c
>>      if (m_be)
>>        m_be->free();
>>      m_be= NULL;
>> -    log.report_error(ER_BACKUP_CREATE_BE, m_name);
>> +    log.report_error(log_level::WARNING, 
>> ER_BACKUP_CREATE_BE, m_name);
>>      return 1;
>>    }
>>    
>>
>> --
>> MySQL Code Commits Mailing List
>> For list archives: http://lists.mysql.com/commits
>> To unsubscribe:    
>> http://lists.mysql.com/commits?unsub=1
>>
> 
> 
Thread
bk commit into 6.0 tree (rafal:1.2606) BUG#34721rsomla25 Mar
  • RE: bk commit into 6.0 tree (rafal:1.2606) BUG#34721Chuck Bell26 Mar
    • Re: bk commit into 6.0 tree (rafal:1.2606) BUG#34721Rafal Somla31 Mar
      • RE: bk commit into 6.0 tree (rafal:1.2606) BUG#34721Chuck Bell31 Mar
        • Re: bk commit into 6.0 tree (rafal:1.2606) BUG#34721Rafal Somla31 Mar
          • RE: bk commit into 6.0 tree (rafal:1.2606) BUG#34721Chuck Bell1 Apr