detect disk hang
This commit is contained in:
8
deps/oblib/src/lib/io/ob_io_manager.cpp
vendored
8
deps/oblib/src/lib/io/ob_io_manager.cpp
vendored
@ -81,6 +81,14 @@ int ObIOHandle::wait(const int64_t timeout_ms)
|
|||||||
COMMON_LOG(ERROR, "fail to guard master condition", K(ret));
|
COMMON_LOG(ERROR, "fail to guard master condition", K(ret));
|
||||||
} else if (!master_->has_finished_ && OB_FAIL(master_->cond_.wait(real_wait_timeout))) {
|
} else if (!master_->has_finished_ && OB_FAIL(master_->cond_.wait(real_wait_timeout))) {
|
||||||
COMMON_LOG(WARN, "fail to wait master condition", K(ret), K(real_wait_timeout), K(*master_));
|
COMMON_LOG(WARN, "fail to wait master condition", K(ret), K(real_wait_timeout), K(*master_));
|
||||||
|
if (OB_TIMEOUT == ret) {
|
||||||
|
for (int64_t i = 0; i < master_->io_info_.batch_count_; ++i) { // ignore ret
|
||||||
|
ObIORequest *req = master_->requests_[i];
|
||||||
|
if (nullptr != req && nullptr != req->get_disk()) {
|
||||||
|
req->get_disk()->record_io_failure(*req, DEFAULT_IO_WAIT_TIME_MS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
ret = OB_TIMEOUT;
|
ret = OB_TIMEOUT;
|
||||||
|
|||||||
Reference in New Issue
Block a user