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

Rpl_semi_sync_master_yes_tx doesn't get incremented when one of slave's IO thread is stopped with semi-sync setup

    XMLWordPrintable

Details

    • Bug
    • Status: Open (View Workflow)
    • Major
    • Resolution: Unresolved
    • None
    • None
    • Replication
    • None

    Description

      In situation with 2 replicas where both are configured in semi-sync and when one of replica is stopped (acting as async), Rpl_semi_sync_master_yes_tx doesn't get incremented for each new transaction.
      The PR 2374 introduced test 7 that shows how was it before and after rebasing to latest 10.11 with changes from MDEV-32551.
      Result before rebasing was as expected that on new event, with single active semi-sync replica Rpl_semi_sync_master_yes_tx will be incremented.
      See the old behavior where we waited that yes transaction be incremented, while wit latest change this wait condition fails

      **** ERROR: failed while waiting for '' 'Rpl_semi_sync_master_yes_tx' = '4' ****
      Note: the following output may have changed since the failure was detected
      **** Showing STATUS, PROCESSLIST ****
      SHOW  STATUS LIKE 'Rpl_semi_sync_master_yes_tx';
      Variable_name	Value
      Rpl_semi_sync_master_yes_tx	3
      SHOW PROCESSLIST;
      Id	User	Host	db	Command	Time	State	Info	Progress
      5	root	localhost	test	Sleep	77		NULL	0.000
      6	root	localhost:42424	test	Sleep	77		NULL	0.000
      8	root	localhost:53268	test	Query	0	starting	SHOW PROCESSLIST	0.000
      9	root	localhost:53278	test	Sleep	77		NULL	0.000
      13	root	localhost:53310	NULL	Binlog Dump	71	Master has sent all binlog to slave; waiting for more updates	NULL	0.000
      

      Please fix the PR test case in rpl_show_slave_hosts.test if PR 2374 gets merged before fixing this bug. Example to uncomment is here:

      --echo # Transaction is not incremented and it should (TODO?)
      # let $status_var= Rpl_semi_sync_master_yes_tx;
      # let $status_var_value= `SELECT $master_request_ack_num + 1`;
      # source include/wait_for_status_var.inc;
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              anel Anel Husakovic
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.