List:Commits« Previous MessageNext Message »
From:Chuck Bell Date:March 26 2008 5:14pm
Subject:RE: bk commit into 6.0 tree (rafal:1.2606) BUG#34721
View as plain text  
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