Correctly delete handle_immediate_ops when stopping a client

Fixes map::at crash in some cases
This commit is contained in:
Vitaliy Filippov
2026-03-02 01:48:19 +03:00
parent fd3e3b4ef0
commit 310c512b43
4 changed files with 9 additions and 3 deletions
+3 -2
View File
@@ -160,8 +160,10 @@ void osd_messenger_t::clear_immediate_ops(int peer_fd)
void osd_messenger_t::handle_immediate_ops()
{
for (auto op: set_immediate_ops)
while (set_immediate_ops.size())
{
auto op = set_immediate_ops.front();
set_immediate_ops.pop_front();
if (op->op_type == OSD_OP_IN)
{
exec_op(op);
@@ -172,7 +174,6 @@ void osd_messenger_t::handle_immediate_ops()
std::function<void(osd_op_t*)>(op->callback)(op);
}
}
set_immediate_ops.clear();
}
bool osd_messenger_t::handle_read_buffer(osd_client_t *cl, void *curbuf, int remain)