From ef1ba3b1e6d6030f15ae1bdc36f124ac8da61680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Lindstr=C3=B6m?= Date: Mon, 24 Nov 2014 15:26:47 +0200 Subject: [PATCH] MDEV-7164: innodb.innodb-alter-table-disk-full fails in buildbot on Windows Analysis: Test case uses Linux specific error codes. Fix: Can't run test case with Windows currently because requires to inject error to system. --- .../suite/innodb/t/innodb-alter-table-disk-full.test | 3 +++ storage/innobase/os/os0file.cc | 10 +++++----- storage/xtradb/os/os0file.cc | 10 ++++------ 3 files changed, 12 insertions(+), 11 deletions(-) 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 162c51425f4..da2ae91763c 100644 --- a/storage/innobase/os/os0file.cc +++ b/storage/innobase/os/os0file.cc @@ -5455,12 +5455,12 @@ consecutive_loop: aio_slot->offset, total_len); } - 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 9ccfb39981d..dcab27370f5 100644 --- a/storage/xtradb/os/os0file.cc +++ b/storage/xtradb/os/os0file.cc @@ -5597,12 +5597,10 @@ consecutive_loop: aio_slot->offset, total_len); } - 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");