Check result to be equal to iov_len

This commit is contained in:
Vitaliy Filippov
2019-11-18 02:09:34 +03:00
parent d9d6a4f9c4
commit e40a71b2ce
6 changed files with 30 additions and 12 deletions
+10 -4
View File
@@ -24,9 +24,12 @@ journal_flusher_co::journal_flusher_co()
wait_state = 0;
simple_callback = [this](ring_data_t* data)
{
if (data->res < 0)
if (data->res != data->iov.iov_len)
{
throw std::runtime_error("write operation failed. in-memory state is corrupted. AAAAAAAaaaaaaaaa!!!111");
throw std::runtime_error(
"write operation failed ("+std::to_string(data->res)+" != "+std::to_string(data->iov.iov_len)+
"). in-memory state is corrupted. AAAAAAAaaaaaaaaa!!!111"
);
}
wait_count--;
};
@@ -243,9 +246,12 @@ resume_0:
data->iov = (struct iovec){ meta_it->second.buf, 512 };
data->callback = [this](ring_data_t* data)
{
if (data->res < 0)
if (data->res != data->iov.iov_len)
{
throw std::runtime_error("write operation failed. in-memory state is corrupted. AAAAAAAaaaaaaaaa!!!111");
throw std::runtime_error(
"write operation failed ("+std::to_string(data->res)+" != "+std::to_string(data->iov.iov_len)+
"). in-memory state is corrupted. AAAAAAAaaaaaaaaa!!!111"
);
}
meta_it->second.state = 1;
wait_count--;