Re: A bug may cause a request be executed twice in mClockQueue

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Yes, I agree.
kefu chai <tchaikov@xxxxxxxxx> 于2018年10月11日周四 下午5:25写道:
>
> On Thu, Oct 11, 2018 at 1:19 PM 韦皓诚 <whc0000001@xxxxxxxxx> wrote:
> >
> > Hi guys
> > Class mClockQueue calls  PullPriorityQueue::pull_request in function
> > dequeue() . But PullPriorityQueue::pull_request may return a "future"
> > value. That means the mclock tag of the request are greater than now,
> > so it should be executed in the future instead of now.The mistake is
> > that the mClockQueue::dequeue() do not consider about the type of
> > return value
>
> in that case, the returned PullReq is a "future" instead of a "retn",
> so ceph_assert() will abort OSD if a "future" is returned. but i agree
> with you, probably we need to wait for "crimson::dmclock::get_time() -
> pr.getTime()" before retrying.
>
> > and execute the request immediately. What is more serious is that
> > PullPriorityQueue remains the request in queue and it would be
> > executed twice in the future.
> >
> >
> >                              From Weihaocheng
>
>
>
> --
> Regards
> Kefu Chai




[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux