Add a sad FIXME :-)
parent
01dd3ef89e
commit
e614a98543
1
osd.cpp
1
osd.cpp
|
@ -401,6 +401,7 @@ void osd_t::cancel_op(osd_op_t *op)
|
||||||
|
|
||||||
void osd_t::stop_client(int peer_fd)
|
void osd_t::stop_client(int peer_fd)
|
||||||
{
|
{
|
||||||
|
// FIXME Fix the bug where sometimes a dead peer is undetected which leads to PG DEGRADED|HAS_INCOMPLETE!
|
||||||
auto it = clients.find(peer_fd);
|
auto it = clients.find(peer_fd);
|
||||||
if (it == clients.end())
|
if (it == clients.end())
|
||||||
{
|
{
|
||||||
|
|
|
@ -247,7 +247,11 @@ void osd_t::handle_primary_subop(uint64_t opcode, osd_op_t *cur_op, int retval,
|
||||||
{
|
{
|
||||||
if (op_data->fact_ver != 0 && op_data->fact_ver != version)
|
if (op_data->fact_ver != 0 && op_data->fact_ver != version)
|
||||||
{
|
{
|
||||||
throw std::runtime_error("different fact_versions returned from subops: "+std::to_string(version)+" vs "+std::to_string(op_data->fact_ver));
|
// FIXME There is still a bug that leads to this exception sometimes :-((
|
||||||
|
throw std::runtime_error(
|
||||||
|
"different fact_versions returned from "+std::string(osd_op_names[opcode])+
|
||||||
|
" subops: "+std::to_string(version)+" vs "+std::to_string(op_data->fact_ver)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
op_data->fact_ver = version;
|
op_data->fact_ver = version;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue