Actions
Bug #16198
closedPossible race condition during journal transition from replay to ready
Status:
Resolved
Priority:
Normal
Assignee:
Jason Dillaman
Target version:
-
% Done:
0%
Source:
other
Tags:
Backport:
jewel
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
If an op is replayed, it's possible that its completion could race with the 'handle_replay_complete' notification, which will shut-down the replayer.
assertion=assertion@entry=0x7fcaf657c760 "m_state == STATE_REPLAYING || m_state == STATE_FLUSHING_RESTART || m_state == STATE_FLUSHING_REPLAY", file=file@entry=0x7fcaf657c0cf "librbd/Journal.cc", line=line@entry=1355, func=func@entry=0x7fcaf657d420 <librbd::Journal<librbd::ImageCtx>::handle_replay_process_safe(journal::ReplayEntry, int)::__PRETTY_FUNCTION__> "void librbd::Journal<ImageCtxT>::handle_replay_process_safe(librbd::Journal<ImageCtxT>::ReplayEntry, int) [with ImageCtxT = librbd::ImageCtx; librbd::Journal<ImageCtxT>::ReplayEntry = journal::ReplayE"...) at common/assert.cc:78 #3 0x00007fcaf611367d in librbd::Journal<librbd::ImageCtx>::handle_replay_process_safe (this=0x7fcb008964e0, replay_entry=..., r=r@entry=0) at librbd/Journal.cc:1353 #4 0x00007fcaf6113735 in librbd::Journal<librbd::ImageCtx>::C_ReplayProcessSafe::finish (this=0x7fcb00917810, r=0) at ./librbd/Journal.h:235 #5 0x00007fcaf6041b89 in Context::complete (this=0x7fcb00917810, r=<optimized out>) at ./include/Context.h:64 #6 0x00007fcaf6156d99 in librbd::journal::Replay<librbd::ImageCtx>::handle_op_complete (this=0x7fcb00965af0, op_tid=1, r=0) at librbd/journal/Replay.cc:774 #7 0x00007fcaf6041b89 in Context::complete (this=0x7fcb009893b0, r=<optimized out>) at ./include/Context.h:64 #8 0x00007fcaf6181e86 in complete (r=<optimized out>, this=0x7fcb00940bd0) at ./librbd/AsyncRequest.h:26 #9 librbd::util::detail::rados_callback<librbd::AsyncRequest<librbd::ImageCtx> > (c=<optimized out>, arg=0x7fcb00940bd0) at ./librbd/Utils.h:23 #10 0x00007fcaf622259d in librados::C_AioSafe::finish (this=0x7fcb009316b0, r=<optimized out>) at librados/AioCompletionImpl.h:200 #11 0x00007fcaf6041b89 in Context::complete (this=0x7fcb009316b0, r=<optimized out>) at ./include/Context.h:64 #12 0x00007fcaf62b86a6 in Finisher::finisher_thread_entry (this=0x7fcb00918490) at common/Finisher.cc:68
Actions