Parallel replication with about 8 parallel threads is up continuously between one master instance and one slave instance. Every day at around the same time SHOW SLAVE STATUS
on the slave shows these two states:
Slave_IO_State: Checking master version
Slave_IO_Running: Preparing
The documentation on the first one says
Checking master version - Checking the master's version, which only occurs very briefly after establishing a connection with the master.
That would be pretty straightforward if this slave had just started, or if the connection between the two had been lost, but there is no other sign of that happening, and this state comes up pretty consistently (+/- a couple seconds) once a day.
The documentation of the second one makes no mention of "Preparing" as a possible value.
Slave_IO_Running - Whether the slave I/O thread is running and connected (Yes), running but not connected to a master (Connecting) or not running (No).
Both master and slave are running
Server version: 10.1.13-MariaDB Source distribution
What causes the slave to get into this state? I wonder if the fact that there are multiple parallel replication threads has something to do with it or if that is a red herring.
UPDATE: I just came across this note in the MariaDB documentation, and its bug. I wonder if it is related.
. . .the
TIME
column ofSHOW FULL PROCESSLIST
andINFORMATION_SCHEMA.PROCESSLIST
can not be used to determine if a slave is lagging behind. For this, use instead theSeconds_Behind_Master
column in the output of SHOW SLAVE STATUS.