diff --git a/src/v/storage/log_reader.cc b/src/v/storage/log_reader.cc index b027b7a0a2633..1aaf9094441b3 100644 --- a/src/v/storage/log_reader.cc +++ b/src/v/storage/log_reader.cc @@ -206,7 +206,16 @@ log_segment_batch_reader::read_some(model::timeout_clock::time_point timeout) { } auto tmp = std::exchange(_state, {}); return result(std::move(tmp.buffer)); - }); + }) + .handle_exception_type( + [](const std::system_error& ec) -> ss::future> { + if (ec.code().value() == EIO) { + vassert(false, "I/O error during read! Disk failure?"); + } else { + return ss::make_exception_future>( + std::current_exception()); + } + }); } log_reader::log_reader(