[MDEV-359] Server crash when SET GLOBAL rpl_semi_sync_master_enabled = OFF Created: 2012-06-20  Updated: 2012-06-22  Resolved: 2012-06-22

Status: Closed
Project: MariaDB Server
Component/s: None
Affects Version/s: 5.5.24
Fix Version/s: 5.5.25

Type: Bug Priority: Major
Reporter: Kristian Nielsen Assignee: Kristian Nielsen
Resolution: Fixed Votes: 0
Labels: None


 Description   

Running below test case by Elena randomly causes a server crash (ie. it needs
to run a few times to cause the crash, ./mtr --repeat=100).

Bug is also present in MySQL 5.5. See also
http://bugs.mysql.com/bug.php?id=50160.

Thread 1 (Thread 0x7f449d6f0700 (LWP 16616)):
#0  0x00007f44a92ba4ec in __pthread_kill (threadid=<optimized out>, signo=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:63
#1  0x0000000000cb000b in my_write_core (sig=11) at /home/knielsen/my/5.5/mariadb-5.5/mysys/stacktrace.c:457
#2  0x00000000007d1adc in handle_fatal_signal (sig=11) at /home/knielsen/my/5.5/mariadb-5.5/sql/signal_handler.cc:279
#3  <signal handler called>
#4  0x00007f449d4a4328 in Trace::function_enter (this=0x0, func_name=0x7f449d4a558a "ActiveTranx::is_tranx_end_pos") at /home/knielsen/my/5.5/mariadb-5.5/plugin/semisync/semisync.h:50
#5  0x00007f449d4a2216 in ActiveTranx::is_tranx_end_pos (this=0x0, log_file_name=0x38215b8 "master-bin.000001", log_file_pos=576) at /home/knielsen/my/5.5/mariadb-5.5/plugin/semisync/semisync_master.cc:198
#6  0x00007f449d4a33a8 in ReplSemiSyncMaster::commitTrx (this=0x7f449d6a8160, trx_wait_binlog_name=0x38215b8 "master-bin.000001", trx_wait_binlog_pos=576) at /home/knielsen/my/5.5/mariadb-5.5/plugin/semisync/semisync_master.cc:746
#7  0x00007f449d4a4a94 in repl_semi_report_commit (param=0x7f449d6eebd0) at /home/knielsen/my/5.5/mariadb-5.5/plugin/semisync/semisync_master_plugin.cc:59
#8  0x0000000000725abc in Trans_delegate::after_commit (this=0x14d8960, thd=0x3754710, all=false) at /home/knielsen/my/5.5/mariadb-5.5/sql/rpl_handler.cc:243
#9  0x00000000007d4366 in ha_commit_trans (thd=0x3754710, all=false) at /home/knielsen/my/5.5/mariadb-5.5/sql/handler.cc:1306
#10 0x00000000007314eb in trans_commit_stmt (thd=0x3754710) at /home/knielsen/my/5.5/mariadb-5.5/sql/transaction.cc:299
#11 0x0000000000630fb9 in mysql_execute_command (thd=0x3754710) at /home/knielsen/my/5.5/mariadb-5.5/sql/sql_parse.cc:4514
#12 0x0000000000633c96 in mysql_parse (thd=0x3754710, rawbuf=0x37f6118 "INSERT INTO t1 SELECT * FROM t1", length=31, parser_state=0x7f449d6ef610) at /home/knielsen/my/5.5/mariadb-5.5/sql/sql_parse.cc:5736
#13 0x0000000000627e50 in dispatch_command (command=COM_QUERY, thd=0x3754710, packet=0x3758141 "INSERT INTO t1 SELECT * FROM t1", packet_length=31) at /home/knielsen/my/5.5/mariadb-5.5/sql/sql_parse.cc:1055

--source include/have_binlog_format_mixed_or_statement.inc
--source include/master-slave.inc
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
SET GLOBAL rpl_semi_sync_master_enabled = ON;
--connection master1
--send
INSERT INTO t1 SELECT * FROM t1;
--connection master
--sync_slave_with_master
--connection master
SET GLOBAL rpl_semi_sync_master_enabled = OFF;
--connection master1
--reap
 
connection master;
DROP TABLE t1;
 
disable_warnings;
UNINSTALL PLUGIN rpl_semi_sync_master;
enable_warnings;
 
--source include/rpl_end.inc



 Comments   
Comment by Kristian Nielsen [ 2012-06-21 ]

Fix + testcase pushed into lp:maria/5.5

Comment by Elena Stepanova [ 2012-06-21 ]

I'm now getting the following crash with the same test case (on revno 3452):

RelWithDebInfo:

#2 <signal handler called>
#3 0x00007fc621d8dd71 in function_enter (func_name=0x7fc621d90b36 "ActiveTranx::is_tranx_end_pos", this=0x0) at plugin/semisync/semisync.h:50
#4 ActiveTranx::is_tranx_end_pos (this=0x0, log_file_name=0x3967258 "master-bin.000001", log_file_pos=576) at plugin/semisync/semisync_master.cc:198
#5 0x00007fc621d8eadf in ReplSemiSyncMaster::commitTrx (this=0x7fc621f937e0, trx_wait_binlog_name=0x3967258 "master-bin.000001", trx_wait_binlog_pos=576) at plugin/semisync/semisync_master.cc:746
#6 0x0000000000630849 in Trans_delegate::after_commit (this=0x10a6de0, thd=<optimized out>, all=<optimized out>) at sql/rpl_handler.cc:243
#7 0x000000000069a431 in ha_commit_trans (thd=0x393ccc0, all=false) at sql/handler.cc:1305
#8 0x0000000000638c4a in trans_commit_stmt (thd=0x393ccc0) at sql/transaction.cc:299
#9 0x000000000058a053 in mysql_execute_command (thd=0x393ccc0) at sql/sql_parse.cc:4514
#10 0x0000000000590b19 in mysql_parse (parser_state=0x7fc621fda460, thd=0x393ccc0, rawbuf=<optimized out>, length=<optimized out>) at sql/sql_parse.cc:5736
#11 mysql_parse (thd=0x393ccc0, rawbuf=<optimized out>, length=31, parser_state=0x7fc621fda460) at sql/sql_parse.cc:5661
#12 0x0000000000591ef8 in dispatch_command (command=COM_QUERY, thd=0x393ccc0, packet=<optimized out>, packet_length=<optimized out>) at sql/sql_parse.cc:1055
#13 0x000000000062d0b4 in do_handle_one_connection (thd_arg=<optimized out>) at sql/sql_connect.cc:1253
#14 0x000000000062d14a in handle_one_connection (arg=0x393ccc0) at sql/sql_connect.cc:1168
#15 0x0000000000954e76 in pfs_spawn_thread (arg=0x38d7d50) at storage/perfschema/pfs.cc:1015
#16 0x00007fc62d79fefc in start_thread (arg=0x7fc621fdb700) at pthread_create.c:304
#17 0x00007fc62cb1259d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#18 0x0000000000000000 in ?? ()

Debug:

#3 <signal handler called>
#4 0x00007f8dc4c30046 in Trace::function_enter (this=0x0, func_name=0x7f8dc4c312a2 "ActiveTranx::is_tranx_end_pos") at plugin/semisync/semisync.h:50
#5 0x00007f8dc4c2de36 in ActiveTranx::is_tranx_end_pos (this=0x0, log_file_name=0x31e2828 "master-bin.000001", log_file_pos=576) at plugin/semisync/semisync_master.cc:198
#6 0x00007f8dc4c2eff5 in ReplSemiSyncMaster::commitTrx (this=0x7f8dc4e34860, trx_wait_binlog_name=0x31e2828 "master-bin.000001", trx_wait_binlog_pos=576) at plugin/semisync/semisync_master.cc:746
#7 0x00007f8dc4c307b0 in repl_semi_report_commit (param=0x7f8dc4ec2a60) at plugin/semisync/semisync_master_plugin.cc:59
#8 0x000000000070fe00 in Trans_delegate::after_commit (this=0x14e0360, thd=0x31acf80, all=false) at sql/rpl_handler.cc:243
#9 0x00000000007c1d63 in ha_commit_trans (thd=0x31acf80, all=false) at sql/handler.cc:1305
#10 0x000000000071bd43 in trans_commit_stmt (thd=0x31acf80) at sql/transaction.cc:299
#11 0x0000000000613dc2 in mysql_execute_command (thd=0x31acf80) at sql/sql_parse.cc:4514
#12 0x0000000000616bfd in mysql_parse (thd=0x31acf80, rawbuf=0x31d16a8 "INSERT INTO t1 SELECT * FROM t1", length=31, parser_state=0x7f8dc4ec3500) at sql/sql_parse.cc:5736
#13 0x000000000060a473 in dispatch_command (command=COM_QUERY, thd=0x31acf80, packet=0x31c9591 "INSERT INTO t1 SELECT * FROM t1", packet_length=31) at sql/sql_parse.cc:1055
#14 0x000000000060972a in do_command (thd=0x31acf80) at sql/sql_parse.cc:794
#15 0x000000000070a9ef in do_handle_one_connection (thd_arg=0x31acf80) at sql/sql_connect.cc:1253
#16 0x000000000070a3da in handle_one_connection (arg=0x31acf80) at sql/sql_connect.cc:1168
#17 0x0000000000c0116f in pfs_spawn_thread (arg=0x31567e0) at storage/perfschema/pfs.cc:1015
#18 0x00007f8dd0640efc in start_thread (arg=0x7f8dc4ec4700) at pthread_create.c:304
#19 0x00007f8dcf9b359d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

Comment by Kristian Nielsen [ 2012-06-22 ]

I fixed anoter similar case that could cause the crash.
Pushed to lp:maria/5.5 (rev 3454), hopefully that's the last of them.

Comment by Kristian Nielsen [ 2012-06-22 ]

Fixed in 5.5.25

Generated at Thu Feb 08 06:28:09 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.