List:Commits« Previous MessageNext Message »
From:Chuck Bell Date:November 4 2008 7:59pm
Subject:bzr commit into mysql-6.0-backup branch (cbell:2727) Bug#40218
View as plain text  
#At file:///C:/source/bzr/mysql-6.0-bug-40218/

 2727 Chuck Bell	2008-11-04
      BUG#40218 : Setting backup_{history,progress}_log to DEFAULT turns them OFF
      
      The problem is the code is shared with the slow and query log (intentionally) and the
      default for these is OFF (deactivate), but the default for the backup logs is ON
      (activate). 
      
      This patch correctly sets the default for the backup logs.
modified:
  mysql-test/suite/backup/r/backup_logs_output.result
  mysql-test/suite/backup/t/backup_logs_output.test
  sql/set_var.cc

per-file messages:
  mysql-test/suite/backup/r/backup_logs_output.result
    Corrected test result.
  mysql-test/suite/backup/t/backup_logs_output.test
    Added test to test setting default values for backup log variables
    'backup_history_log' and 'backup_progress_log'.
    Refactored test removing TRUNCATES and use PURGE BACKUP LOGS instead.
  sql/set_var.cc
    Added code to reflect the opposite default settings for the backup logs.
=== modified file 'mysql-test/suite/backup/r/backup_logs_output.result'
--- a/mysql-test/suite/backup/r/backup_logs_output.result	2008-10-07 17:15:44 +0000
+++ b/mysql-test/suite/backup/r/backup_logs_output.result	2008-11-04 19:59:47 +0000
@@ -1,4 +1,9 @@
 con1
+Clear the logs.
+SET @@global.backup_history_log = 'ON';
+SET @@global.backup_progress_log = 'ON';
+FLUSH BACKUP LOGS;
+PURGE BACKUP LOGS;
 Display backup variables
 SHOW VARIABLES LIKE 'backup_history_log';
 Variable_name	Value
@@ -24,8 +29,6 @@ backup_progress_log	OFF
 SHOW VARIABLES LIKE 'log_backup_output';
 Variable_name	Value
 log_backup_output	NONE
-TRUNCATE TABLE mysql.backup_history;
-TRUNCATE TABLE mysql.backup_progress;
 Show the size of the logs
 SELECT count(*) FROM mysql.backup_history;
 count(*)
@@ -64,8 +67,8 @@ backup_progress_log	ON
 SHOW VARIABLES LIKE 'log_backup_output';
 Variable_name	Value
 log_backup_output	TABLE
-TRUNCATE TABLE mysql.backup_history;
-TRUNCATE TABLE mysql.backup_progress;
+FLUSH BACKUP LOGS;
+PURGE BACKUP LOGS;
 BACKUP DATABASE bup_log TO 'bup_log.bak';
 backup_id
 #
@@ -79,6 +82,11 @@ count(*)
 FLUSH BACKUP LOGS;
 '---Checking backup logs when log_backup_output is TABLE---'
 '---and the progress log is turned off                   ---'
+Clear the logs.
+SET @@global.backup_history_log = 'ON';
+SET @@global.backup_progress_log = 'ON';
+FLUSH BACKUP LOGS;
+PURGE BACKUP LOGS;
 SET @@global.backup_history_log = 'ON';
 SET @@global.backup_progress_log = 'OFF';
 Display backup variables
@@ -91,8 +99,6 @@ backup_progress_log	OFF
 SHOW VARIABLES LIKE 'log_backup_output';
 Variable_name	Value
 log_backup_output	TABLE
-TRUNCATE TABLE mysql.backup_history;
-TRUNCATE TABLE mysql.backup_progress;
 Show the size of the logs
 SELECT count(*) FROM mysql.backup_history;
 count(*)
@@ -113,6 +119,11 @@ count(*)
 FLUSH BACKUP LOGS;
 '---Checking backup logs when log_backup_output is TABLE---'
 '---and the history log is turned off                 ---'
+Clear the logs.
+SET @@global.backup_history_log = 'ON';
+SET @@global.backup_progress_log = 'ON';
+FLUSH BACKUP LOGS;
+PURGE BACKUP LOGS;
 SET @@global.backup_history_log = 'OFF';
 SET @@global.backup_progress_log = 'ON';
 Display backup variables
