1call mtr.add_suppression('Attempting backtrace');
2call mtr.add_suppression('MYSQL_BIN_LOG::purge_logs failed to process registered files that would be purged.');
3call mtr.add_suppression('MYSQL_BIN_LOG::open failed to sync the index file');
4call mtr.add_suppression('Turning logging off for the whole duration of the MySQL server process.');
5call mtr.add_suppression('Could not open .*');
6call mtr.add_suppression('MYSQL_BIN_LOG::purge_logs failed to clean registers before purging logs.');
7RESET MASTER;
8flush logs;
9flush logs;
10flush logs;
11show binary logs;
12Log_name	File_size
13master-bin.000001	#
14master-bin.000002	#
15master-bin.000003	#
16master-bin.000004	#
17purge binary logs TO 'master-bin.000004';
18Warnings:
19Warning	1612	Being purged log master-bin.000001 was not found
20*** must show a list starting from the 'TO' argument of PURGE ***
21show binary logs;
22Log_name	File_size
23master-bin.000004	#
24reset master;
25flush logs;
26flush logs;
27flush logs;
28*** must be a warning master-bin.000001 was not found ***
29Warnings:
30Warning	1868	file master-bin.000004 was not purged because it is the active log file.
31Warning	1612	Being purged log master-bin.000001 was not found
32*** must show one record, of the active binlog, left in the index file after PURGE ***
33show binary logs;
34Log_name	File_size
35master-bin.000004	#
36reset master;
37flush logs;
38flush logs;
39flush logs;
40purge binary logs TO 'master-bin.000002';
41ERROR HY000: Fatal error during log purge
42show warnings;
43Level	Code	Message
44Warning	1377	a problem with deleting master-bin.000001; consider examining correspondence of your binlog index file to the actual binlog files
45Error	1377	Fatal error during log purge
46reset master;
47# crash_purge_before_update_index
48flush logs;
49SET SESSION debug="+d,crash_purge_before_update_index";
50purge binary logs TO 'master-bin.000002';
51ERROR HY000: Lost connection to MySQL server during query
52SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
53SELECT @index;
54@index
55master-bin.000001
56master-bin.000002
57master-bin.000003
58
59# crash_purge_non_critical_after_update_index
60flush logs;
61SET SESSION debug="+d,crash_purge_non_critical_after_update_index";
62purge binary logs TO 'master-bin.000004';
63ERROR HY000: Lost connection to MySQL server during query
64SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
65SELECT @index;
66@index
67master-bin.000004
68master-bin.000005
69
70# crash_purge_critical_after_update_index
71flush logs;
72SET SESSION debug="+d,crash_purge_critical_after_update_index";
73purge binary logs TO 'master-bin.000006';
74ERROR HY000: Lost connection to MySQL server during query
75SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
76SELECT @index;
77@index
78master-bin.000006
79master-bin.000007
80
81# crash_create_non_critical_before_update_index
82SET SESSION debug="+d,crash_create_non_critical_before_update_index";
83flush logs;
84ERROR HY000: Lost connection to MySQL server during query
85SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
86SELECT @index;
87@index
88master-bin.000006
89master-bin.000007
90master-bin.000008
91
92# crash_create_critical_before_update_index
93SET SESSION debug="+d,crash_create_critical_before_update_index";
94flush logs;
95ERROR HY000: Lost connection to MySQL server during query
96SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
97SELECT @index;
98@index
99master-bin.000006
100master-bin.000007
101master-bin.000008
102master-bin.000009
103
104# crash_create_after_update_index
105SET SESSION debug="+d,crash_create_after_update_index";
106flush logs;
107ERROR HY000: Lost connection to MySQL server during query
108SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
109SELECT @index;
110@index
111master-bin.000006
112master-bin.000007
113master-bin.000008
114master-bin.000009
115master-bin.000010
116master-bin.000011
117
118#
119# This should put the server in unsafe state and stop
120# accepting any command. If we inject a fault at this
121# point and continue the execution the server crashes.
122#
123SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
124SELECT @index;
125@index
126master-bin.000006
127master-bin.000007
128master-bin.000008
129master-bin.000009
130master-bin.000010
131master-bin.000011
132
133# fault_injection_registering_index
134SET SESSION debug="+d,fault_injection_registering_index";
135flush logs;
136ERROR HY000: Can't open file: 'master-bin.000012' (errno: 1 - Operation not permitted)
137SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
138SELECT @index;
139@index
140master-bin.000006
141master-bin.000007
142master-bin.000008
143master-bin.000009
144master-bin.000010
145master-bin.000011
146
147SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
148SELECT @index;
149@index
150master-bin.000006
151master-bin.000007
152master-bin.000008
153master-bin.000009
154master-bin.000010
155master-bin.000011
156master-bin.000012
157
158# fault_injection_updating_index
159SET SESSION debug="+d,fault_injection_updating_index";
160flush logs;
161ERROR HY000: Can't open file: 'master-bin.000013' (errno: 1 - Operation not permitted)
162SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
163SELECT @index;
164@index
165master-bin.000006
166master-bin.000007
167master-bin.000008
168master-bin.000009
169master-bin.000010
170master-bin.000011
171master-bin.000012
172
173SET @index=LOAD_FILE('MYSQLTEST_VARDIR/mysqld.1/data//master-bin.index');
174SELECT @index;
175@index
176master-bin.000006
177master-bin.000007
178master-bin.000008
179master-bin.000009
180master-bin.000010
181master-bin.000011
182master-bin.000012
183master-bin.000013
184
185# Test case6: Set DEBUG POINT before rename index file when
186#             appending a binlog file name to index file.
187show binary logs;
188Log_name	File_size
189master-bin.000006	#
190master-bin.000007	#
191master-bin.000008	#
192master-bin.000009	#
193master-bin.000010	#
194master-bin.000011	#
195master-bin.000012	#
196master-bin.000013	#
197SET SESSION debug="+d,crash_create_before_rename_index_file";
198flush logs;
199ERROR HY000: Lost connection to MySQL server during query
200# Restart the master server
201# Test if the index file has the correct data,
202# i.e. binlog file name is added.
203show binary logs;
204Log_name	File_size
205master-bin.000006	#
206master-bin.000007	#
207master-bin.000008	#
208master-bin.000009	#
209master-bin.000010	#
210master-bin.000011	#
211master-bin.000012	#
212master-bin.000013	#
213master-bin.000014	#
214master-bin.000015	#
215# Test case7: Set DEBUG POINT after rename index file when
216#             appending a binlog file name to index file.
217SET SESSION debug="+d,crash_create_after_rename_index_file";
218flush logs;
219ERROR HY000: Lost connection to MySQL server during query
220# Restart the master server
221# Test if the index file has the correct data,
222# i.e. binlog file name is added.
223show binary logs;
224Log_name	File_size
225master-bin.000006	#
226master-bin.000007	#
227master-bin.000008	#
228master-bin.000009	#
229master-bin.000010	#
230master-bin.000011	#
231master-bin.000012	#
232master-bin.000013	#
233master-bin.000014	#
234master-bin.000015	#
235master-bin.000016	#
236master-bin.000017	#
237# Test case8: Set DEBUG POINT after rename index file when
238#             purging the index file.
239show binary logs;
240Log_name	File_size
241master-bin.000006	#
242master-bin.000007	#
243master-bin.000008	#
244master-bin.000009	#
245master-bin.000010	#
246master-bin.000011	#
247master-bin.000012	#
248master-bin.000013	#
249master-bin.000014	#
250master-bin.000015	#
251master-bin.000016	#
252master-bin.000017	#
253SET SESSION debug="+d,crash_create_after_rename_index_file";
254purge binary logs TO 'master-bin.000010';
255ERROR HY000: Lost connection to MySQL server during query
256# Restart the master server
257# Test if the index file has the correct data,
258# i.e. requested binlog file names are removed.
259show binary logs;
260Log_name	File_size
261master-bin.000010	#
262master-bin.000011	#
263master-bin.000012	#
264master-bin.000013	#
265master-bin.000014	#
266master-bin.000015	#
267master-bin.000016	#
268master-bin.000017	#
269master-bin.000018	#
270# Test case9: Set DEBUG POINT befor rename index file when
271#             purging the index file.
272show binary logs;
273Log_name	File_size
274master-bin.000010	#
275master-bin.000011	#
276master-bin.000012	#
277master-bin.000013	#
278master-bin.000014	#
279master-bin.000015	#
280master-bin.000016	#
281master-bin.000017	#
282master-bin.000018	#
283SET SESSION debug="+d,crash_create_before_rename_index_file";
284purge binary logs TO 'master-bin.000012';
285ERROR HY000: Lost connection to MySQL server during query
286# Restart the master server
287# Test if the index file has the correct data,
288# i.e. requested binlog file names are removed.
289show binary logs;
290Log_name	File_size
291master-bin.000012	#
292master-bin.000013	#
293master-bin.000014	#
294master-bin.000015	#
295master-bin.000016	#
296master-bin.000017	#
297master-bin.000018	#
298master-bin.000019	#
299# Test case10: Inject a fault to copy part content to the temp file
300#              when purging the index file.
301show binary logs;
302Log_name	File_size
303master-bin.000012	#
304master-bin.000013	#
305master-bin.000014	#
306master-bin.000015	#
307master-bin.000016	#
308master-bin.000017	#
309master-bin.000018	#
310master-bin.000019	#
311SET SESSION debug="+d,fault_injection_copy_part_file";
312purge binary logs TO 'master-bin.000014';
313ERROR HY000: Lost connection to MySQL server during query
314# Restart the master server
315# Test the index file is complete, although is not purged successfully.
316show binary logs;
317Log_name	File_size
318master-bin.000012	#
319master-bin.000013	#
320master-bin.000014	#
321master-bin.000015	#
322master-bin.000016	#
323master-bin.000017	#
324master-bin.000018	#
325master-bin.000019	#
326master-bin.000020	#
327# Test case11: Bug #20381055SERVER CRASHES IF INDEX FILE IS OPENED BY
328SET SESSION debug="d,force_index_file_delete_failure";
329call mtr.add_suppression("Failed to delete the existing index file");
330call mtr.add_suppression("failed to move crash safe index file to index file");
331call mtr.add_suppression("failed to update the index file");
332PURGE BINARY LOGS TO 'master-bin.000014';;
333ERROR HY000: I/O error reading log index file
334# Test the index file is complete, although is not purged successfully.
335# Also this will indicate that binary logging is not disabled.
336show binary logs;
337Log_name	File_size
338master-bin.000012	#
339master-bin.000013	#
340master-bin.000014	#
341master-bin.000015	#
342master-bin.000016	#
343master-bin.000017	#
344master-bin.000018	#
345master-bin.000019	#
346master-bin.000020	#
347SET GLOBAL binlog_error_action='IGNORE_ERROR';
348FLUSH LOGS;
349ERROR HY000: Can't open file: 'master-bin.000021' (errno: 1 - Operation not permitted)
350SHOW BINARY LOGS;
351ERROR HY000: You are not using binary logging
352show binary logs;
353Log_name	File_size
354master-bin.000012	#
355master-bin.000013	#
356master-bin.000014	#
357master-bin.000015	#
358master-bin.000016	#
359master-bin.000017	#
360master-bin.000018	#
361master-bin.000019	#
362master-bin.000020	#
363master-bin.000021	#
364CREATE TABLE t1(i INT);
365SET GLOBAL binlog_error_action='IGNORE_ERROR';
366SET SESSION debug="+d,force_index_file_delete_failure";
367SET SESSION debug="+d,force_rotate";
368INSERT INTO t1 VALUES (12);
369ERROR HY000: Can't open file: 'master-bin.000022' (errno: 1 - Operation not permitted)
370SHOW BINARY LOGS;
371ERROR HY000: You are not using binary logging
372show binary logs;
373Log_name	File_size
374master-bin.000012	#
375master-bin.000013	#
376master-bin.000014	#
377master-bin.000015	#
378master-bin.000016	#
379master-bin.000017	#
380master-bin.000018	#
381master-bin.000019	#
382master-bin.000020	#
383master-bin.000021	#
384master-bin.000022	#
385DROP TABLE t1;
386SET SESSION debug="";
387# Test case11: Ends
388# Test case12: Bug#25839610 ABORT OCCUR DURING SLAVE BACKUP
389#              WHEN RELAY LOG INDEX IS LOCK
390# This test verifies that serveral retries are performed
391# if there is a failure while deleting/renaming index files.
392SET SESSION debug="+d,simulate_index_file_delete_failure";
393SET SESSION debug="+d,simulate_crash_safe_index_file_rename_failure";
394FLUSH LOGS;
395include/assert_grep.inc [Retried for delete.]
396include/assert_grep.inc [Retried for rename.]
397SET SESSION debug="";
398# Test case12: Ends
399End of tests
400