summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mysql-test/r/flush2.result24
-rw-r--r--mysql-test/t/disabled.def2
-rw-r--r--mysql-test/t/flush2-master.opt1
-rw-r--r--mysql-test/t/flush2.test9
-rw-r--r--sql/sql_parse.cc11
5 files changed, 44 insertions, 3 deletions
diff --git a/mysql-test/r/flush2.result b/mysql-test/r/flush2.result
new file mode 100644
index 00000000000..7c94219fd71
--- /dev/null
+++ b/mysql-test/r/flush2.result
@@ -0,0 +1,24 @@
+flush logs;
+set global expire_logs_days = 3;
+show variables like 'log%';
+Variable_name Value
+log ON
+log_bin OFF
+log_bin_trust_function_creators ON
+log_error
+log_queries_not_using_indexes OFF
+log_slave_updates OFF
+log_slow_queries OFF
+log_warnings 1
+flush logs;
+show variables like 'log%';
+Variable_name Value
+log ON
+log_bin OFF
+log_bin_trust_function_creators ON
+log_error
+log_queries_not_using_indexes OFF
+log_slave_updates OFF
+log_slow_queries OFF
+log_warnings 1
+set global expire_logs_days = 0;
diff --git a/mysql-test/t/disabled.def b/mysql-test/t/disabled.def
index df56165950f..53b73363c22 100644
--- a/mysql-test/t/disabled.def
+++ b/mysql-test/t/disabled.def
@@ -12,3 +12,5 @@
ndb_load : Bug#17233
user_limits : Bug#23921 random failure of user_limits.test
+flush2 : Bug#24805 Pushbuild can't handle test with --disable-log-bin
+
diff --git a/mysql-test/t/flush2-master.opt b/mysql-test/t/flush2-master.opt
new file mode 100644
index 00000000000..ccbd01c91d3
--- /dev/null
+++ b/mysql-test/t/flush2-master.opt
@@ -0,0 +1 @@
+--disable-log-bin
diff --git a/mysql-test/t/flush2.test b/mysql-test/t/flush2.test
new file mode 100644
index 00000000000..fc9e88e3141
--- /dev/null
+++ b/mysql-test/t/flush2.test
@@ -0,0 +1,9 @@
+#
+# Bug#17733 Flushing logs causes daily server crash
+#
+flush logs;
+set global expire_logs_days = 3;
+show variables like 'log%';
+flush logs;
+show variables like 'log%';
+set global expire_logs_days = 0;
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 65257c06d69..038d743ec77 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -4040,8 +4040,9 @@ end_with_restore_list:
case SQLCOM_FLUSH:
{
bool write_to_binlog;
- if (check_global_access(thd,RELOAD_ACL) || check_db_used(thd, all_tables))
+ if (check_global_access(thd,RELOAD_ACL))
goto error;
+
/*
reload_acl_and_cache() will tell us if we are allowed to write to the
binlog or not.
@@ -4062,7 +4063,8 @@ end_with_restore_list:
}
}
send_ok(thd);
- }
+ }
+
break;
}
case SQLCOM_KILL:
@@ -6732,7 +6734,10 @@ bool reload_acl_and_cache(THD *thd, ulong options, TABLE_LIST *tables,
tmp_write_to_binlog= 0;
mysql_log.new_file(1);
mysql_slow_log.new_file(1);
- mysql_bin_log.rotate_and_purge(RP_FORCE_ROTATE);
+ if( mysql_bin_log.is_open() )
+ {
+ mysql_bin_log.rotate_and_purge(RP_FORCE_ROTATE);
+ }
#ifdef HAVE_REPLICATION
pthread_mutex_lock(&LOCK_active_mi);
rotate_relay_log(active_mi);