summaryrefslogtreecommitdiff
path: root/mysql-test/t/skip_log_bin.test
diff options
context:
space:
mode:
authorAndrei Elkin <aelkin@mysql.com>2008-08-29 17:20:08 +0300
committerAndrei Elkin <aelkin@mysql.com>2008-08-29 17:20:08 +0300
commitc0de944fdb2cff16b1ca9cc344e356f68c38d90a (patch)
tree81888e02df54e70391288ffe3c71e10a8c6a9c0b /mysql-test/t/skip_log_bin.test
parent267c94c7ce5c6797c4e38f66e286b2331ae14fa6 (diff)
downloadmariadb-git-c0de944fdb2cff16b1ca9cc344e356f68c38d90a.tar.gz
Bug #38798 Assertion mysql_bin_log.is_open() failed in binlog_trans_log_savepos()
The assert is about binlogging must have been activated, but it was not actually according to the reported how-to-repeat instuctions. Analysis revealed that binlog_start_trans_and_stmt() was called without prior testing if binlogging is ON. Fixed with avoing entering binlog_start_trans_and_stmt() if binlog is not activated. mysql-test/r/skip_log_bin.result: new results. mysql-test/t/skip_log_bin-master.opt: the option to deactivate binlogging. mysql-test/t/skip_log_bin.test: regression test for the bug. sql/sql_insert.cc: avoing entering binlog_start_trans_and_stmt() if binlog is not activated.
Diffstat (limited to 'mysql-test/t/skip_log_bin.test')
-rw-r--r--mysql-test/t/skip_log_bin.test25
1 files changed, 25 insertions, 0 deletions
diff --git a/mysql-test/t/skip_log_bin.test b/mysql-test/t/skip_log_bin.test
new file mode 100644
index 00000000000..6175b2cf7d3
--- /dev/null
+++ b/mysql-test/t/skip_log_bin.test
@@ -0,0 +1,25 @@
+#
+# binlog_off.test purpose is to verify that the --skip-log-bin flag
+# works correctly
+#
+
+--disable_warnings
+DROP TABLE IF EXISTS t1, t2;
+--enable_warnings
+
+#
+# Bug #38798 Assertion mysql_bin_log.is_open() failed in
+# binlog_trans_log_savepos()
+# Testing that there is no crash.
+# Before BUG#38798, the code for CREATE...SELECT called an internal function to
+# binlog the statement, even with --skip-log-bin. This caused an assertion
+# to be thrown since the binlog was not open.
+
+set @@session.binlog_format=row;
+
+create table t1 (a int);
+insert into t1 values (1);
+create table t2 select * from t1;
+
+# clean-up
+drop table t1, t2;