Bug #31316 Report server id clashes in SHOW SLAVE STATUS "Server_IO_State" field
Submitted: 1 Oct 2007 14:30 Modified: 26 Mar 2008 19:47
Reporter: Hartmut Holzgraefe Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Replication Severity:S3 (Non-critical)
Version:5.0, 5.1 OS:Any
Assigned to: Andrei Elkin CPU Architecture:Any
Tags: usability

[1 Oct 2007 14:30] Hartmut Holzgraefe
Description:
When master and slave have the same server_id the IO thread does not start 
on START SLAVE and 

  [ERROR] The slave I/O thread stops because master and slave have equal MySQL 
  server ids; these ids must be different for replication to work (or the 
  --replicate-same-server-id option must be used on slave but this does not 
  always make sense; please check the manual before using it).

is written to the slaves mysqld error log. 

SHOW SLAVE STATUS will only show that the slave IO thread is not running 
without telling why, the Slave_IO_State field is empty and there is no 
other indication of the actual problem either.

How to repeat:
Set up replication using the same server_id on both master and slave,
try START SLAVE followed by SHOW SLAVE STATUS

Suggested fix:
Report server id clashes in the Server_IO_State field on SHOW SLAVE STATUS
[11 Oct 2007 20:03] MySQL Verification Team
Thank you for the bug report.

s; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
071011 16:58:04 [Note] Slave I/O thread exiting, read up to log 'luar-bin.000002', position 218
071011 16:58:04 [Note] next log '/home/miguel/dbs/5.0s/var/luar-relay-bin.000004' is currently active

miguel@luar:~/dbs/5.0s> bin/mysql --defaults-file=/home/miguel/dbs/5.0s/my.cnf -uroot --prompt='slave>'
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.52-debug-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

slave>show slave status\G
*************************** 1. row ***************************
             Slave_IO_State:
                Master_Host: localhost
                Master_User: slave
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: luar-bin.000002
        Read_Master_Log_Pos: 218
             Relay_Log_File: luar-relay-bin.000004
              Relay_Log_Pos: 98
      Relay_Master_Log_File: luar-bin.000002
           Slave_IO_Running: No
          Slave_SQL_Running: Yes
            Replicate_Do_DB:
        Replicate_Ignore_DB:
         Replicate_Do_Table:
     Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
        Exec_Master_Log_Pos: 218
            Relay_Log_Space: 98
            Until_Condition: None
             Until_Log_File:
              Until_Log_Pos: 0
         Master_SSL_Allowed: No
         Master_SSL_CA_File:
         Master_SSL_CA_Path:
            Master_SSL_Cert:
          Master_SSL_Cipher:
             Master_SSL_Key:
      Seconds_Behind_Master: NULL
1 row in set (0.00 sec)

slave>
[18 Feb 2008 19:46] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/42515

ChangeSet@1.2550, 2008-02-18 21:46:18+02:00, aelkin@mysql1000.dsl.inet.fi +3 -0
  Bug #31316 Report server id clashes in SHOW SLAVE STATUS 
      "Server_IO_State" field
  
  Critical error messages from get_master_version_and_clock() were written
  only to the slave errorlog while Show slave status did not display any
  incident happened.
  
  Although the artifact was reported for a particular --replicate-same-server-id
  related issue the fix refines all critical error reporting with 
  deploying rli->report().
  
  The test for the bug covers only --replicate-same-server-id error reporting.
[18 Feb 2008 19:48] Andrei Elkin
Mats, setting you as the only reviewer as you discussed the issue previously (as logs say).
[20 Feb 2008 21:19] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/42712

ChangeSet@1.2550, 2008-02-20 23:18:01+02:00, aelkin@mysql1000.(none) +3 -0
  Bug #31316 Report server id clashes in SHOW SLAVE STATUS 
      "Server_IO_State" field
  
  Critical error messages from get_master_version_and_clock() were written
  only to the slave errorlog while Show slave status did not display any
  incident happened.
  
  Although the artifact was reported for a particular --replicate-same-server-id
  related issue the fix refines all critical error reporting with 
  deploying rli->report().
  
  The test for the bug covers only --replicate-same-server-id error reporting.
[20 Feb 2008 22:13] Andrei Elkin
pushed to 5.1-rpl.
[25 Mar 2008 11:23] Bugs System
Pushed into 5.1.24-rc
[26 Mar 2008 19:00] Bugs System
Pushed into 6.0.5-alpha
[26 Mar 2008 19:47] Jon Stephens
Documented bugfix in the 5.1.24 and 6.0.5 changelogs as follows:

      Errors due to server ID conflicts were reported only in the slave's 
      error log; now  errors are also shown in the Server_IO_State
      column in the output of SHOW SLAVE STATUS.
[30 Mar 2008 20:05] Jon Stephens
Also documented fix for 5.1.23-ndb-6.3.11.