[MDEV-11092] Assertion `!writer.checksum_len || writer.remains == 0' failed Created: 2016-10-20  Updated: 2022-07-22  Resolved: 2017-05-18

Status: Closed
Project: MariaDB Server
Component/s: Replication
Affects Version/s: 10.2.2
Fix Version/s: 5.5.57

Type: Bug Priority: Major
Reporter: Nirbhay Choubey (Inactive) Assignee: Lixun Peng
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Relates
relates to MDEV-7635 update defaults and simplify mysqld c... Closed
relates to MDEV-18514 Assertion `!writer.checksum_len || w... Closed
Sprint: 10.1.24

 Description   

How to repeat:

perl mtr rpl.rpl_crash --mysqld=--binlog-annotate-row-events=1

Test case: rpl/rpl_crash.test

--source include/have_innodb.inc
--source include/master-slave.inc
--source include/not_embedded.inc
--source include/not_windows.inc
--source include/have_binlog_format_row.inc
 
########################################################################################
call mtr.add_suppression("Unsafe statement written to the binary log using statement format since BINLOG_FORMAT = STATEMENT");
 
let $old_max_binlog_cache_size= query_get_value(SHOW VARIABLES LIKE "max_binlog_cache_size", Value, 1);
let $old_binlog_cache_size= query_get_value(SHOW VARIABLES LIKE "binlog_cache_size", Value, 1);
let $old_max_binlog_stmt_cache_size= query_get_value(SHOW VARIABLES LIKE "max_binlog_stmt_cache_size", Value, 1);
let $old_binlog_stmt_cache_size= query_get_value(SHOW VARIABLES LIKE "binlog_stmt_cache_size", Value, 1);
 
SET GLOBAL max_binlog_cache_size = 4096;
SET GLOBAL binlog_cache_size = 4096;
SET GLOBAL max_binlog_stmt_cache_size = 4096;
SET GLOBAL binlog_stmt_cache_size = 4096;
disconnect master;
connect (master,127.0.0.1,root,,test,$MASTER_MYPORT,);
 
CREATE TABLE t1(a INT PRIMARY KEY, data VARCHAR(30000)) ENGINE=MYISAM;
 
let $data = `select concat('"', repeat('a',2000), '"')`;
 
connection master;
 
--disable_query_log
--error ER_TRANS_CACHE_FULL, ER_STMT_CACHE_FULL, ER_ERROR_ON_WRITE
eval INSERT INTO t1 (a, data) VALUES (2,
       CONCAT($data, $data, $data, $data, $data, $data));
--enable_query_log
 
# Incident event
# 1590=ER_SLAVE_INCIDENT
--let $slave_sql_errno= 1590
--source include/wait_for_slave_sql_error_and_skip.inc
 
connection master;
 
--replace_result $old_max_binlog_cache_size ORIGINAL_VALUE
--eval SET GLOBAL max_binlog_cache_size= $old_max_binlog_cache_size
--replace_result $old_binlog_cache_size ORIGINAL_VALUE
--eval SET GLOBAL binlog_cache_size= $old_binlog_cache_size
--replace_result $old_max_binlog_stmt_cache_size ORIGINAL_VALUE
--eval SET GLOBAL max_binlog_stmt_cache_size= $old_max_binlog_stmt_cache_size
--replace_result $old_binlog_stmt_cache_size ORIGINAL_VALUE
--eval SET GLOBAL binlog_stmt_cache_size= $old_binlog_stmt_cache_size
 
DROP TABLE t1;
 
--source include/rpl_end.inc

Stack trace:

