Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.0.19, 10.1.5
-
Linux, Windows
Description
If you issue a STOP SLAVE on any slave (tested on 10.0.19 and 10.1.5), you will see an "ERROR" logged to the error log:
mysql> select version();
|
+----------------+
|
| version() |
|
+----------------+
|
| 10.1.5-MariaDB |
|
+----------------+
|
1 row in set (0.00 sec)
|
|
mysql> stop slave;
|
Query OK, 0 rows affected (0.10 sec)
|
Error log:
015-06-19 16:39:06 2496 [Note] Error reading relay log event: slave SQL thread was killed
|
2015-06-19 16:39:07 3508 [ERROR] Error reading packet from server: Lost connection to MySQL server during query ( server_errno=2013)
|
2015-06-19 16:39:07 3508 [Note] Slave I/O thread killed while reading event
|
2015-06-19 16:39:07 3508 [Note] Slave I/O thread exiting, read up to log 'chris-laptop-bin.000008', position 120
|
The "[Note]"s are fine, but the "[Error]" is not. It then causes monitoring soulutions (MONyog, et al) to then issue alerts.
The same happens in MySQL, but it is fixed in 5.7.0:
https://bugs.mysql.com/bug.php?id=61275
It would be nice if we could fix this for 10.0 and 10.1, however.
So-called "internally filed bug", which Bug #61275 refers to, is in fact Bug #53955 - Error 2013 + "Error reading relay log event" on STOP SLAVE in Windows.
Here is the commit comment for this bugfix:
commit 6b24763a834f14e754afca9a259ca6251c4f4b4c 2e8de7fa9dada2d0b881b55a64f3228a2742d7aa
Author: Manish Kumar <manish.4.kumar@oracle.com>
Date: Tue Mar 27 13:10:42 2012 +0530
BUG#12977988 - ON STOP SLAVE: ERROR READING PACKET FROM SERVER: LOST CONNECTION
TO MYSQL SERVER
BUG#11761457 - ERROR 2013 + "ERROR READING RELAY LOG EVENT" ON STOP SLAVE IN WINDOWS
Problem - on STOP SLAVE, the slave reliably produces the record in the error log
[ERROR] Error reading packet from server: Lost connection to MySQL
server during query (server_errno=2013)
There is not negative effect of this error being logged to the error
log file.
Fix - after execution of STOP SLAVE we check for the value of mi->rli->abort_slave.
This flag is used to suppress any error or warning messages that we get
during execution. So if the flag is set it means we can ignore the error and
do not log it in the error log.