librados, objecter: op_submit() returns after request completion, AioCompletion related race
The following line is problematic:
c->tid = objecter->op_submit(objecter_op);
because the assignment might happen after the completion has been dropped. This can happen if we release the completion at the ack callback, and everything finishes before op_submit() returns. The fix should be by having op_submit() itself setting c->tid under a lock (or dropping c->tid altogether if not needed).
osdc/Objecter: fix narrow race with tid assignment
The operation completion could finish and be freed before we
do the info->register_tid assignment. Avoid this by doing the
assignment in _op_submit itself.
Signed-off-by: Sage Weil <email@example.com>
- Priority changed from Normal to Urgent
- Status changed from New to Need Review
- Assignee set to Sage Weil
- Status changed from Need Review to In Progress
- Status changed from In Progress to Resolved
do we need to backport this fix to hammer?
Also available in: Atom