Bug #858 CHANGE MASTER forgets to update relay-log.info
Description:
After some shutdowns/restarts and a CHANGE MASTER, one gets:
030716 22:14:56 Failed to open the relay log (relay_log_name='./gbichot2-relay-bin.004', relay_log_pos=47)
030716 22:14:56 Could not find target log during relay log initialization
030716 22:14:56 Failed to initialize the master info structure
in the .err file of the slave.
How to repeat:
Found by Dmitri Lenev (quoting his email to me):
------------------------------------------------
1) i set up two servers a master and a slave, and set up replication
between them as described in manual.
2) Now i shutdown slave via mysqladmin shutdown
3) Start up slave server
4) Now i shutdown slave via mysqladmin shutdown
5) Start up slave server
6) Now i shutdown slave via mysqladmin shutdown
7) Start up slave server
Now slave data directory looks like:
---------------
[dlenev@dlenev mysql-4.1]$ ls -l ../../mysql_data2/
итого 20580
-rw-rw---- 1 dlenev dlenev 4 Июл 16 23:30 dlenev.pid
-rw-rw---- 1 dlenev dlenev 4 Июл 16 23:30
dlenev-relay-bin.000004
-rw-rw---- 1 dlenev dlenev 26 Июл 16 23:30
dlenev-relay-bin.index
drwx------ 2 dlenev dlenev 4096 Июл 1 22:01 foo
-rw-r----- 1 dlenev dlenev 25088 Июл 1 22:01
ib_arch_log_0000000000
-rw-r----- 1 dlenev dlenev 10485760 Июл 16 23:30 ibdata1
-rw-r----- 1 dlenev dlenev 5242880 Июл 16 23:30 ib_logfile0
-rw-r----- 1 dlenev dlenev 5242880 Июл 1 22:01 ib_logfile1
-rw-rw---- 1 dlenev dlenev 157 Июл 16 23:30 master.info
drwxr-xr-x 2 dlenev dlenev 4096 Июл 1 22:01 mysql
-rw-rw---- 1 dlenev dlenev 51 Июл 16 23:30 relay-log.info
drwx------ 2 dlenev dlenev 4096 Июл 16 14:22 test
[dlenev@dlenev mysql-4.1]$ cat ../../mysql_data2/relay-log.info
./dlenev-relay-bin.000004
4
dlenevrepl.000023
79
9
[dlenev@dlenev mysql-4.1]$
------------
Note that 000004 suffix. I obtained it via several shutdown/start-up
iterations.
8)
---------
[dlenev@dlenev mysql-4.1]$ client/mysql -u root --protocol=tcp --port=3316
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3 to server version: 4.1.1-alpha-debug
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> stop slave;
Query OK, 0 rows affected (0.00 sec)
mysql> change master to master_user='test';
Query OK, 0 rows affected (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected (0.01 sec)
mysql> Bye
-----------
So we stop slave, setting non-existent master_user, starting up slave
9) Now we again shutdown slave server
10) Start up it again and get
-----------
[dlenev@dlenev mysql-4.1]$ ./start_mysqld2.sh
030716 23:38:02 InnoDB: Started
030716 23:38:02 Could not find target log during relay log initialization
030716 23:38:02 Note: Failed to initialized master info
/home/dlenev/src/mysql-4.1/sql/mysqld: ready for connections.
Version: '4.1.1-alpha-debug' socket: '/home/dlenev/mysql_data/mysql.sock'
port: 3316
-----------
Note that on this stage slave's data dir looks like:
-----------
[dlenev@dlenev mysql-4.1]$ cat ../../mysql_data2/relay-log.info
./dlenev-relay-bin.000004
4
dlenevrepl.000023
79
9
[dlenev@dlenev mysql-4.1]$ ls -l ../../mysql_data2/
итого 20584
-rw-rw---- 1 dlenev dlenev 4 Июл 16 23:38 dlenev.pid
-rw-rw---- 1 dlenev dlenev 4 Июл 16 23:37
dlenev-relay-bin.000001
-rw-rw---- 1 dlenev dlenev 4 Июл 16 23:38
dlenev-relay-bin.000002
-rw-rw---- 1 dlenev dlenev 52 Июл 16 23:38
dlenev-relay-bin.index
drwx------ 2 dlenev dlenev 4096 Июл 1 22:01 foo
-rw-r----- 1 dlenev dlenev 25088 Июл 1 22:01
ib_arch_log_0000000000
-rw-r----- 1 dlenev dlenev 10485760 Июл 16 23:37 ibdata1
-rw-r----- 1 dlenev dlenev 5242880 Июл 16 23:38 ib_logfile0
-rw-r----- 1 dlenev dlenev 5242880 Июл 1 22:01 ib_logfile1
-rw-rw---- 1 dlenev dlenev 157 Июл 16 23:37 master.info
drwxr-xr-x 2 dlenev dlenev 4096 Июл 1 22:01 mysql
-rw-rw---- 1 dlenev dlenev 51 Июл 16 23:35 relay-log.info
drwx------ 2 dlenev dlenev 4096 Июл 16 14:22 test
[dlenev@dlenev mysql-4.1]$
-----------
So in this case all old relay files are deleted
but relay-log.info contains the same 000004 suffix!
Suggested fix:
Something wrong in sql_repl.cc I think.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.050 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.