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

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

 



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