File: rpl_binlog_rollback_cleanup.test

package info (click to toggle)
mariadb 1%3A11.8.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 772,520 kB
  • sloc: ansic: 2,414,714; cpp: 1,791,394; asm: 381,336; perl: 62,905; sh: 49,647; pascal: 40,897; java: 39,363; python: 20,791; yacc: 20,432; sql: 17,907; xml: 12,344; ruby: 8,544; cs: 6,542; makefile: 6,145; ada: 1,879; lex: 1,193; javascript: 996; objc: 80; tcl: 73; awk: 46; php: 22
file content (46 lines) | stat: -rw-r--r-- 1,755 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# ==== 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