Cancel outbound operations after re-peering PGs
parent
f011e0c675
commit
1e8f0328e0
|
@ -340,8 +340,6 @@ void osd_messenger_t::stop_client(int peer_fd)
|
||||||
if (cl->osd_num)
|
if (cl->osd_num)
|
||||||
{
|
{
|
||||||
osd_peer_fds.erase(cl->osd_num);
|
osd_peer_fds.erase(cl->osd_num);
|
||||||
// Cancel outbound operations
|
|
||||||
cancel_osd_ops(cl);
|
|
||||||
}
|
}
|
||||||
if (cl->read_op)
|
if (cl->read_op)
|
||||||
{
|
{
|
||||||
|
@ -367,14 +365,21 @@ void osd_messenger_t::stop_client(int peer_fd)
|
||||||
free(cl->in_buf);
|
free(cl->in_buf);
|
||||||
cl->in_buf = NULL;
|
cl->in_buf = NULL;
|
||||||
close(peer_fd);
|
close(peer_fd);
|
||||||
|
if (repeer_osd)
|
||||||
|
{
|
||||||
|
// First repeer PGs as canceling OSD ops may push new operations
|
||||||
|
// and we need correct PG states when we do that
|
||||||
|
repeer_pgs(repeer_osd);
|
||||||
|
}
|
||||||
|
if (cl->osd_num)
|
||||||
|
{
|
||||||
|
// Cancel outbound operations
|
||||||
|
cancel_osd_ops(cl);
|
||||||
|
}
|
||||||
if (cl->refs <= 0)
|
if (cl->refs <= 0)
|
||||||
{
|
{
|
||||||
delete cl;
|
delete cl;
|
||||||
}
|
}
|
||||||
if (repeer_osd)
|
|
||||||
{
|
|
||||||
repeer_pgs(repeer_osd);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void osd_messenger_t::accept_connections(int listen_fd)
|
void osd_messenger_t::accept_connections(int listen_fd)
|
||||||
|
|
|
@ -1067,7 +1067,7 @@ class Mon
|
||||||
}
|
}
|
||||||
catch (e)
|
catch (e)
|
||||||
{
|
{
|
||||||
console.log('Bad key in etcd: '+kv.key+' = '+kv.value);
|
console.log('Bad value in etcd: '+kv.key+' = '+kv.value);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
key = key.split('/');
|
key = key.split('/');
|
||||||
|
|
Loading…
Reference in New Issue