List:General Discussion« Previous MessageNext Message »
From:Sasha Pachev Date:February 14 2001 7:50pm
Subject:Re: Replication Bug in 3.23.33
View as plain text  
On Wednesday 14 February 2001 09:19, Matt Hahnfeld wrote:
>After downgrading to 3.23.30, replication worked fine without the problem
>posted below.  This appears to be a bug in the newest version (3.23.33)
>only.
>
>The failed tests were run under mysql-3.23.33-pc-linux-gnu-i686 (binary
>distribution).
>
>The same tests succeeded under mysql-3.23.30-gamma-pc-linux-gnu-i686
>(binary distribution) with no problems.
>
>---------- Forwarded message ----------
>Date: Tue, 13 Feb 2001 14:33:47 -0500 (EST)
>From: Matt Hahnfeld <hahnfld@stripped>
>To: mysql@stripped
>Subject: Strange Replication Problem in 3.23.33 (bug?)
>
>I set up two MySQL servers to run in a failover configuration.  Because
>queries will only ever be submitted to one server at a time, I decided to
>use a makeshift two-way replication scheme under MySQL as descibed in
>the MySQL manual.
>
>First server (wallace) has this:
>--------------------------------
>server-id=1
>log-bin
>master-host=gromit
>master-user=repl
>master-password=<password>
>log-slave-updates
>--------------------------------
>
>Second server (gromit) has this:
>--------------------------------
>server-id=2
>log-bin
>master-host=wallace
>master-user=repl
>master-password=<password>
>log-slave-updates
>--------------------------------
>
>I started by mirroring both data directories.  Then I started both servers
>and all looked fine.  Logs indicate no errors.  When I inserted some
>data on wallace, gromit replicated them just fine.  But when I tried to
>insert data on gromit, wallace never got the changes.  The weird thing is,
>no real errors appeared in the logs.
>
>Then I did a "SHOW SLAVE STATUS" on wallace and saw "Skip_counter" was
>set to 4294967295!!!  Strange, I thought, so I ran "STOP SLAVE", "SET
>SQL_SLAVE_SKIP_COUNTER=0", and "START SLAVE" on wallace.  Suddenly
>changes made on gromit were reflected on wallace.
>
>But then I tried to insert data on wallace again and the same thing
>happened.  This time gromit never got the changes.  When I ran "SHOW SLAVE
>STATUS" on gromit, it indicated 4294967293.  To get it to work, I had to
>run "SET SQL_SLAVE_SKIP_COUNTER=0" on gromit.
>
>I just don't get it...  Why are the skip counters being reset to thse
>crazy high numbers?

Thanks for the bug report. The problem is a bug in the code that skips events 
when it sees a log entry with the same server id - something that can only 
happen in the bi-directional replicaiton setup. Fix:

--- 1.85/sql/slave.cc   Sat Jan 27 15:33:30 2001
+++ edited/slave.cc     Wed Feb 14 12:35:34 2001
@@ -849,7 +849,8 @@
 
       mi->inc_pos(event_len);
       flush_master_info(mi);
-      --slave_skip_counter;
+      if(slave_skip_counter)
+        --slave_skip_counter;
       delete ev;
       return 0;                                        // avoid infinite 
update loops
     }                                                                        
                    


-- 
MySQL Development Team
   __  ___     ___ ____  __ 
  /  |/  /_ __/ __/ __ \/ /   Sasha Pachev <sasha@stripped>
 / /|_/ / // /\ \/ /_/ / /__  MySQL AB, http://www.mysql.com/
/_/  /_/\_, /___/\___\_\___/  Provo, Utah, USA
       <___/                  
Thread
DBI - basic questionAlbert24 Mar
  • Re: DBI - basic questionColin McKinnon25 Mar
  • Re: Replication Bug in 3.23.33Sasha Pachev14 Feb
Re: Replication Bug in 3.23.33Sasha Pachev14 Feb