Bug #48666 | Memory tables + max_heap_table_size can cause replication problems | ||
---|---|---|---|
Submitted: | 10 Nov 2009 12:15 | Modified: | 3 Sep 2010 9:50 |
Reporter: | Victor Kirkebo | Email Updates: | |
Status: | Duplicate | Impact on me: | |
Category: | MySQL Server: Replication | Severity: | S3 (Non-critical) |
Version: | 5.0.88-bzr, 5.1.41, 5.1.42-bzr | OS: | Any |
Assigned to: | Assigned Account | CPU Architecture: | Any |
Tags: | Error_code 1114, memory table, table full |
[10 Nov 2009 12:15]
Victor Kirkebo
[10 Nov 2009 14:02]
Valeriy Kravchuk
Verified with 5.1.42 on Mac OS X: 77-52-7-73:mysql-test openxs$ ./mysql-test-run.pl --suite=rpl rpl_bug48666 Logging: ./mysql-test-run.pl --suite=rpl rpl_bug48666 091110 15:57:52 [Warning] Setting lower_case_table_names=2 because file system for /var/folders/dX/dXCzvuSlHX4Op1g-o1jIWk+++TI/-Tmp-/yuSqssNxa2/ is case insensitive 091110 15:57:52 [Note] Plugin 'FEDERATED' is disabled. 091110 15:57:52 [Note] Plugin 'ndbcluster' is disabled. MySQL Version 5.1.42 Checking supported features... - using ndbcluster when necessary, mysqld supports it - SSL connections supported - binaries are debug compiled Collecting tests... - adding combinations for rpl vardir: /Users/openxs/dbs/5.1/mysql-test/var Checking leftover processes... Removing old var directory... Creating var directory '/Users/openxs/dbs/5.1/mysql-test/var'... Installing system database... Using server port 59657 ============================================================================== TEST RESULT TIME (ms) ------------------------------------------------------------ worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 13000..13009 rpl.rpl_bug48666 'row' [ pass ] 1960 ... rpl.rpl_bug48666 'stmt' [ fail ] Test ended at 2009-11-10 15:58:08 CURRENT_TEST: rpl.rpl_bug48666 === SHOW MASTER STATUS === ---- 1. ---- File slave-bin.000001 Position 1296 Binlog_Do_DB Binlog_Ignore_DB ========================== === SHOW SLAVE STATUS === ---- 1. ---- Slave_IO_State Waiting for master to send event Master_Host 127.0.0.1 Master_User root Master_Port 13000 Connect_Retry 1 Master_Log_File master-bin.000001 Read_Master_Log_Pos 1296 Relay_Log_File slave-relay-bin.000003 Relay_Log_Pos 1307 Relay_Master_Log_File master-bin.000001 Slave_IO_Running Yes Slave_SQL_Running No 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 Query caused different errors on master and slave. Error on master: 'The table '%-.192s' is full' (1114), Error on slave: 'no error' (0). Default database: 'test'. Query: 'insert into tb_mem values('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8')' Skip_Counter 0 Exec_Master_Log_Pos 1161 Relay_Log_Space 1597 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 Master_SSL_Verify_Server_Cert No Last_IO_Errno 0 Last_IO_Error Last_SQL_Errno 0 Last_SQL_Error Query caused different errors on master and slave. Error on master: 'The table '%-.192s' is full' (1114), Error on slave: 'no error' (0). Default database: 'test'. Query: 'insert into tb_mem values('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8')' ========================= ... analyze: sync_with_master mysqltest: At line 20: sync_with_master failed: 'select master_pos_wait('master-bin.000001', 1296, 300)' returned NULL indicating slave SQL thread failure ...
[10 Nov 2009 14:44]
MySQL Verification Team
Thank you for the bug report. Verified as described. 091110 12:28:04 [Note] bin\mysqld: ready for connections. Version: '5.1.41-Win X64-debug-log' socket: '' port: 3307 Source distribution bin\mysqld: missing DBUG_RETURN or DBUG_VOID_RETURN macro in function "?func" 091110 12:31:47 [Warning] Neither --relay-log nor --relay-log-index were used; so replication may break when this MySQL server acts as a slave and has h is hostname changed!! Please use '--relay-log=nenem-relay-bin' to avoid this problem. 091110 12:31:57 [Note] Slave SQL thread initialized, starting replication in log 'mydb.000001' at position 342, relay log '.\nenem-relay-bin.000001' pos ition: 4 091110 12:31:57 [Note] Slave I/O thread: connected to master 'miguel@localhost:3306',replication started in log 'mydb.000001' at position 342 091110 12:38:40 [ERROR] Slave SQL: Query caused different errors on master and slave. Error on master: 'The table '%-.192s' is full' (1114), Error o n slave: 'no error' (0). Default database: 'test'. Query: 'insert into tb_mem values('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8')', Error_code: 0 091110 12:38:40 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mydb.000001' position 1345
[12 Nov 2009 17:43]
Valeriy Kravchuk
5.0.88 is also affected, so we always had this problem: 77-52-7-73:mysql-test openxs$ ./mysql-test-run.pl rpl_bug48666 Logging: ./mysql-test-run.pl rpl_bug48666 MySQL Version 5.0.88 Using ndbcluster when necessary, mysqld supports it Setting mysqld to support SSL connections Binaries are debug compiled mysql-test-run: WARNING: Could not find all required ndb binaries, all ndb tests will fail, use --skip-ndbcluster to skip testing it. Using MTR_BUILD_THREAD = 0 Using MASTER_MYPORT = 9306 Using MASTER_MYPORT1 = 9307 Using SLAVE_MYPORT = 9308 Using SLAVE_MYPORT1 = 9309 Using SLAVE_MYPORT2 = 9310 Using NDBCLUSTER_PORT = 9311 Using IM_PORT = 9313 Using IM_MYSQLD1_PORT = 9314 Using IM_MYSQLD2_PORT = 9315 Killing Possible Leftover Processes Removing Stale Files Creating Directories Installing Master Database Installing Slave1 Database ======================================================= Starting Tests in the 'main' suite TEST RESULT TIME (ms) ------------------------------------------------------- rpl_bug48666 [ fail ] === SHOW MASTER STATUS === ---- 1. ---- File slave-bin.000001 Position 1398 Binlog_Do_DB Binlog_Ignore_DB ========================== === SHOW SLAVE STATUS === ---- 1. ---- Slave_IO_State Waiting for master to send event Master_Host 127.0.0.1 Master_User root Master_Port 9306 Connect_Retry 1 Master_Log_File master-bin.000001 Read_Master_Log_Pos 1288 Relay_Log_File slave-relay-bin.000003 Relay_Log_Pos 1291 Relay_Master_Log_File master-bin.000001 Slave_IO_Running Yes Slave_SQL_Running No 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 Query caused different errors on master and slave. Error on master: 'The table '%-.64s' is full' (1114), Error on slave: 'no error' (0). Default database: 'test'. Query: 'insert into tb_mem values('1'),('2'),('3'),('4'),('5'),('6'),('7'),('8')'
[6 Aug 2010 6:30]
Daogang Qu
Will be fixed in WL#5135.
[25 Jul 2011 15:42]
Ryan Martin
We recently encountered this bug with a deployed 5.1.43 master, and are wondering if it has been fixed in a more recent release. It's marked "duplicate" but no duplicate bug number is listed. Also, the link to worklog #5135 is broken. Was this bug ever fixed?
[22 Feb 2012 11:06]
Jon Stephens
This is a known issue which has now been documented for MySQL 5.0, 5.1, 5.5, 5.6. This was marked as a duplicate due to Daogang Qu's comment above; the issue is expected to be addressed as part of a larger task. I don't know when that work might be completed. The documentation updates have committed to our repo and should appear online in a day or 2. Thanks!