Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-16812

Semisync slave io thread segfaults at STOP-SLAVE handling

    Details

      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

          Activity

            People

            • Assignee:
              Elkin Andrei Elkin
              Reporter:
              Elkin Andrei Elkin
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: