[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.216.56.58: ~ $
#
# Test for persistent corrupt bit for corrupted index and table
#
-- source include/have_innodb.inc
-- source include/have_innodb_16k.inc

# Issues with innodb_change_buffering_debug on Windows, so the test scenario
# cannot be created on windows
--source include/not_windows.inc

# This test needs debug server
--source include/have_debug.inc

-- disable_query_log
call mtr.add_suppression("Flagged corruption of idx.*in CHECK TABLE");
# This test setup is extracted from bug56680.test:
# The flag innodb_change_buffering_debug is only available in debug builds.
# It instructs InnoDB to try to evict pages from the buffer pool when
# change buffering is possible, so that the change buffer will be used
# whenever possible.
SET @innodb_change_buffering_debug_orig = @@innodb_change_buffering_debug;
SET GLOBAL innodb_change_buffering_debug = 1;

# Turn off Unique Check to create corrupted index with dup key
SET UNIQUE_CHECKS=0;

CREATE DATABASE pad;
let $i=338;
while ($i)
{
--eval CREATE TABLE pad.t$i(a INT PRIMARY KEY)ENGINE=InnoDB STATS_PERSISTENT=0;
  dec $i;
}

-- enable_query_log

set names utf8;

CREATE TABLE corrupt_bit_test_ā(
       a INT AUTO_INCREMENT PRIMARY KEY,
       b CHAR(100),
       c INT,
       z INT,
       INDEX(b))
ENGINE=InnoDB STATS_PERSISTENT=0;

INSERT INTO corrupt_bit_test_ā VALUES(0,'x',1, 1);

# This is the first unique index we intend to corrupt
CREATE UNIQUE INDEX idxā ON corrupt_bit_test_ā(c, b);

# This is the second unique index we intend to corrupt
CREATE UNIQUE INDEX idxē ON corrupt_bit_test_ā(z, b);

SELECT * FROM corrupt_bit_test_ā;

select @@unique_checks;
select @@innodb_change_buffering_debug;

# Create enough rows for the table, so that the insert buffer will be
# used for modifying the secondary index page. There must be multiple
# index pages, because changes to the root page are never buffered.

INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+1,z+1 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+10,z+10 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+20,z+20 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+50,z+50 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+100,z+100 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+200,z+200 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+400,z+400 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+800,z+800 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+1600,z+1600 FROM corrupt_bit_test_ā;
INSERT INTO corrupt_bit_test_ā SELECT 0,b,c+4000,z+4000 FROM corrupt_bit_test_ā;

select count(*) from corrupt_bit_test_ā;

CREATE INDEX idx3 ON corrupt_bit_test_ā(b, c);

# Create a dup key error on index "idxē" and "idxā" by inserting a dup value
INSERT INTO corrupt_bit_test_ā VALUES(13000,'x',1,1);

# creating an index should succeed even if other secondary indexes are corrupted
CREATE INDEX idx4 ON corrupt_bit_test_ā(b, z);

# Check table will find the unique indexes corrupted
# with dup key
check table corrupt_bit_test_ā;

# This selection intend to use the corrupted index. Expect to fail
-- error ER_INDEX_CORRUPT
select c from corrupt_bit_test_ā;

-- error ER_INDEX_CORRUPT
select z from corrupt_bit_test_ā;

show warnings;

# Since corrupted index is a secondary index, we only disable such
# index and allow other DML to proceed
insert into corrupt_bit_test_ā values (10001, "a", 20001, 20001);

# This does not use the corrupted index, expect to succeed
select * from corrupt_bit_test_ā use index(primary) where a = 10001;

# Some more DMLs
begin;
insert into corrupt_bit_test_ā values (10002, "a", 20002, 20002);
delete from corrupt_bit_test_ā where a = 10001;
insert into corrupt_bit_test_ā values (10001, "a", 20001, 20001);
rollback;

# Drop one corrupted index before reboot
drop index idxā on corrupt_bit_test_ā;

check table corrupt_bit_test_ā;

set names utf8;

-- error ER_INDEX_CORRUPT
select z from corrupt_bit_test_ā;

# Drop the corrupted index
drop index idxē on corrupt_bit_test_ā;

# Now select back to normal
select z from corrupt_bit_test_ā limit 10;

# Drop table
drop table corrupt_bit_test_ā;
DROP DATABASE pad;

SET GLOBAL innodb_change_buffering_debug = 0;

Filemanager

Name Type Size Permission Actions
add_foreign_key.test File 1.35 KB 0644
alter_rename_existing.test File 3.02 KB 0644
analyze_table.test File 803 B 0644
autoinc_debug.test File 2.14 KB 0644
blob-update-debug.test File 525 B 0644
blob_redo-master.opt File 57 B 0644
blob_redo.test File 2.35 KB 0644
bulk_create_index_online.test File 1.15 KB 0644
checksum.test File 644 B 0644
create-index.test File 1.29 KB 0644
create_isl_with_direct-master.opt File 31 B 0644
create_isl_with_direct.test File 1010 B 0644
disabled.def File 404 B 0644
dropdb.test File 251 B 0644
end_range_check.test File 1.82 KB 0644
events-merge-tmp-path-master.opt File 149 B 0644
events-merge-tmp-path.test File 1.65 KB 0644
flush-hang.test File 1.51 KB 0644
foreign_key.test File 2.18 KB 0644
ibuf_not_empty-master.opt File 30 B 0644
ibuf_not_empty.test File 3.2 KB 0644
import.test File 763 B 0644
import_tablespace_schema_missmatch.test File 3.6 KB 0644
import_update_stats.test File 1.46 KB 0644
index_length.test File 1.31 KB 0644
index_tree_operation.test File 2.36 KB 0644
innodb-2byte-collation-master.opt File 48 B 0644
innodb-2byte-collation.test File 2.95 KB 0644
innodb-ac-non-locking-select.test File 3 KB 0644
innodb-alter-autoinc.test File 2.63 KB 0644
innodb-alter-debug.test File 2.69 KB 0644
innodb-alter-discard.test File 1.74 KB 0644
innodb-alter-nullable.test File 1.98 KB 0644
innodb-alter-tempfile.test File 2.46 KB 0644
innodb-alter.test File 15.98 KB 0644
innodb-analyze.test File 1.65 KB 0644
innodb-autoinc-18274.test File 661 B 0644
innodb-autoinc-44030-master.opt File 81 B 0644
innodb-autoinc-44030.test File 1.61 KB 0644
innodb-autoinc-56228-master.opt File 29 B 0644
innodb-autoinc-56228.test File 784 B 0644
innodb-autoinc-master.opt File 81 B 0644
innodb-autoinc-optimize.test File 482 B 0644
innodb-autoinc.test File 25.87 KB 0644
innodb-blob.test File 6.14 KB 0644
innodb-bug-14068765.test File 3.41 KB 0644
innodb-bug-14084530.test File 1.31 KB 0644
innodb-bug12552164.test File 1.43 KB 0644
innodb-bug14219515.test File 472 B 0644
innodb-change-buffer-recovery-master.opt File 62 B 0644
innodb-change-buffer-recovery.test File 2.27 KB 0644
innodb-consistent-master.opt File 29 B 0644
innodb-consistent.test File 1.24 KB 0644
innodb-double-write.test File 11.92 KB 0644
innodb-index-debug-master.opt File 30 B 0644
innodb-index-debug.test File 3.14 KB 0644
innodb-index-online-delete.test File 1.06 KB 0644
innodb-index-online-fk.test File 14.48 KB 0644
innodb-index-online-master.opt File 128 B 0644
innodb-index-online-norebuild.test File 1.8 KB 0644
innodb-index-online-purge.test File 2.07 KB 0644
innodb-index-online.test File 13.08 KB 0644
innodb-index.test File 16.93 KB 0644
innodb-index_ucs2.test File 124 B 0644
innodb-lock-inherit-read_commited.test File 2.58 KB 0644
innodb-lock.test File 4.27 KB 0644
innodb-log-file-size-1.test File 10.53 KB 0644
innodb-log-file-size.test File 7.33 KB 0644
innodb-master.opt File 136 B 0644
innodb-multiple-tablespaces.test File 18.88 KB 0644
innodb-read-view.test File 3.63 KB 0644
innodb-replace.test File 555 B 0644
innodb-semi-consistent-master.opt File 29 B 0644
innodb-semi-consistent.test File 1.83 KB 0644
innodb-status-output.test File 3.23 KB 0644
innodb-system-table-view.test File 6.46 KB 0644
innodb-table-online-master.opt File 128 B 0644
innodb-table-online.test File 11.35 KB 0644
innodb-tablespace.test File 16.16 KB 0644
innodb-timeout.test File 3.63 KB 0644
innodb-truncate.test File 2.03 KB 0644
innodb-ucs2.test File 11.41 KB 0644
innodb-update-insert.test File 860 B 0644
innodb-use-sys-malloc-master.opt File 56 B 0644
innodb-use-sys-malloc.test File 1.52 KB 0644
innodb-wl5522-1.test File 27.19 KB 0644
innodb-wl5522-debug.test File 35.31 KB 0644
innodb-wl5522.test File 19.19 KB 0644
innodb-wl5980-alter.test File 18.11 KB 0644
innodb-wl5980-debug.test File 2.58 KB 0644
innodb-wl5980-discard.test File 25.47 KB 0644
innodb-wl5980-linux.test File 7.54 KB 0644
innodb-wl5980-windows.test File 8.83 KB 0644
innodb-wl6445-1.test File 24.83 KB 0644
innodb-wl6445-2.test File 9.04 KB 0644
innodb-wl6445.test File 2.3 KB 0644
innodb.test File 79.03 KB 0644
innodb_autoinc_lock_mode_zero-master.opt File 29 B 0644
innodb_autoinc_lock_mode_zero.test File 1.1 KB 0644
innodb_autoinc_reset.test File 519 B 0644
innodb_blob_unrecoverable_crash.test File 1.56 KB 0644
innodb_buffer_pool_load-master.opt File 30 B 0644
innodb_buffer_pool_load.test File 3.94 KB 0644
innodb_bug-13628249.test File 3.95 KB 0644
innodb_bug11754376.test File 406 B 0644
innodb_bug11766634-master.opt File 16 B 0644
innodb_bug11766634.test File 1.82 KB 0644
innodb_bug11789106.test File 536 B 0644
innodb_bug11933790.test File 969 B 0644
innodb_bug12400341-master.opt File 75 B 0644
innodb_bug12400341.test File 2.57 KB 0644
innodb_bug12429573.test File 1.4 KB 0644
innodb_bug12661768.test File 1.99 KB 0644
innodb_bug13635833.test File 1.6 KB 0644
innodb_bug13867871.test File 5.7 KB 0644
innodb_bug14006907.test File 1.38 KB 0644
innodb_bug14007109.test File 1.19 KB 0644
innodb_bug14007649.test File 1.1 KB 0644
innodb_bug14147491-master.opt File 62 B 0644
innodb_bug14147491.test File 3.28 KB 0644
innodb_bug14169459.test File 1.96 KB 0644
innodb_bug14676111.test File 3.84 KB 0644
innodb_bug14704286.test File 2.03 KB 0644
innodb_bug21704.test File 1.66 KB 0644
innodb_bug30423.test File 6.51 KB 0644
innodb_bug30919-master.opt File 38 B 0644
innodb_bug30919.test File 2.27 KB 0644
innodb_bug34053.test File 1.41 KB 0644
innodb_bug34300.test File 852 B 0644
innodb_bug35220.test File 416 B 0644
innodb_bug38231.test File 1.64 KB 0644
innodb_bug39438-master.opt File 26 B 0644
innodb_bug39438.test File 2.19 KB 0644
innodb_bug40360.test File 340 B 0644
innodb_bug40565.test File 327 B 0644
innodb_bug41904.test File 328 B 0644
innodb_bug42101-nonzero-master.opt File 30 B 0644
innodb_bug42101-nonzero.test File 653 B 0644
innodb_bug42101.test File 577 B 0644
innodb_bug42419.test File 2.19 KB 0644
innodb_bug44032.test File 543 B 0644
innodb_bug44369.test File 530 B 0644
innodb_bug44571.test File 788 B 0644
innodb_bug45357.test File 326 B 0644
innodb_bug46000.test File 941 B 0644
innodb_bug46676.test File 602 B 0644
innodb_bug47167-master.opt File 16 B 0644
innodb_bug47167.test File 1.41 KB 0644
innodb_bug47621.test File 1.79 KB 0644
innodb_bug47622.test File 1.58 KB 0644
innodb_bug47777.test File 915 B 0644
innodb_bug48024.test File 863 B 0644
innodb_bug49164.test File 928 B 0644
innodb_bug51378.test File 2.53 KB 0644
innodb_bug51920.test File 988 B 0644
innodb_bug52199.test File 210 B 0644
innodb_bug52663.test File 1003 B 0644
innodb_bug53046.test File 1.27 KB 0644
innodb_bug53290.test File 909 B 0644
innodb_bug53592.test File 2.47 KB 0644
innodb_bug53674-master.opt File 65 B 0644
innodb_bug53674.test File 259 B 0644
innodb_bug53756-master.opt File 36 B 0644
innodb_bug53756.test File 4.62 KB 0644
innodb_bug54044.test File 606 B 0644
innodb_bug56143.test File 74.16 KB 0644
innodb_bug56716.test File 268 B 0644
innodb_bug56947.test File 472 B 0644
innodb_bug57252.test File 1.27 KB 0644
innodb_bug57255.test File 889 B 0644
innodb_bug57904.test File 908 B 0644
innodb_bug59307.test File 626 B 0644
innodb_bug59410.test File 805 B 0644
innodb_bug59641.test File 1.7 KB 0644
innodb_bug59733.test File 1.98 KB 0644
innodb_bug60049-master.opt File 25 B 0644
innodb_bug60049.test File 1.95 KB 0644
innodb_bug60196-master.opt File 27 B 0644
innodb_bug60196.test File 4.44 KB 0644
innodb_bug60229.test File 1.34 KB 0644
innodb_bug70867.test File 1.64 KB 0644
innodb_copy_col_in_partition.test File 665 B 0644
innodb_corrupt_bit.test File 4.21 KB 0644
innodb_ctype_ldml-master.opt File 80 B 0644
innodb_ctype_ldml.test File 15.32 KB 0644
innodb_deadlock_with_autoinc-master.opt File 29 B 0644
innodb_deadlock_with_autoinc.test File 1.22 KB 0644
innodb_file_format-master.opt File 16 B 0644
innodb_file_format.test File 1.32 KB 0644
innodb_file_limit_check-master.opt File 69 B 0644
innodb_file_limit_check.test File 1.07 KB 0644
innodb_force_recovery.test File 5.7 KB 0644
innodb_gis.test File 277 B 0644
innodb_i_s_innodb_locks.test File 4.54 KB 0644
innodb_i_s_innodb_trx.test File 2.32 KB 0644
innodb_information_schema_buffer.test File 2.39 KB 0644
innodb_io_pf.test File 398 B 0644
innodb_lock_wait_timeout_1-master.opt File 29 B 0644
innodb_lock_wait_timeout_1.test File 8.06 KB 0644
innodb_misc1-master.opt File 55 B 0644
innodb_misc1.test File 31.49 KB 0644
innodb_multi_update.test File 1.4 KB 0644
innodb_mysql-master.opt File 82 B 0644
innodb_mysql.test File 26.75 KB 0644
innodb_mysql_rbk-master.opt File 60 B 0644
innodb_mysql_rbk.test File 849 B 0644
innodb_notembedded.test File 1.13 KB 0644
innodb_page_size_func.test File 12.92 KB 0644
innodb_prefix_index_restart_server.test File 4.4 KB 0644
innodb_replace.test File 5.06 KB 0644
innodb_stats.test File 1.89 KB 0644
innodb_stats_auto_recalc.test File 1.76 KB 0644
innodb_stats_auto_recalc_ddl.test File 1.65 KB 0644
innodb_stats_auto_recalc_lots.test File 887 B 0644
innodb_stats_auto_recalc_on_nonexistent.test File 1.87 KB 0644
innodb_stats_create_on_corrupted.test File 1.27 KB 0644
innodb_stats_create_table.test File 1.43 KB 0644
innodb_stats_del_mark-master.opt File 40 B 0644
innodb_stats_del_mark.test File 3.6 KB 0644
innodb_stats_drop_locked.test File 1.41 KB 0644
innodb_stats_external_pages.test File 2.58 KB 0644
innodb_stats_fetch.test File 2.13 KB 0644
innodb_stats_fetch_corrupted.test File 1.6 KB 0644
innodb_stats_fetch_nonexistent.test File 1.14 KB 0644
innodb_stats_flag_global_off-master.opt File 28 B 0644
innodb_stats_flag_global_off.test File 324 B 0644
innodb_stats_flag_global_on-master.opt File 28 B 0644
innodb_stats_flag_global_on.test File 323 B 0644
innodb_stats_rename_table.test File 1.25 KB 0644
innodb_stats_rename_table_if_exists.test File 1.43 KB 0644
innodb_stats_sample_pages.test File 1.72 KB 0644
innodb_stats_table_flag_auto_recalc.test File 2.19 KB 0644
innodb_stats_table_flag_sample_pages.test File 2.73 KB 0644
innodb_sys_var_valgrind.test File 1.99 KB 0644
innodb_timeout_rollback-master.opt File 58 B 0644
innodb_timeout_rollback.test File 108 B 0644
innodb_trx_weight.test File 3.65 KB 0644
innodb_upd_stats_if_needed_not_inited.test File 1.04 KB 0644
innodb_ut_format_name.test File 298 B 0644
insert_debug.test File 476 B 0644
monitor.test File 13.96 KB 0644
monitor_debug.test File 1.07 KB 0644
portability_wl5980_linux.zip File 473.02 KB 0644
portability_wl5980_windows.zip File 514.24 KB 0644
sp_temp_table.test File 2.51 KB 0644
strict_checksum.test File 2.77 KB 0644
strict_mode.test File 3.22 KB 0644
timestamp.test File 787 B 0644
tmpdir.test File 1.9 KB 0644
undo_space_id.test File 889 B 0644
xa_recovery.test File 1.13 KB 0644