Bug #40434 Replication should not be allowed to start if restore is running
Submitted: 30 Oct 2008 15:37 Modified: 11 Feb 2009 3:22
Reporter: Chuck Bell Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Backup Severity:S3 (Non-critical)
Version:6.0 OS:Any
Assigned to: Chuck Bell CPU Architecture:Any

[30 Oct 2008 15:37] Chuck Bell
Description:
Currently, the work of WL#4209 and WL#4280 provide mechanisms to control how replication and backup interact. However, there is one scenario that is not covered.

It is true that restore cannot start on a connected slave. However, we also need to have a method to prevent replication from starting on a slave if a restore is ongoing on that same slave.

How to repeat:
NA

Suggested fix:
Code modification.
[4 Nov 2008 14:38] Chuck Bell
Workaround is simply not starting a slave while restore is running.
[4 Nov 2008 14:44] Chuck Bell
Design Philosophy
-----------------
Add a variable 'allow_slave_start' to server and protect with mutex.
  Note: this is not a dynamic variable. It is a variable like:
        my_bool allow_slave_start= TRUE;
Default allow_slave_start = TRUE.
Add restore_running() method to si_objects to encapsulate setting the
  variable. For example, restore_running(TRUE) means 
  allow_slave_start = FALSE;
Add call to backup kernel in execute_backup_command around the do_restore()
  method call.
Write test to stop restore in the middle and attempt to start the slave.
[4 Nov 2008 15:07] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/57798

2727 Chuck Bell	2008-11-04
      BUG#40434 : Replication should not be allowed to start if restore is running
      
      Currently, the work of WL#4209 and WL#4280 provide mechanisms to control 
      how replication and backup interact. However, we also need to have a method 
      to prevent replication from starting on a slave if a restore is ongoing on that
      same slave.
      
      This patch prohibits a slave from starting replication when a restore is in
      progress.
[24 Nov 2008 13:08] Andrei Elkin
Setting to in-progress as have mailed requesting two small improvements.
[3 Dec 2008 2:54] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/60446

2737 Chuck Bell	2008-12-02
      BUG#40434 : Replication should not be allowed to start if restore is running
      
      Currently, the work of WL#4209 and WL#4280 provide mechanisms to control 
      how replication and backup interact. However, we also need to have a method 
      to prevent replication from starting on a slave if a restore is ongoing on that
      same slave.
      
      This patch prohibits a slave from starting replication when a restore is in
      progress.
[10 Dec 2008 21:49] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/61286

2734 Chuck Bell	2008-12-10
      BUG#40434 : Replication should not be allowed to start if restore is running
      
      Currently, the work of WL#4209 and WL#4280 provide mechanisms to control 
      how replication and backup interact. However, we also need to have a method 
      to prevent replication from starting on a slave if a restore is ongoing on that
      same slave.
      
      This patch prohibits a slave from starting replication when a restore is in
      progress.
[16 Dec 2008 20:55] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/61822

2741 Chuck Bell	2008-12-16
      BUG#40434 : Replication should not be allowed to start if restore is running
      
      Currently, the work of WL#4209 and WL#4280 provide mechanisms to control 
      how replication and backup interact. However, we also need to have a method 
      to prevent replication from starting on a slave if a restore is ongoing on that
      same slave.
      
      This patch prohibits a slave from starting replication when a restore is in
      progress.
[18 Dec 2008 14:08] Rafal Somla
Good to push.
[2 Feb 2009 16:06] Bugs System
Pushed into 6.0.10-alpha (revid:sergefp@mysql.com-20090202090240-dlkxhmc1asrar5rl) (version source revid:sergefp@mysql.com-20090129100938-qvke7a9krg24l8pl) (merge vers: 6.0.10-alpha) (pib:6)
[11 Feb 2009 3:22] Paul DuBois
Noted in 6.0.10 changelog.

If a RESTORE operation was in progress on a master server, slaves
were not prohibited from starting replication of the master.