mirror of
https://github.com/MariaDB/server.git
synced 2025-02-22 13:23:07 +01:00
46 lines
1.7 KiB
Text
46 lines
1.7 KiB
Text
# ==== Purpose ====
|
|
#
|
|
# Test verifies that when flushing an event to binary log fails the transaction
|
|
# is successfully rolled back and following COMMIT command doesn't report any
|
|
# assert.
|
|
#
|
|
# ==== Implementation ====
|
|
#
|
|
# Steps:
|
|
# 0 - SET max_binlog_cache_size=64K
|
|
# 1 - Create an Innodb table and insert required amount of data. Execute an
|
|
# UPDATE operation which generates a big update event whose size exceeds
|
|
# max_binlog_cache_size.
|
|
# 2 - Wait for error 1197. Execute COMMIT command.
|
|
# 3 - COMMIT should be successful.
|
|
#
|
|
# ==== References ====
|
|
#
|
|
# MDEV-18514: Assertion `!writer.checksum_len || writer.remains == 0' failed
|
|
#
|
|
--source include/have_innodb.inc
|
|
--source include/have_binlog_format_row.inc
|
|
--source include/master-slave.inc
|
|
--connection master
|
|
let $old_max_binlog_cache_size= query_get_value(SHOW VARIABLES LIKE "max_binlog_cache_size", Value, 1);
|
|
SET GLOBAL max_binlog_cache_size = 65536;
|
|
CREATE TABLE t1(a INT PRIMARY KEY, data VARCHAR(30000)) ENGINE=INNODB CHARSET=latin1;
|
|
let $data = `select concat('"', repeat('a',6000), '"')`;
|
|
let $data1 = `select concat('"', repeat('b',6000), '"')`;
|
|
--disable_query_log
|
|
eval INSERT INTO t1 (a, data) VALUES (1, CONCAT($data, $data));
|
|
eval INSERT INTO t1 (a, data) VALUES (2, CONCAT($data, $data));
|
|
eval INSERT INTO t1 (a, data) VALUES (3, CONCAT($data, $data));
|
|
eval INSERT INTO t1 (a, data) VALUES (4, CONCAT($data, $data));
|
|
eval INSERT INTO t1 (a, data) VALUES (5, CONCAT($data, $data));
|
|
START TRANSACTION;
|
|
--error ER_TRANS_CACHE_FULL
|
|
eval UPDATE t1 SET data=$data1;
|
|
COMMIT;
|
|
--enable_query_log
|
|
|
|
--replace_result $old_max_binlog_cache_size ORIGINAL_VALUE
|
|
--eval SET GLOBAL max_binlog_cache_size= $old_max_binlog_cache_size
|
|
DROP TABLE t1;
|
|
|
|
--source include/rpl_end.inc
|