[MDEV-7591] master crashed when slave specfied a future position with semi-repl plugin Created: 2015-02-15  Updated: 2018-09-03  Resolved: 2015-02-20

Status: Closed
Project: MariaDB Server
Component/s: Replication
Affects Version/s: 10.0.16
Fix Version/s: 10.0.17

Type: Bug Priority: Major
Reporter: frank.zhang Assignee: Sergei Golubchik
Resolution: Fixed Votes: 0
Labels: upstream-fixed, verified
Environment:

centos6.4


Issue Links:
Relates
relates to MDEV-17125 InnoDB: Assertion failure in file mar... Open

 Description   

Bug #70327 in mysql bug database,http://bugs.mysql.com/bug.php?id=70327
This bug has been fixed in mysql5.6.21,but I can still repeat it in mariadb10.0.14 and mariadb 10.0.16 which is lastest version I can find.

use case:

# master:
MariaDB [sbtest]> select version();show master status;
+---------------------+
| version()           |
+---------------------+
| 10.0.16-MariaDB-log |
+---------------------+
1 row in set (0.00 sec)
 
+--------------------------+----------+--------------+------------------+
| File                     | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------------+----------+--------------+------------------+
| *SVR3327HW5885-bin.000001 |      320 *|              |                  |
+--------------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
 
# slave:
change master to master_host='192.168.60.51',master_user='xxxxxxx',master_password='xxxxxxx',master_port=55944,master_log_file='SVR3327HW5885-bin.*000002*',master_log_pos=320;
start slave;
 
# enter any DML query,then master will crash!

crash log

mysqld: /home/op1/mariadb-10.0.16/plugin/semisync/semisync_master.cc:750: int ReplSemiSyncMaster::commitTrx(const char*, my_off_t): Assertion `(thd_kill_statement_service->thd_kill_level_func(__null) == THD_ABORT_ASAP) || !active_tranxs_->is_tranx_end_pos(trx_wait_binlog_name, trx_wait_binlog_pos)' failed.
150215 15:33:24 [ERROR] mysqld got signal 6 ;



 Comments   
Comment by Elena Stepanova [ 2015-02-18 ]

--source include/master-slave.inc
create table t1 (i int);
 
install soname 'semisync_master';
set global rpl_semi_sync_master_enabled = ON;
 
--connection slave
install soname 'semisync_slave';
--source include/stop_slave.inc
set global rpl_semi_sync_slave_enabled = ON;
change master to master_log_file='master-bin.000002', master_log_pos = 320;
 
--source include/start_slave.inc
 
--connection master
insert into t1 values (1);
 
drop table t1;
--source include/rpl_end.inc

10.0 revno 4599

10.0/plugin/semisync/semisync_master.cc:750: int ReplSemiSyncMaster::commitTrx(const char*, my_off_t): Assertion `(thd_kill_statement_service->thd_kill_level_func(__null) == THD_ABORT_ASAP) || !active_tranxs_->is_tranx_end_pos(trx_wait_binlog_name, trx_wait_binlog_pos)' failed.
150218 17:53:44 [ERROR] mysqld got signal 6 ;
 
#6  0x00007fba18414311 in *__GI___assert_fail (assertion=0x7fba18152888 "(thd_kill_statement_service->thd_kill_level_func(__null) == THD_ABORT_ASAP) || !active_tranxs_->is_tranx_end_pos(trx_wait_binlog_name, trx_wait_binlog_pos)", file=<optimized out>, line=750, function=0x7fba18153820 "int ReplSemiSyncMaster::commitTrx(const char*, my_off_t)") at assert.c:81
#7  0x00007fba1814f85d in ReplSemiSyncMaster::commitTrx (this=0x7fba183566c0, trx_wait_binlog_name=0x7fba0ac540f8 "master-bin.000001", trx_wait_binlog_pos=632) at 10.0/plugin/semisync/semisync_master.cc:748
#8  0x00007fba18150f60 in repl_semi_report_commit (param=0x7fba183e6870) at 10.0/plugin/semisync/semisync_master_plugin.cc:59
#9  0x000000000079be80 in Trans_delegate::after_commit (this=0x187bec0, thd=0x7fba0e71b070, all=false) at 10.0/sql/rpl_handler.cc:210
#10 0x000000000086c00f in ha_commit_trans (thd=0x7fba0e71b070, all=false) at 10.0/sql/handler.cc:1442
#11 0x00000000007a8586 in trans_commit_stmt (thd=0x7fba0e71b070) at 10.0/sql/transaction.cc:394
#12 0x000000000068306e in mysql_execute_command (thd=0x7fba0e71b070) at 10.0/sql/sql_parse.cc:5123
#13 0x00000000006861b7 in mysql_parse (thd=0x7fba0e71b070, rawbuf=0x7fba0ac4a088 "insert into t1 values (1)", length=25, parser_state=0x7fba183e7600) at 10.0/sql/sql_parse.cc:6513
#14 0x0000000000678c01 in dispatch_command (command=COM_QUERY, thd=0x7fba0e71b070, packet=0x7fba0e727071 "insert into t1 values (1)", packet_length=25) at 10.0/sql/sql_parse.cc:1300
#15 0x0000000000677f97 in do_command (thd=0x7fba0e71b070) at 10.0/sql/sql_parse.cc:996
#16 0x00000000007953ef in do_handle_one_connection (thd_arg=0x7fba0e71b070) at 10.0/sql/sql_connect.cc:1375
#17 0x0000000000795142 in handle_one_connection (arg=0x7fba0e71b070) at 10.0/sql/sql_connect.cc:1289
#18 0x0000000000cd0a2a in pfs_spawn_thread (arg=0x7fba06fdbff0) at 10.0/storage/perfschema/pfs.cc:1860
#19 0x00007fba1a20fb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
#20 0x00007fba184c570d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

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