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

No way to see that I/O thread is blocked by hitting the relay log size limit until it is aborted by timeout

    XMLWordPrintable

Details

    Description

      When I/O thread is reaching to relay log size limit (relay_log_space_limit), It is getting blocked and aborted by timeout but we can't see this from the error log or show slave status that what happened. On slave, error log shows nothing and show slave status says Slave_IO_Running: Yes but On master, error log shows that aborted connection of slave user and show slave hosts doesn't show that slave. We need better explanation in slave error log.

      How to reproduce :

      Step1: with any replication setup, set relay_log_space_limit=128K in my.cnf on any slave.
      Step2: restart slave and then stop slave. (here, I've one master and two slaves)
      Step3: create any table and insert records till relay log filled up to 128K

      MariaDB [test]> create table t1 (id int, name varchar(10), city varchar(10));
      Query OK, 0 rows affected (0.04 sec)
       
      MariaDB [test]> insert into t1 values (1, 'nilnandan', 'ahmedabad');
      Query OK, 1 row affected (0.01 sec)
       
      MariaDB [test]> insert into t1 select * from t1;
      Query OK, 1 row affected (0.01 sec)
      Records: 1  Duplicates: 0  Warnings: 0
       
      ...
       
      MariaDB [test]> insert into t1 select * from t1;
      Query OK, 65536 rows affected (0.26 sec)
      Records: 65536  Duplicates: 0  Warnings: 0
      

      Step4: check show slave status, it says,

                  Slave_IO_Running: Yes
                  Slave_SQL_Running: No
      

      In relay log dir, it will stuck with the size,

      -rw-rw----. 1 nil nil   132105 Jul  3 19:04 mysql-relay.000009
      

      but nothing in error log. On master error log, you can see msg like

      2017-07-03 19:05:31 140123990644480 [Warning] Aborted connection 13 to db: 'unconnected' user: 'rsandbox' host: 'localhost' (Got an error writing communication packets)}}
      

      and show slave hosts shows only one slave.

      MariaDB [test]> show slave hosts;
      +-----------+----------+-------+-----------+
      | Server_id | Host     | Port  | Master_id |
      +-----------+----------+-------+-----------+
      |       102 | SBslave2 | 13258 |         1 |
      +-----------+----------+-------+-----------+
      1 row in set (0.00 sec)}}
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            niljoshi Nilnandan Joshi (Inactive)
            Votes:
            1 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated: