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));
|
||||
} 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_));
|
||||
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 {
|
||||
ret = OB_TIMEOUT;
|
||||
|
||||
Reference in New Issue
Block a user