#4  0x00007f778c423418 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#5  0x00007f778c42501a in __GI_abort () at abort.c:89
#6  0x00007f778c41bbd7 in __assert_fail_base (fmt=<optimized out>, assertion=assertion@entry=0x564c56928ce0 "!writer.checksum_len || writer.remains == 0", file=file@entry=0x564c569262c0 "/home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/log.cc", line=line@entry=6871, function=function@entry=0x564c5692b600 <MYSQL_BIN_LOG::write_cache(THD*, st_io_cache*)::__PRETTY_FUNCTION__> "int MYSQL_BIN_LOG::write_cache(THD*, IO_CACHE*)") at assert.c:92
#7  0x00007f778c41bc82 in __GI___assert_fail (assertion=0x564c56928ce0 "!writer.checksum_len || writer.remains == 0", file=0x564c569262c0 "/home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/log.cc", line=6871, function=0x564c5692b600 <MYSQL_BIN_LOG::write_cache(THD*, st_io_cache*)::__PRETTY_FUNCTION__> "int MYSQL_BIN_LOG::write_cache(THD*, IO_CACHE*)") at assert.c:101
#8  0x0000564c560fa117 in MYSQL_BIN_LOG::write_cache (this=0x564c572c77e0 <mysql_bin_log>, thd=0x7f7775d79070, cache=0x7f7775d54870) at /home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/log.cc:6871
#9  0x0000564c560fc59c in MYSQL_BIN_LOG::write_transaction_or_stmt (this=0x564c572c77e0 <mysql_bin_log>, entry=0x7f778c30caa0, commit_id=0) at /home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/log.cc:7852
#10 0x0000564c560fb9f6 in MYSQL_BIN_LOG::trx_group_commit_leader (this=0x564c572c77e0 <mysql_bin_log>, leader=0x7f778c30caa0) at /home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/log.cc:7605
#11 0x0000564c560fb337 in MYSQL_BIN_LOG::write_transaction_to_binlog_events (this=0x564c572c77e0 <mysql_bin_log>, entry=0x7f778c30caa0) at /home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/log.cc:7406
#12 0x0000564c560fa9a3 in MYSQL_BIN_LOG::write_transaction_to_binlog (this=0x564c572c77e0 <mysql_bin_log>, thd=0x7f7775d79070, cache_mngr=0x7f7775d54870, end_ev=0x7f778c30cc60, all=false, using_stmt_cache=true, using_trx_cache=false) at /home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/log.cc:7080
#13 0x0000564c560ec668 in binlog_flush_cache (thd=0x7f7775d79070, cache_mngr=0x7f7775d54870, end_ev=0x7f778c30cc60, all=false, using_stmt=true, using_trx=false) at /home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/log.cc:1754
#14 0x0000564c560ec8ab in binlog_commit_flush_stmt_cache (thd=0x7f7775d79070, all=false, cache_mngr=0x7f7775d54870) at /home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/log.cc:1806
#15 0x0000564c560ed371 in binlog_rollback (hton=0x7f778b865f70, thd=0x7f7775d79070, all=false) at /home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/log.cc:2071
#16 0x0000564c55ff91d2 in ha_rollback_trans (thd=0x7f7775d79070, all=false) at /home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/handler.cc:1658
#17 0x0000564c55ee6db8 in trans_rollback_stmt (thd=0x7f7775d79070) at /home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/transaction.cc:566
#18 0x0000564c55d9a48a in mysql_execute_command (thd=0x7f7775d79070) at /home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/sql_parse.cc:6163
#19 0x0000564c55d9eb75 in mysql_parse (thd=0x7f7775d79070, rawbuf=0x7f7775dc4088 "INSERT INTO t1 (a, data) VALUES (2,\nCONCAT(\"", 'a' <repeats 156 times>..., length=12067, parser_state=0x7f778c30ddd0, is_com_multi=false, is_next_command=false) at /home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/sql_parse.cc:7796
#20 0x0000564c55d8c62a in dispatch_command (command=COM_QUERY, thd=0x7f7775d79070, packet=0x7f7775db8071 "INSERT INTO t1 (a, data) VALUES (2,\nCONCAT(\"", 'a' <repeats 156 times>..., packet_length=12067, is_com_multi=false, is_next_command=false) at /home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/sql_parse.cc:1806
#21 0x0000564c55d8affd in do_command (thd=0x7f7775d79070) at /home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/sql_parse.cc:1366
#22 0x0000564c55ed0ccb in do_handle_one_connection (connect=0x7f778b86d590) at /home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/sql_connect.cc:1354
#23 0x0000564c55ed0a4b in handle_one_connection (arg=0x7f778b86d590) at /home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/sql/sql_connect.cc:1260
#24 0x0000564c561fcd98 in pfs_spawn_thread (arg=0x7f77803f27f0) at /home/nirbhay/project/git-repo/mariadb/bugs/10.2-mdev7635/storage/perfschema/pfs.cc:1862
#25 0x00007f778d05f6fa in start_thread (arg=0x7f778c30f300) at pthread_create.c:333
#26 0x00007f778c4f4b5d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Original test : rpl.rpl_row_binlog_max_cache_size

Not reproducible on 10.1.



 Comments   
Comment by Elena Stepanova [ 2017-01-20 ]

Make sure that the test case rpl_row_binlog_max_cache_size is re-enabled when the bug is fixed.

Comment by Sachin Setiya (Inactive) [ 2017-03-28 ]

This issue is present with all mariadb version , The reason it gives crash in 10.2 is because in 10.2
binlog_checksum is enabled by default, If we disable binlog_checksum in mtr rpl_crash wont crash

Comment by Sachin Setiya (Inactive) [ 2017-05-18 ]

http://lists.askmonty.org/pipermail/commits/2017-May/011181.html

Comment by Vicențiu Ciorbaru [ 2017-09-20 ]

sachin.setiya.007 This bug is closed, yet the test is still disabled in 10.2. Is there more work to be done on this one?

Generated at Thu Feb 08 07:47:15 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.