One-line fix for bug 576 (DBUG_ASSERT failure when using CHANGE MASTER TO RELAY_LOG_POS=4).
Plus a changeset which I had committed but forgot to push (and this changeset is lost on another computer, so I recreate it here). This changeset is "user-friendly SHOW BINLOG EVENTS and CHANGE MASTER TO when log positions < 4 are used. sql/slave.cc: fix for bug 576 (DBUG_ASSERT failure when using CHANGE MASTER TO RELAY_LOG_POS=4). sql/sql_repl.cc: User-friendly SHOW BINLOG EVENTS: SHOW BINLOG EVENTS FROM 0: currently one gets MASTER> show binlog events from 0; ERROR 1220: Error when executing command SHOW BINLOG EVENTS: Invalid log position so we silently convert <4 to 4. sql/sql_yacc.yy: User-friendly CHANGE MASTER TO: presently when one does CHANGE MASTER TO MASTER_LOG_POS=0 he gets 030425 10:12:41 Slave I/O thread: connected to master 'root@localhost:3306', r eplication started in log 'gbichot-bin.013' at position 151 030425 10:12:41 Error reading packet from server: Client requested master to st art replication from impossible position (server_errno=1236) 030425 10:12:41 Got fatal error 1236: 'Client requested master to start replica tion from impossible position' from master when reading data from binary log 030425 10:12:41 Slave I/O thread exiting, read up to log 'gbichot-bin.013', pos ition 151 while she/he probably just wanted to start at the beginning of the binlog, which is 4. So we silently convert <4 to 4 in sql_yacc.yy (i.e. in the slave code; fortunately all versions have the same BIN_LOG_HEADER_SIZE=4 and we should not change this). See comments for an explaination of why we have to do this in sql_yacc.yy, not in sql_repl.cc. Same thing for CHANGE MASTER TO RELAY_LOG_POS. sql/unireg.h: warning comment
Showing
Please register or sign in to comment