List:General Discussion« Previous MessageNext Message »
From:Nick Gaugler Date:August 3 2003 9:34pm
Subject:3.23.56 Replication Bug
View as plain text  
I know the replication method is different in MySQL 4.0 then MySQL
3.23.x, but I have a bug that causes problems.  The following query will
cause MySQL's logic to not properly read any of the following my.cnf
commands on slave servers:

replicate-wild-do-table
replicate-wild-ignore-table
replicate-ignore-table

I am sure it would make any of the match commands fail as well.  This
query caused replication to stop on 2 of my slaves because it was in a
database that was not made to be replicated on the slave.  



Below is the query:

UPDATE phpbb_search_results 
                        SET search_id = 1929162862, search_array =
'a:7:{s:14:"search_results";s:28:"521, 577, 592, 593, 597,
598";s:17:"total_
match_count";i:6;s:12:"split_search";N;s:7:"sort_by";i:0;s:8:"sort_dir";
s:4:"DESC";s:12:"show_results";s:6:"topics";s:12:"return_chars";i:200;}
'
                        WHERE session_id =
'b85542aa0e83fdc6ee306e82ce1a6ad5''



Below is the error log entry:

030803 16:24:33  Slave: connected to master
'replicateuser@stripped:3306',  replication started in log
'blue-bin.013' at position 72475077
030803 16:24:33  Slave: did not get the expected error running query
from master - expected: 'Duplicate entry '%-.64s' for key %d' (1062),
got 
'no error' (0)
030803 16:24:33  Slave:  error running query 'UPDATE
phpbb_search_results 
                        SET search_id = 1929162862, search_array =
'a:7:{s:14:"search_results";s:28:"521, 577, 592, 593, 597,
598";s:17:"total_
match_count";i:6;s:12:"split_search";N;s:7:"sort_by";i:0;s:8:"sort_dir";
s:4:"DESC";s:12:"show_results";s:6:"topics";s:12:"return_chars";i:200;}
'
                        WHERE session_id =
'b85542aa0e83fdc6ee306e82ce1a6ad5'' 
030803 16:24:33  Error running query, slave aborted. Fix the problem,
and re-start the slave thread with "mysqladmin start-slave". We stopped
a
t log 'blue-bin.013' position 72475077
030803 16:24:33  Slave thread exiting, replication stopped in log
'blue-bin.013' at position 72475077



Below is the binlog entry, keep in mind, it will ignore all of the
queries after this one, it will just not ignore a query with those
special characters in it:

# at 72475077
#030803  0:35:26 server id  1   Query   thread_id=191959
exec_time=0     error_code=1062
use bluecustforum;
SET TIMESTAMP=1059888926;
UPDATE phpbb_search_results 
                        SET search_id = 1929162862, search_array =
'a:7:{s:14:"search_results";s:28:"521, 577, 592, 593, 597,
598";s:17:"total_
match_count";i:6;s:12:"split_search";N;s:7:"sort_by";i:0;s:8:"sort_dir";
s:4:"DESC";s:12:"show_results";s:6:"topics";s:12:"return_chars";i:200;}
'
                        WHERE session_id =
'b85542aa0e83fdc6ee306e82ce1a6ad5';
# at 72475467
#030803  0:35:29 server id  1   Query   thread_id=191960
exec_time=0     error_code=0
SET TIMESTAMP=1059888929;
UPDATE phpbb_topics
        SET topic_views = topic_views + 1
        WHERE topic_id = 18;
# at 72475580
#030803  0:35:34 server id  1   Query   thread_id=191961
exec_time=0     error_code=0
SET TIMESTAMP=1059888934;
UPDATE phpbb_sessions 
                                                SET session_time =
1059888934, session_page = 9 
                                                WHERE session_id =
'b85542aa0e83fdc6ee306e82ce1a6ad5';
# at 72475755
#030803  0:35:34 server id  1   Query   thread_id=191961
exec_time=0     error_code=0
SET TIMESTAMP=1059888934;
UPDATE phpbb_users 
                                                        SET
user_session_time = 1059888934, user_session_page = 9 
                                                        WHERE user_id =
8;



Below is the version info from mysqlbug

VERSION="3.23.56"
COMPILATION_COMMENT="Official MySQL RPM"
BUGmysql="mysql@stripped"
# This is set by configure
COMP_ENV_INFO="CC='gcc'  CFLAGS='-O6 -fno-omit-frame-pointer -mpentium'
CXX='gcc'  CXXFLAGS='-O6 -fno-omit-frame-pointer                 -feli
de-constructors -fno-exceptions -fno-rtti -mpentium'  LDFLAGS=''"
CONFIGURE_LINE="./configure '--disable-shared'
'--with-mysqld-ldflags=-all-static' '--with-client-ldflags=-all-static'
'--without-berkeley-db' 
'--without-innodb' '--enable-assembler' '--enable-local-infile'
'--with-mysqld-user=mysql'
'--with-unix-socket-path=/var/lib/mysql/mysql.sock' 
'--prefix=/' '--with-extra-charsets=complex' '--exec-prefix=/usr'
'--libexecdir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share'
'--locals
tatedir=/var/lib/mysql' '--infodir=/usr/share/info'
'--includedir=/usr/include' '--mandir=/usr/share/man'
'--with-comment=Official MySQL RPM' '
CC=gcc' 'CFLAGS=-O6 -fno-omit-frame-pointer -mpentium' 'CXXFLAGS=-O6
-fno-omit-frame-pointer              -felide-constructors
-fno-exceptions 
-fno-rtti -mpentium' 'CXX=gcc'"






nickg


Thread
3.23.56 Replication BugNick Gaugler3 Aug