Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

With semi-sync replication, master server crash after slave server shutdown #155

Closed
go-to-k opened this issue Dec 29, 2016 · 3 comments
Closed

Comments

@go-to-k
Copy link

go-to-k commented Dec 29, 2016

・Version
Mysql Version: 5.7.16
mysql-audit Version: audit-plugin-mysql-5.7-1.1.1-660-linux-x86_64
Linux version: 3.10.0-327.18.2.el7.x86_64 (builder@kbuilder.dev.centos.org)(gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) )

・Events

  1. With semi-sync replication (composing one master and one slave mysql server), both master and slave install plugin "semisync_master.so" and "semisync_slave.so".
    For after fail-over, i write in my.cnf in both servers like that
    rpl_semi_sync_master_enabled=1
    rpl_semi_sync_slave_enabled=1

  2. I stop the "slave" mysql server during behaving replication correctly, then the "master" mysql server crashes and i couldn't connect to master.

[slave ~]$ service mysqld stop
Redirecting to /bin/systemctl stop mysqld.service

[master ~]$ mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)

  1. After several seconds, master server starts crash recovery automatically, and i became able to connect to the master server.

[master ~]$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.16-log MySQL Community Server (GPL)
...

・Error log (in master server):

09:39:04 UTC - mysqld got signal 11 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
Attempting to collect some information that could help diagnose the problem.
As this is a crash and something is definitely wrong, the information
collection process might fail.

key_buffer_size=8388608
read_buffer_size=131072
max_used_connections=4
max_threads=800
thread_count=2
connection_count=2
It is possible that mysqld could use up to
key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 940467 K bytes of memory
Hope that's ok; if not, decrease some variables in the equation.

Thread pointer: 0x0
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 0 thread_stack 0x40000
/usr/sbin/mysqld(my_print_stacktrace+0x3b)[0xef182b]
/usr/sbin/mysqld(handle_fatal_signal+0x461)[0x7ad8c1]
/lib64/libpthread.so.0(+0xf100)[0x7fb4f2dfe100]
/usr/lib64/mysql/plugin/libaudit_plugin.so(+0xfafd)[0x7fb1e5364afd]
/usr/lib64/mysql/plugin/libaudit_plugin.so(+0x11009)[0x7fb1e5366009]
/usr/lib64/mysql/plugin/libaudit_plugin.so(+0xeb35)[0x7fb1e5363b35]
/usr/sbin/mysqld[0x7ada1a]
/usr/sbin/mysqld(Z24plugin_foreach_with_maskP3THDPFcS0_P13st_plugin_intPvEijS3+0x1c7)[0xce5737]
/usr/sbin/mysqld[0x7adb0b]
/usr/sbin/mysqld(_Z18mysql_audit_notifyP3THD30mysql_event_general_subclass_tiPKcm+0x1f4)[0x7ae074]
/usr/sbin/mysqld(my_message_sql+0xbf)[0x79ee9f]
/usr/sbin/mysqld(my_error+0xe0)[0xeebd40]
/usr/sbin/mysqld[0xc1b42b]
/usr/sbin/mysqld[0xc1b7f0]
/usr/sbin/mysqld(my_net_read+0x334)[0xc1c574]
/usr/lib64/mysql/plugin/semisync_master.so(_ZN12Ack_receiver3runEv+0x3f2)[0x7fb1e4a8dab2]
/usr/lib64/mysql/plugin/semisync_master.so(ack_receive_handler+0x19)[0x7fb1e4a8dd79]
/usr/sbin/mysqld(pfs_spawn_thread+0x1b4)[0x12645b4]
/lib64/libpthread.so.0(+0x7dc5)[0x7fb4f2df6dc5]
/lib64/libc.so.6(clone+0x6d)[0x7fb4f18b2ced]
The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.

Also, in the case when stop "master" (not slave) with semi-sync replication, same logs were written in master's error log.

@go-to-k go-to-k changed the title With semi-sync replication, master server crashes after slave server stops With semi-sync replication, master server crash after slave server shutdown Dec 29, 2016
@aharonrobbins
Copy link

Thanks for the report. We will investigate.

@karthikg001
Copy link

karthikg001 commented Feb 10, 2017

+1
This bug hampers usage in 5.7 semi-sync setup.

aharonrobbins pushed a commit that referenced this issue Mar 15, 2017
Add offsets for MariaDB 10.0.30 and 10.1.22.
@aharonrobbins
Copy link

Hi. We have fixed this issue in the latest commit. Pre-compiled binaries have been uploaded to Bintray. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants