diff options
author | guilhem@mysql.com <> | 2005-10-12 13:29:55 +0200 |
---|---|---|
committer | guilhem@mysql.com <> | 2005-10-12 13:29:55 +0200 |
commit | 4c1c9db82337e7dad50d0435dc5e65de283fe975 (patch) | |
tree | 3a9668cc5d377733fb17fc9db602a2c9c4b43e74 /sql/slave.h | |
parent | 8a291efb75b32865c1f6b0510ab2d983feda413d (diff) | |
download | mariadb-git-4c1c9db82337e7dad50d0435dc5e65de283fe975.tar.gz |
Fix for BUG#13023: "SQL Thread is up but doesn't move forward". Details in slave.cc;
in short we now record whenever the slave I/O thread ignores a master's event because of its server id,
and use this info in the slave SQL thread to advance Exec_master_log_pos. Because if we
do not, this variable stays at the position of the last executed event, i.e. the last *non-ignored*
executed one, which may not be the last of the master's binlog (and so the slave *looks* behind
the master though it's data-wise it's not).
Diffstat (limited to 'sql/slave.h')
-rw-r--r-- | sql/slave.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/sql/slave.h b/sql/slave.h index 5a85e26d9ad..f780b7c8473 100644 --- a/sql/slave.h +++ b/sql/slave.h @@ -304,6 +304,17 @@ typedef struct st_relay_log_info */ ulong trans_retries, retried_trans; + /* + If the end of the hot relay log is made of master's events ignored by the + slave I/O thread, these two keep track of the coords (in the master's + binlog) of the last of these events seen by the slave I/O thread. If not, + ign_master_log_name_end[0] == 0. + As they are like a Rotate event read/written from/to the relay log, they + are both protected by rli->relay_log.LOCK_log. + */ + char ign_master_log_name_end[FN_REFLEN]; + ulonglong ign_master_log_pos_end; + st_relay_log_info(); ~st_relay_log_info(); |