Details
-
Task
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
None
Description
When the semisync slave is being stopped with STOP SLAVE just after the master was shut down it attempts to reconnect with the master anyway per a semisync routine.
Instead of an expected error the io-thread segfauls like
#0 0x0000555555ecad06 in mysql_real_connect (mysql=0x7fff9801f2f8, host=0x7fff9801cad0 "127.0.0.1", user=0x7fff9801cd28 "root", passwd=0x7fff98007d38 "", db=0x0, port=10760, unix_socket=0x0, client_flag=0) at client.c:3660
|
#1 0x0000555555dfa604 in Repl_semi_sync_slave::kill_connection (this=0x55555746ef70 <repl_semisync_slave>, mysql=0x7fff9801edd8) at semisync_slave.cc:141
|
#2 0x0000555555dfa50c in Repl_semi_sync_slave::slave_stop (this=0x55555746ef70 <repl_semisync_slave>, mi=0x555558253ed0) at semisync_slave.cc:120
|
#3 0x0000555555b2b7ec in handle_slave_io (arg=0x555558253ed0) at slave.cc:4980
|
at the stack head function is executing
if (!(client_flag & CLIENT_REMEMBER_OPTIONS) &&
|
!mysql->options.extension->async_context)
|
mysql_close_free_options(mysql);
|
when mysql->options.extension is NULL.
Apparently not-NULL check for mysql->options.extension is missed and should
be deployed to fix the issue.
Attachments
Issue Links
- relates to
-
MDEV-27845 ASAN use-after-poison in mysql_real_connect
- Confirmed