@@ -125,8 +136,6 @@ backup_progress_log	ON
 SHOW VARIABLES LIKE 'log_backup_output';
 Variable_name	Value
 log_backup_output	TABLE
-TRUNCATE TABLE mysql.backup_history;
-TRUNCATE TABLE mysql.backup_progress;
 Show the size of the logs
 SELECT count(*) FROM mysql.backup_history;
 count(*)
@@ -145,6 +154,14 @@ SELECT count(*) FROM mysql.backup_progre
 count(*)
 6
 FLUSH BACKUP LOGS;
+PURGE BACKUP LOGS;
+Show the size of the logs
+SELECT count(*) FROM mysql.backup_history;
+count(*)
+0
+SELECT count(*) FROM mysql.backup_progress;
+count(*)
+0
 '---Checking backup logs when log_backup_output is FILE---'
 SET @@global.log_backup_output = 'FILE';
 turning backup logs back on
@@ -160,8 +177,6 @@ backup_progress_log	ON
 SHOW VARIABLES LIKE 'log_backup_output';
 Variable_name	Value
 log_backup_output	FILE
-TRUNCATE TABLE mysql.backup_history;
-TRUNCATE TABLE mysql.backup_progress;
 BACKUP DATABASE bup_log TO 'bup_log.bak';
 backup_id
 #
@@ -173,6 +188,7 @@ SELECT count(*) FROM mysql.backup_progre
 count(*)
 0
 FLUSH BACKUP LOGS;
+PURGE BACKUP LOGS;
 '---Checking backup logs when log_backup_output is TABLE, FILE---'
 SET @@global.log_backup_output = 'TABLE,FILE';
 Display backup variables
@@ -185,8 +201,6 @@ backup_progress_log	ON
 SHOW VARIABLES LIKE 'log_backup_output';
 Variable_name	Value
 log_backup_output	FILE,TABLE
-TRUNCATE TABLE mysql.backup_history;
-TRUNCATE TABLE mysql.backup_progress;
 BACKUP DATABASE bup_log TO 'bup_log.bak';
 backup_id
 #
@@ -198,6 +212,34 @@ SELECT count(*) FROM mysql.backup_progre
 count(*)
 6
 FLUSH BACKUP LOGS;
+SET GLOBAL backup_history_log=0;
+SET GLOBAL backup_progress_log=0;
+Should show 'OFF'
+SHOW VARIABLES LIKE 'backup%log';
+Variable_name	Value
+backup_history_log	OFF
+backup_progress_log	OFF
+SET GLOBAL backup_history_log=1;
+SET GLOBAL backup_progress_log=1;
+Should show 'ON'
+SHOW VARIABLES LIKE 'backup%log';
+Variable_name	Value
+backup_history_log	ON
+backup_progress_log	ON
+SET GLOBAL backup_history_log=OFF;
+SET GLOBAL backup_progress_log=OFF;
+Should show 'OFF'
+SHOW VARIABLES LIKE 'backup%log';
+Variable_name	Value
+backup_history_log	OFF
+backup_progress_log	OFF
+SET GLOBAL backup_history_log=DEFAULT;
+SET GLOBAL backup_progress_log=DEFAULT;
+After set default still should show 'ON'
+SHOW VARIABLES LIKE 'backup%log';
+Variable_name	Value
+backup_history_log	ON
+backup_progress_log	ON
 Cleanup
 DROP DATABASE bup_log;
 SET @@global.log_backup_output = 'TABLE';

=== modified file 'mysql-test/suite/backup/t/backup_logs_output.test'
--- a/mysql-test/suite/backup/t/backup_logs_output.test	2008-10-07 17:15:44 +0000
+++ b/mysql-test/suite/backup/t/backup_logs_output.test	2008-11-04 19:59:47 +0000
@@ -11,6 +11,12 @@ connect (con1,localhost,root,,,,);
 --echo con1
 connection con1;
 
+--echo Clear the logs.
+SET @@global.backup_history_log = 'ON';
+SET @@global.backup_progress_log = 'ON';
+FLUSH BACKUP LOGS;
+PURGE BACKUP LOGS;
+
 --echo Display backup variables
 SHOW VARIABLES LIKE 'backup_history_log';
 SHOW VARIABLES LIKE 'backup_progress_log';
@@ -28,9 +34,6 @@ SHOW VARIABLES LIKE 'backup_history_log'
 SHOW VARIABLES LIKE 'backup_progress_log';
 SHOW VARIABLES LIKE 'log_backup_output';
 
-TRUNCATE TABLE mysql.backup_history;
-TRUNCATE TABLE mysql.backup_progress;
-
 --echo Show the size of the logs
 SELECT count(*) FROM mysql.backup_history;
 SELECT count(*) FROM mysql.backup_progress;
@@ -71,8 +74,8 @@ SHOW VARIABLES LIKE 'backup_history_log'
 SHOW VARIABLES LIKE 'backup_progress_log';
 SHOW VARIABLES LIKE 'log_backup_output';
 
-TRUNCATE TABLE mysql.backup_history;
-TRUNCATE TABLE mysql.backup_progress;
+FLUSH BACKUP LOGS;
+PURGE BACKUP LOGS;
 
 --replace_column 1 #
 BACKUP DATABASE bup_log TO 'bup_log.bak';
@@ -91,6 +94,12 @@ FLUSH BACKUP LOGS;
 --echo '---Checking backup logs when log_backup_output is TABLE---'
 --echo '---and the progress log is turned off                   ---'
 
+--echo Clear the logs.
+SET @@global.backup_history_log = 'ON';
+SET @@global.backup_progress_log = 'ON';
+FLUSH BACKUP LOGS;
+PURGE BACKUP LOGS;
+
 SET @@global.backup_history_log = 'ON';
 SET @@global.backup_progress_log = 'OFF';
 
@@ -99,9 +108,6 @@ SHOW VARIABLES LIKE 'backup_history_log'
 SHOW VARIABLES LIKE 'backup_progress_log';
 SHOW VARIABLES LIKE 'log_backup_output';
 
-TRUNCATE TABLE mysql.backup_history;
-TRUNCATE TABLE mysql.backup_progress;
-
 --echo Show the size of the logs
 SELECT count(*) FROM mysql.backup_history;
 SELECT count(*) FROM mysql.backup_progress;
@@ -123,6 +129,12 @@ FLUSH BACKUP LOGS;
 --echo '---Checking backup logs when log_backup_output is TABLE---'
 --echo '---and the history log is turned off                 ---'
 
+--echo Clear the logs.
+SET @@global.backup_history_log = 'ON';
+SET @@global.backup_progress_log = 'ON';
+FLUSH BACKUP LOGS;
+PURGE BACKUP LOGS;
+
 SET @@global.backup_history_log = 'OFF';
 SET @@global.backup_progress_log = 'ON';
 
@@ -131,9 +143,6 @@ SHOW VARIABLES LIKE 'backup_history_log'
 SHOW VARIABLES LIKE 'backup_progress_log';
 SHOW VARIABLES LIKE 'log_backup_output';
 
-TRUNCATE TABLE mysql.backup_history;
-TRUNCATE TABLE mysql.backup_progress;
-
 --echo Show the size of the logs
 SELECT count(*) FROM mysql.backup_history;
 SELECT count(*) FROM mysql.backup_progress;
@@ -146,6 +155,12 @@ SELECT count(*) FROM mysql.backup_histor
 SELECT count(*) FROM mysql.backup_progress;
 
 FLUSH BACKUP LOGS;
+PURGE BACKUP LOGS;
+
+--echo Show the size of the logs
+SELECT count(*) FROM mysql.backup_history;
+SELECT count(*) FROM mysql.backup_progress;
+
 --file_exists $MYSQLTEST_VARDIR/master-data/backup_history.log
 --file_exists $MYSQLTEST_VARDIR/master-data/backup_progress.log
 
@@ -165,15 +180,6 @@ SHOW VARIABLES LIKE 'backup_history_log'
 SHOW VARIABLES LIKE 'backup_progress_log';
 SHOW VARIABLES LIKE 'log_backup_output';
 
-TRUNCATE TABLE mysql.backup_history;
-TRUNCATE TABLE mysql.backup_progress;
-
-#
-# BUG#33364 - uncomment when purge command is implemented
-#
-# Purge the backup logs
-#PURGE BACKUP LOGS;
-
 --replace_column 1 #
 BACKUP DATABASE bup_log TO 'bup_log.bak';
 
@@ -182,12 +188,11 @@ SELECT count(*) FROM mysql.backup_histor
 SELECT count(*) FROM mysql.backup_progress;
 
 FLUSH BACKUP LOGS;
+PURGE BACKUP LOGS;
+
 --file_exists $MYSQLTEST_VARDIR/master-data/backup_history.log
 --file_exists $MYSQLTEST_VARDIR/master-data/backup_progress.log
 
-#
-# BUG#33364 - uncomment when purge command is implemented
-#
 # Check contents of logs for data. 
 #--error 0
 #--exec grep -q "BACKUP DATABASE bup_log TO 'bup_log.bak'" $MYSQLTEST_VARDIR/master-data/backup_history.log
@@ -206,15 +211,6 @@ SHOW VARIABLES LIKE 'backup_history_log'
 SHOW VARIABLES LIKE 'backup_progress_log';
 SHOW VARIABLES LIKE 'log_backup_output';
 
-TRUNCATE TABLE mysql.backup_history;
-TRUNCATE TABLE mysql.backup_progress;
-
-#
-# BUG#33364 - uncomment when purge command is implemented
-#
-# Purge the backup logs
-#PURGE BACKUP LOGS;
-
 --replace_column 1 #
 BACKUP DATABASE bup_log TO 'bup_log.bak';
 
@@ -237,6 +233,34 @@ FLUSH BACKUP LOGS;
 
 --error 0,1
 --remove_file $MYSQLTEST_VARDIR/master-data/bup_log.bak
+
+#
+# BUG#40218 Default setting incorrect
+#
+
+SET GLOBAL backup_history_log=0;
+SET GLOBAL backup_progress_log=0;
+
+--echo Should show 'OFF'
+SHOW VARIABLES LIKE 'backup%log';
+
+SET GLOBAL backup_history_log=1;
+SET GLOBAL backup_progress_log=1;
+
+--echo Should show 'ON'
+SHOW VARIABLES LIKE 'backup%log';
+
+SET GLOBAL backup_history_log=OFF;
+SET GLOBAL backup_progress_log=OFF;
+
+--echo Should show 'OFF'
+SHOW VARIABLES LIKE 'backup%log';
+
+SET GLOBAL backup_history_log=DEFAULT;
+SET GLOBAL backup_progress_log=DEFAULT;
+
+--echo After set default still should show 'ON'
+SHOW VARIABLES LIKE 'backup%log';
 
 --echo Cleanup
 DROP DATABASE bup_log;

=== modified file 'sql/set_var.cc'
--- a/sql/set_var.cc	2008-10-28 18:14:14 +0000
+++ b/sql/set_var.cc	2008-11-04 19:59:47 +0000
@@ -2489,7 +2489,15 @@ void sys_var_log_state::set_default(THD 
     WARN_DEPRECATED(thd, 7,0, "@@log_slow_queries", "'@@slow_query_log'");
 
   pthread_mutex_lock(&LOCK_global_system_variables);
-  logger.deactivate_log_handler(thd, log_type);
+  /*
+    Default for general and slow log is OFF.
+    Default for backup logs is ON.
+  */
+  if ((this == &sys_var_backup_history_log) ||
+      (this == &sys_var_backup_progress_log))
+    logger.activate_log_handler(thd, log_type);
+  else
+    logger.deactivate_log_handler(thd, log_type);
   pthread_mutex_unlock(&LOCK_global_system_variables);
 }
 

Thread
bzr commit into mysql-6.0-backup branch (cbell:2727) Bug#40218Chuck Bell4 Nov
  • Re: bzr commit into mysql-6.0-backup branch (cbell:2727) Bug#40218Øystein Grøvlen5 Nov