Bug #9026 Exec_Master_Log_Pos isn't updated
Submitted: 7 Mar 2005 17:18 Modified: 16 Oct 2005 4:43
Reporter: Victoria Reznichenko Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Replication Severity:S2 (Serious)
Version:4.1 and up OS:Any (any)
Assigned to: Bugs System CPU Architecture:Any

[7 Mar 2005 17:18] Victoria Reznichenko
Description:
If you set up circle replication (A->B->A), Exec_Master_Log_Pos isn't updated by events with the same server id.

How to repeat:
1. Set up circle replication when one server is master of another and vise versa.
2. Specify log-slave-updates option for both servers
3. Start replication
4. execute SHOW SLAVE STATUS on one of the server
5. execute SQL statement that should be replicated to the slave
6. do SHOW SLAVE STATUS again (on the same server)

Exec_Master_Log_Pos isn't incremented.
[25 Jul 2005 20:03] Guilhem Bichot
what is considered a bug here is the fix to BUG#1014 (where what is expected here, was considered a bug back then).
[2 Aug 2005 11:13] MySQL Verification Team
Guilhem, look at this:

if I do SHOW PROCESSLIST on one box, server A, it writes "Has read all relay log; waiting for the slave I/O thread to update it" and "Waiting for master to send event". Then if I do SHOW MASTER STATUS on the other box, server B, and take log file name and position and execute SELECT MASTER_POS_WAIT('log_file-bin.###',pos) on A it will not rerurn until next statement on B. I think it's not correct behavior because slave has read and executed _all_ events from the master and Seconds_Behind_Master is 0 but according MASTER_POS_WAIT() slave is not in sync.
[16 Oct 2005 4:43] Timothy Smith
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at
    http://www.mysql.com/doc/en/Installing_source_tree.html

Additional info:

Hi.  This appears to have been fixed along with bug #13023.  I have just tested it with a current MySQL 4.1.16 pull from BK.

a> select master_pos_wait('siva-bin.000001', 209);
+-----------------------------------------+
| master_pos_wait('siva-bin.000001', 209) |
+-----------------------------------------+
|                                       0 |
+-----------------------------------------+
1 row in set (0.00 sec)

a> pager cut -c60-130
PAGER set to 'cut -c60-130'
a> show processlist;
+------+---------------------------------------------------------------
| Time | State                                                         
+------+---------------------------------------------------------------
|  602 | Has sent all binlog to slave; waiting for binlog to be updated
|  539 | Waiting for master to send event                              
|  455 | Has read all relay log; waiting for the slave I/O thread to up
|    0 | NULL                                                          
+------+---------------------------------------------------------------
4 rows in set (0.00 sec)

a> nopager
PAGER set to stdout
a> 

b> show master status;
+-----------------+----------+--------------+------------------+
| File            | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-----------------+----------+--------------+------------------+
| siva-bin.000001 |      209 |              |                  |
+-----------------+----------+--------------+------------------+
1 row in set (0.00 sec)

b> 

a> select master_pos_wait('siva-bin.000001', 209);
+-----------------------------------------+
| master_pos_wait('siva-bin.000001', 209) |
+-----------------------------------------+
|                                       0 |
+-----------------------------------------+
1 row in set (0.00 sec)

a> show slave status\G
*************************** 1. row ***************************
             Slave_IO_State: Waiting for master to send event
                Master_Host: 127.0.0.1
                Master_User: root
                Master_Port: 33411
              Connect_Retry: 60
            Master_Log_File: siva-bin.000001
        Read_Master_Log_Pos: 209
             Relay_Log_File: siva-relay-bin.000001
              Relay_Log_Pos: 111
      Relay_Master_Log_File: siva-bin.000001
           Slave_IO_Running: Yes
          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: 209
            Relay_Log_Space: 111
            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: 0
1 row in set (0.00 sec)

a>