Cancel outbound operations after re-peering PGs

Vitaliy Filippov 2020-10-22 22:54:38 +00:00
parent f011e0c675
commit 1e8f0328e0
2 changed files with 12 additions and 7 deletions

View File

@ -340,8 +340,6 @@ void osd_messenger_t::stop_client(int peer_fd)
if (cl->osd_num)
{
osd_peer_fds.erase(cl->osd_num);
// Cancel outbound operations
cancel_osd_ops(cl);
}
if (cl->read_op)
{
@ -367,14 +365,21 @@ void osd_messenger_t::stop_client(int peer_fd)
free(cl->in_buf);
cl->in_buf = NULL;
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)
{
delete cl;
}
if (repeer_osd)
{
repeer_pgs(repeer_osd);
}
}
void osd_messenger_t::accept_connections(int listen_fd)

View File

@ -1067,7 +1067,7 @@ class Mon
}
catch (e)
{
console.log('Bad key in etcd: '+kv.key+' = '+kv.value);
console.log('Bad value in etcd: '+kv.key+' = '+kv.value);
return;
}
key = key.split('/');