We're updating the issue view to help you get more done.Learn more

Server crashes in intern_plugin_lock on concurrent installing semisync plugin and setting rpl_semi_sync_master_enabled

Also filed as http://bugs.mysql.com/bug.php?id=65711

#3  <signal handler called>
#4  0x000000000061ddfb in intern_plugin_lock (lex=0x24a83e8, rc=0x248e6f0) at sql/sql_plugin.cc:924
#5  0x0000000000622c1d in find_sys_var (thd=0x24a6110, str=0x25a8a28 "rpl_semi_sync_master_enabled", length=28) at sql/sql_plugin.cc:2650
#6  0x0000000000759b5a in find_sys_var_null_base (thd=0x24a6110, tmp=0x7fb73224e830) at sql/sql_yacc.yy:416
#7  0x000000000077c283 in MYSQLparse (yythd=0x24a6110) at sql/sql_yacc.yy:13586
#8  0x000000000061a5a1 in parse_sql (thd=0x24a6110, parser_state=0x7fb732250500, creation_ctx=0x0) at sql/sql_parse.cc:7602
#9  0x00000000006165b1 in mysql_parse (thd=0x24a6110, rawbuf=0x25a8958 "SET GLOBAL rpl_semi_sync_master_enabled = ON", length=44, parser_state=0x7fb732250500) at sql/sql_parse.cc:5691
#10 0x0000000000609f73 in dispatch_command (command=COM_QUERY, thd=0x24a6110, packet=0x25a1141 "SET GLOBAL rpl_semi_sync_master_enabled = ON", packet_length=44) at sql/sql_parse.cc:1055
#11 0x000000000060922a in do_command (thd=0x24a6110) at sql/sql_parse.cc:794
#12 0x000000000070a4ef in do_handle_one_connection (thd_arg=0x24a6110) at sql/sql_connect.cc:1253
#13 0x0000000000709eda in handle_one_connection (arg=0x24a6110) at sql/sql_connect.cc:1168
#14 0x0000000000bffb0f in pfs_spawn_thread (arg=0x2629ad0) at storage/perfschema/pfs.cc:1015
#15 0x00007fb73d8adefc in start_thread (arg=0x7fb732251700) at pthread_create.c:304
#16 0x00007fb73cc2059d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

bzr version-info

revision-id: knielsen@knielsen-hq.org-20120622084255-u53u21xv3w7sqxms
date: 2012-06-22 10:42:55 +0200
build-date: 2012-06-22 17:46:40 +0400
revno: 3456

(also reproducible on current MySQL 5.5 and MySQL trunk).

MTR test case
(you might try to run it with --repeat=N
if you are not getting the crash right away)

--connect (con1,127.0.0.1,root,,test)
--error 0,ER_UNKNOWN_SYSTEM_VARIABLE
SET GLOBAL rpl_semi_sync_master_enabled = OFF;
--error 0,ER_SP_DOES_NOT_EXIST
UNINSTALL PLUGIN rpl_semi_sync_master;
--send
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
--connection default
--error 0,ER_UNKNOWN_SYSTEM_VARIABLE
SET GLOBAL rpl_semi_sync_master_enabled = ON;
--connection con1
--reap

If you are still not getting the crash, try this RQG grammar

cat semi.yy

thread1:
	SET GLOBAL rpl_semi_sync_master_enabled = on_off ;

query:
	INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so' | UNINSTALL PLUGIN rpl_semi_sync_master ;

on_off:
	ON | OFF ;

Run it as

perl runall.pl \
--grammar=semi.yy \
--queries=100M \
--threads=2 \
--duration=300 \
--skip-gendata \
--basedir=<your basedir> --vardir=<your vardir>

Make sure the tests find the library all right
and if not, additionally provide plugin-dir on the command line

Status

Assignee

Sergey Vojtovich

Reporter

Elena Stepanova