Project

General

Profile

Actions

Bug #16198

closed

Possible race condition during journal transition from replay to ready

Added by Jason Dillaman almost 8 years ago. Updated over 7 years ago.

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

Related issues 1 (0 open1 closed)

Copied to rbd - Backport #16426: jewel: Possible race condition during journal transition from replay to readyResolvedLoïc DacharyActions
Actions #1

Updated by Jason Dillaman almost 8 years ago

  • Status changed from New to In Progress
  • Assignee set to Jason Dillaman
  • Backport set to jewel
Actions #2

Updated by Jason Dillaman almost 8 years ago

  • Status changed from In Progress to Fix Under Review
Actions #3

Updated by Mykola Golub almost 8 years ago

  • Status changed from Fix Under Review to Pending Backport
Actions #4

Updated by Nathan Cutler almost 8 years ago

  • Copied to Backport #16426: jewel: Possible race condition during journal transition from replay to ready added
Actions #5

Updated by Loïc Dachary over 7 years ago

  • Status changed from Pending Backport to Resolved
Actions

Also available in: Atom PDF