diff --git a/mysql-test/suite/innodb/t/innodb-alter-table-disk-full.test b/mysql-test/suite/innodb/t/innodb-alter-table-disk-full.test index 4e3a7bfdae6..adeb2ef9fd2 100644 --- a/mysql-test/suite/innodb/t/innodb-alter-table-disk-full.test +++ b/mysql-test/suite/innodb/t/innodb-alter-table-disk-full.test @@ -1,5 +1,8 @@ # MDEV-6288: Innodb causes server crash after disk full, then can't ALTER TABLE any more --source include/have_innodb.inc +--source include/not_windows.inc +--source include/not_valgrind.inc +--source include/not_embedded.inc # DEBUG_SYNC must be compiled in. --source include/have_debug_sync.inc diff --git a/storage/innobase/os/os0file.cc b/storage/innobase/os/os0file.cc index ee00b15c72c..398a0466eeb 100644 --- a/storage/innobase/os/os0file.cc +++ b/storage/innobase/os/os0file.cc @@ -5929,12 +5929,12 @@ consecutive_loop: aio_slot->page_compression); } - DBUG_EXECUTE_IF("ib_os_aio_func_io_failure_28_2", - os_has_said_disk_full = FALSE;); - DBUG_EXECUTE_IF("ib_os_aio_func_io_failure_28_2", - ret = 0;); - DBUG_EXECUTE_IF("ib_os_aio_func_io_failure_28_2", + if (aio_slot->type == OS_FILE_WRITE) { + DBUG_EXECUTE_IF("ib_os_aio_func_io_failure_28", + os_has_said_disk_full = FALSE; + ret = 0; errno = 28;); + } srv_set_io_thread_op_info(global_segment, "file i/o done"); diff --git a/storage/xtradb/os/os0file.cc b/storage/xtradb/os/os0file.cc index bb67f2d453c..3b955fc14c7 100644 --- a/storage/xtradb/os/os0file.cc +++ b/storage/xtradb/os/os0file.cc @@ -6022,12 +6022,10 @@ consecutive_loop: aio_slot->page_compression); } - DBUG_EXECUTE_IF("ib_os_aio_func_io_failure_28_2", - os_has_said_disk_full = FALSE;); - DBUG_EXECUTE_IF("ib_os_aio_func_io_failure_28_2", - ret = 0;); - DBUG_EXECUTE_IF("ib_os_aio_func_io_failure_28_2", - errno = 28;); + if (aio_slot->type == OS_FILE_WRITE) { + DBUG_EXECUTE_IF("ib_os_aio_func_io_failure_28_2", + os_has_said_disk_full = FALSE; ret = 0; errno = 28;); + } srv_set_io_thread_op_info(global_segment, "file i/o done");