From 472bce58ab9567df46ee279872ba0efdcb731c19 Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sun, 11 Dec 2022 02:42:32 +0300 Subject: [PATCH] Fix rare crash in osd_peering due to callback ordering --- src/osd_peering.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/osd_peering.cpp b/src/osd_peering.cpp index 3639ee48..dacb60fb 100644 --- a/src/osd_peering.cpp +++ b/src/osd_peering.cpp @@ -336,8 +336,8 @@ void osd_t::submit_sync_and_list_subop(osd_num_t role_osd, pg_peering_state_t *p ps->list_ops.erase(role_osd); submit_list_subop(role_osd, ps); }; - bs->enqueue_op(op->bs_op); ps->list_ops[role_osd] = op; + bs->enqueue_op(op->bs_op); } else { @@ -371,8 +371,8 @@ void osd_t::submit_sync_and_list_subop(osd_num_t role_osd, pg_peering_state_t *p ps->list_ops.erase(role_osd); submit_list_subop(role_osd, ps); }; - msgr.outbox_push(op); ps->list_ops[role_osd] = op; + msgr.outbox_push(op); } } @@ -415,8 +415,8 @@ void osd_t::submit_list_subop(osd_num_t role_osd, pg_peering_state_t *ps) op->bs_op = NULL; delete op; }; - bs->enqueue_op(op->bs_op); ps->list_ops[role_osd] = op; + bs->enqueue_op(op->bs_op); } else { @@ -463,8 +463,8 @@ void osd_t::submit_list_subop(osd_num_t role_osd, pg_peering_state_t *ps) ps->list_ops.erase(role_osd); delete op; }; - msgr.outbox_push(op); ps->list_ops[role_osd] = op; + msgr.outbox_push(op); } }