| Bug #21645 | query cache NOT refreshing on slave after row-based replication updates | ||
|---|---|---|---|
| Submitted: | 15 Aug 2006 5:26 | Modified: | 27 Nov 2006 17:54 |
| Reporter: | Lu Vo | Email Updates: | |
| Status: | Can't repeat | Impact on me: | |
| Category: | MySQL Server: Replication | Severity: | S2 (Serious) |
| Version: | 5.1.11/5.1BK | OS: | Linux (centOS 4.3) |
| Assigned to: | Chuck Bell | CPU Architecture: | Any |
| Tags: | query cache, row-based replication | ||
[15 Aug 2006 5:26]
Lu Vo
[16 Aug 2006 1:12]
MySQL Verification Team
Thank you for the bug report. Could you please provide the my.cnf for both master/slave and the create table/insert data for the test you reported. Thanks in advance.
[16 Aug 2006 8:20]
Lu Vo
master my.cnf [mysqld] server-id=3 log-output=FILE log-bin=/var/log/mysql/binlog binlog-format=row max-binlog-size=100M log-slow-queries=/var/log/mysql/slow-queries.log skip-innodb skip-bdb safe-user-create skip-name-resolve skip-log-warnings safe-show-database set-variable = flush_time=86400 set-variable = max_connections=400 set-variable = max_connect_errors=100 set-variable = wait_timeout=60 set-variable = interactive_timeout=600 set-variable = myisam-recover=FORCE set-variable = key_buffer_size=300M set-variable = sort_buffer_size=500k set-variable = read_buffer_size=10M set-variable = table_cache=10M set-variable = max_delayed_threads=0 set-variable = query_cache_size=500M set-variable = thread_concurrency=4 set-variable = thread_cache_size=500 set-variable = long_query_time=120 [mysql.server] user=mysql [mysqld_safe] log-error=/var/log/mysql/error.log slave my.cf [mysqld] server-id=1 log-slow-queries=/var/log/mysql/slow-queries.log skip-innodb skip-bdb safe-user-create skip-name-resolve skip-log-warnings safe-show-database set-variable = flush_time=86400 set-variable = max_connections=400 set-variable = max_connect_errors=100 set-variable = wait_timeout=60 set-variable = interactive_timeout=600 set-variable = myisam-recover=FORCE set-variable = key_buffer_size=300M set-variable = sort_buffer_size=5M set-variable = read_buffer_size=10M set-variable = table_cache=10M set-variable = max_delayed_threads=0 set-variable = query_cache_size=300M set-variable = thread_cache_size=500 set-variable = long_query_time=120 [mysql.server] user=mysql [mysqld_safe] log-error=/var/log/mysql/error.log CREATE TABLE `users` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `domain_id` int(11) unsigned NOT NULL DEFAULT '0', `status` char(1) NOT NULL DEFAULT 'Y', `disk_quota` int(7) NOT NULL DEFAULT '-1', `disk_usage` int(7) unsigned NOT NULL DEFAULT '0', `msg_usage` int(7) unsigned NOT NULL DEFAULT '0', `msg_quota` int(7) NOT NULL DEFAULT '-1', `lastrecalculate` int(11) unsigned NOT NULL DEFAULT '0', `user` varchar(128) NOT NULL DEFAULT '', `password` varchar(32) NOT NULL DEFAULT '', `mailpath` varchar(128) NOT NULL DEFAULT '', `warningemail` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`), KEY `idx1` (`domain_id`,`user`(30)) ) ENGINE=MyISAM AUTO_INCREMENT=51087 DEFAULT CHARSET=latin1; INSERT INTO users SET domain_id='3', user='test', disk_quota='-1', password='aaaaaa', disk_usage='0', msg_usage='0', msg_quota='-1', mailpath='0/';
[7 Sep 2006 18:14]
Lu Vo
Any fixes for this yet ? Thanks.
[7 Sep 2006 20:21]
MySQL Verification Team
Thank you for the bug report. Verified as described:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 5.1.12-beta-debug
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
slave>CHANGE MASTER TO
-> MASTER_HOST='localhost',
-> MASTER_USER='slaveuser',
-> MASTER_PASSWORD='slaveruser',
-> MASTER_LOG_FILE='hegel.000001',
-> MASTER_LOG_POS=381;
Query OK, 0 rows affected (0.04 sec)
slave>start slave;
Query OK, 0 rows affected (0.01 sec)
slave>show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: localhost
Master_User: slaveuser
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: hegel.000001
Read_Master_Log_Pos: 668
Relay_Log_File: hegel.000002
Relay_Log_Pos: 526
Relay_Master_Log_File: hegel.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: 668
Relay_Log_Space: 526
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)
slave>
master>use test;
Database changed
master>CREATE TABLE `users` (
-> `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
-> `domain_id` int(11) unsigned NOT NULL DEFAULT '0',
-> `status` char(1) NOT NULL DEFAULT 'Y',
-> `disk_quota` int(7) NOT NULL DEFAULT '-1',
-> `disk_usage` int(7) unsigned NOT NULL DEFAULT '0',
-> `msg_usage` int(7) unsigned NOT NULL DEFAULT '0',
-> `msg_quota` int(7) NOT NULL DEFAULT '-1',
-> `lastrecalculate` int(11) unsigned NOT NULL DEFAULT '0',
-> `user` varchar(128) NOT NULL DEFAULT '',
-> `password` varchar(32) NOT NULL DEFAULT '',
-> `mailpath` varchar(128) NOT NULL DEFAULT '',
-> `warningemail` varchar(255) DEFAULT NULL,
-> PRIMARY KEY (`id`),
-> KEY `idx1` (`domain_id`,`user`(30))
-> ) ENGINE=MyISAM AUTO_INCREMENT=51087 DEFAULT CHARSET=latin1;
Query OK, 0 rows affected (0.02 sec)
master>INSERT INTO users SET domain_id='3', user='test', disk_quota='-1',
-> password='aaaaaa', disk_usage='0', msg_usage='0', msg_quota='-1',
-> mailpath='0/';
Query OK, 1 row affected (0.03 sec)
master>select password from users where id=51087;
+----------+
| password |
+----------+
| aaaaaa |
+----------+
1 row in set (0.00 sec)
slave>use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
slave>select password from users where id=51087;
+----------+
| password |
+----------+
| aaaaaa |
+----------+
1 row in set (0.00 sec)
master>update users set password='bbbbbb' where id=51087;
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0
master>select password from users where id=51087;
+----------+
| password |
+----------+
| bbbbbb |
+----------+
1 row in set (0.00 sec)
slave>select password from users where id=51087;
+----------+
| password |
+----------+
| aaaaaa |
+----------+
1 row in set (0.00 sec)
slave>select password from users where id=51087;
+----------+
| password |
+----------+
| bbbbbb |
+----------+
1 row in set (0.00 sec)
slave>select password from users where id=51087;
+----------+
| password |
+----------+
| aaaaaa |
+----------+
1 row in set (0.00 sec)
[15 Nov 2006 13:37]
Chuck Bell
Cannot verify. I have tested this on SUSE 10.0, Windows XP, and Win2003-64bit. The problem does not occur on these platforms. The problem may have been solved when BUG#18581 was fixed. If support cannot verify it, then they should close it as 'Can't repeat.'
[27 Nov 2006 17:54]
MySQL Verification Team
Thank you for the bug report. Verifying with latest source server I was unable to repeat.
