diff options
author | Andrei Elkin <aelkin@mysql.com> | 2008-08-29 17:20:08 +0300 |
---|---|---|
committer | Andrei Elkin <aelkin@mysql.com> | 2008-08-29 17:20:08 +0300 |
commit | c0de944fdb2cff16b1ca9cc344e356f68c38d90a (patch) | |
tree | 81888e02df54e70391288ffe3c71e10a8c6a9c0b /mysql-test/t/skip_log_bin.test | |
parent | 267c94c7ce5c6797c4e38f66e286b2331ae14fa6 (diff) | |
download | mariadb-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.test | 25 |
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; |