Server IP : 104.21.38.3 / Your IP : 162.158.162.89 Web Server : Apache System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64 User : www ( 1000) PHP Version : 7.4.33 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /www/server/mysql/src/mysql-test/suite/innodb/r/ |
Upload File : |
# # Bug #17335427 INNODB CAN NOT USE THE DOUBLEWRITE BUFFER PROPERLY # Bug #18144349 INNODB CANNOT USE THE DOUBLEWRITE BUFFER FOR THE FIRST # PAGE OF SYSTEM TABLESPACE # SET GLOBAL innodb_fast_shutdown = 0; # restart show variables like 'innodb_doublewrite'; Variable_name Value innodb_doublewrite ON show variables like 'innodb_fil_make_page_dirty_debug'; Variable_name Value innodb_fil_make_page_dirty_debug 0 show variables like 'innodb_saved_page_number_debug'; Variable_name Value innodb_saved_page_number_debug 0 create table t1 (f1 int primary key, f2 blob) engine=innodb; start transaction; insert into t1 values(1, repeat('#',12)); insert into t1 values(2, repeat('+',12)); insert into t1 values(3, repeat('/',12)); insert into t1 values(4, repeat('-',12)); insert into t1 values(5, repeat('.',12)); commit work; # --------------------------------------------------------------- # Test Begin: Test if recovery works if first page of user # tablespace is full of zeroes. select space from information_schema.innodb_sys_tables where name = 'test/t1' into @space_id; # Wait for purge to complete # Ensure that dirty pages of table t1 is flushed. flush tables t1 for export; unlock tables; begin; insert into t1 values (6, repeat('%', 12)); # Make the first page dirty for table t1 set global innodb_saved_page_number_debug = 0; set global innodb_fil_make_page_dirty_debug = @space_id; # Ensure that dirty pages of table t1 are flushed. set global innodb_buf_flush_list_now = 1; # Kill the server # Make the first page (page_no=0) of the user tablespace # full of zeroes. # restart check table t1; Table Op Msg_type Msg_text test.t1 check status OK select f1, f2 from t1; f1 f2 1 ############ 2 ++++++++++++ 3 //////////// 4 ------------ 5 ............ # Test End # --------------------------------------------------------------- # Test Begin: Test if recovery works if first page of user # tablespace is corrupted. select space from information_schema.innodb_sys_tables where name = 'test/t1' into @space_id; # Ensure that dirty pages of table t1 is flushed. flush tables t1 for export; unlock tables; begin; insert into t1 values (6, repeat('%', 12)); # Make the first page dirty for table t1 set global innodb_saved_page_number_debug = 0; set global innodb_fil_make_page_dirty_debug = @space_id; # Ensure that dirty pages of table t1 are flushed. set global innodb_buf_flush_list_now = 1; # Kill the server # Corrupt the first page (page_no=0) of the user tablespace. # restart check table t1; Table Op Msg_type Msg_text test.t1 check status OK select f1, f2 from t1; f1 f2 1 ############ 2 ++++++++++++ 3 //////////// 4 ------------ 5 ............ # Test End # --------------------------------------------------------------- # Test Begin: Test if recovery works if 2nd page of user # tablespace is full of zeroes. select space from information_schema.innodb_sys_tables where name = 'test/t1' into @space_id; # Ensure that dirty pages of table t1 is flushed. flush tables t1 for export; unlock tables; begin; insert into t1 values (6, repeat('%', 400)); # Make the 2nd page dirty for table t1 set global innodb_saved_page_number_debug = 1; set global innodb_fil_make_page_dirty_debug = @space_id; # Ensure that dirty pages of table t1 are flushed. set global innodb_buf_flush_list_now = 1; # Kill the server # Make the 2nd page (page_no=1) of the tablespace all zeroes. # restart check table t1; Table Op Msg_type Msg_text test.t1 check status OK select f1, f2 from t1; f1 f2 1 ############ 2 ++++++++++++ 3 //////////// 4 ------------ 5 ............ # Test End # --------------------------------------------------------------- # Test Begin: Test if recovery works if 2nd page of user # tablespace is corrupted. select space from information_schema.innodb_sys_tables where name = 'test/t1' into @space_id; # Ensure that dirty pages of table t1 is flushed. flush tables t1 for export; unlock tables; begin; insert into t1 values (6, repeat('%', 400)); # Make the 2nd page dirty for table t1 set global innodb_saved_page_number_debug = 1; set global innodb_fil_make_page_dirty_debug = @space_id; # Ensure that the dirty pages of table t1 are flushed. set global innodb_buf_flush_list_now = 1; # Kill the server # Corrupt the 2nd page (page_no=1) of the user tablespace. # restart check table t1; Table Op Msg_type Msg_text test.t1 check status OK select f1, f2 from t1; f1 f2 1 ############ 2 ++++++++++++ 3 //////////// 4 ------------ 5 ............ # Test End # --------------------------------------------------------------- # Test Begin: Test if recovery works if first page of # system tablespace is full of zeroes. begin; insert into t1 values (6, repeat('%', 400)); # Ensure that all dirty pages in the system are flushed. set global innodb_buf_flush_list_now = 1; # Make the first page dirty for system tablespace set global innodb_saved_page_number_debug = 0; set global innodb_fil_make_page_dirty_debug = 0; # Ensure that the dirty page of system tablespace is also flushed. set global innodb_buf_flush_list_now = 1; # Kill the server # Make the first page (page_no=0) of the system tablespace # all zeroes. # restart check table t1; Table Op Msg_type Msg_text test.t1 check status OK select f1, f2 from t1; f1 f2 1 ############ 2 ++++++++++++ 3 //////////// 4 ------------ 5 ............ # Test End # --------------------------------------------------------------- # Test Begin: Test if recovery works if first page of # system tablespace is corrupted. begin; insert into t1 values (6, repeat('%', 400)); # Ensure that all dirty pages in the system are flushed. set global innodb_buf_flush_list_now = 1; # Make the first page dirty for system tablespace set global innodb_saved_page_number_debug = 0; set global innodb_fil_make_page_dirty_debug = 0; # Ensure that the dirty page of system tablespace is also flushed. set global innodb_buf_flush_list_now = 1; # Kill the server # Corrupt the first page (page_no=0) of the system tablespace. # restart check table t1; Table Op Msg_type Msg_text test.t1 check status OK select f1, f2 from t1; f1 f2 1 ############ 2 ++++++++++++ 3 //////////// 4 ------------ 5 ............ # Test End # --------------------------------------------------------------- # Test Begin: Test if recovery works if 2nd page of # system tablespace is full of zeroes. begin; insert into t1 values (6, repeat('%', 400)); # Ensure that all dirty pages in the system are flushed. set global innodb_buf_flush_list_now = 1; # Make the second page dirty for system tablespace set global innodb_saved_page_number_debug = 1; set global innodb_fil_make_page_dirty_debug = 0; # Ensure that the dirty page of system tablespace is also flushed. set global innodb_buf_flush_list_now = 1; # Kill the server # Make the 2nd page (page_no=1) of the system tablespace # all zeroes. # restart check table t1; Table Op Msg_type Msg_text test.t1 check status OK select f1, f2 from t1; f1 f2 1 ############ 2 ++++++++++++ 3 //////////// 4 ------------ 5 ............ # Test End # --------------------------------------------------------------- # Test Begin: Test if recovery works if 2nd page of # system tablespace is corrupted. begin; insert into t1 values (6, repeat('%', 400)); # Ensure that all dirty pages in the system are flushed. set global innodb_buf_flush_list_now = 1; # Make the second page dirty for system tablespace set global innodb_saved_page_number_debug = 1; set global innodb_fil_make_page_dirty_debug = 0; # Ensure that the dirty page of system tablespace is also flushed. set global innodb_buf_flush_list_now = 1; # Kill the server # Make the 2nd page (page_no=1) of the system tablespace # all zeroes. # restart check table t1; Table Op Msg_type Msg_text test.t1 check status OK select f1, f2 from t1; f1 f2 1 ############ 2 ++++++++++++ 3 //////////// 4 ------------ 5 ............ # Test End # --------------------------------------------------------------- drop table t1; # # BUG#20511314 - INNODB: FAILING ASSERTION: FOUND IN BUF0BUF.CC LINE 3856 # SET GLOBAL innodb_fil_make_page_dirty_debug=38098908; # # Bug#22311319 - SERVER CRASHES ON INVALID VALUE FOR VARIABLE # INNODB_SAVED_PAGE_NUMBER_DEBUG # set global innodb_saved_page_number_debug=461461461; set global innodb_fil_make_page_dirty_debug=0; set global innodb_saved_page_number_debug=default;