You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Zhitao Li (JIRA)" <ji...@apache.org> on 2017/05/26 19:19:04 UTC

[jira] [Commented] (MESOS-7566) Master crash due to failed check in DRFSorter::remove

    [ https://issues.apache.org/jira/browse/MESOS-7566?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16026712#comment-16026712 ] 

Zhitao Li commented on MESOS-7566:
----------------------------------

I suspect this is another manifesting of root cause in MESOS-4553.

A couple of observations:


1 there is always a revocable resource decrease as well as a UNRESERVE operation before crash;
2 DRFSorter somehow gets updated with the newer (and smaller value) in its total_ but somehow still asked to remove an older value, thus code crashed;
3 The reason about 2 is possibly a race condition between master and hierarchical process queue (unfortunately, without a coredump or verbose logging, this is still pretty hard to diagnose further based on my knowledge of the codebase, as there are still multiple code paths leading the crash)

> Master crash due to failed check in DRFSorter::remove
> -----------------------------------------------------
>
>                 Key: MESOS-7566
>                 URL: https://issues.apache.org/jira/browse/MESOS-7566
>             Project: Mesos
>          Issue Type: Bug
>    Affects Versions: 1.1.1, 1.1.2
>            Reporter: Zhitao Li
>            Priority: Critical
>
> A check in [sorter.cpp#L355 in 1.1.2 | https://github.com/apache/mesos/blob/1.1.2/src/master/allocator/sorter/drf/sorter.cpp#L355] is triggered occasionally in our cluster and crashes the master leader.
> I manually modified that check to print out the related variables, and the following is a master log.
> https://gist.github.com/zhitaoli/0662d9fe1f6d57de344951c05b536bad#file-gistfile1-txt
> From the log, it seems like the check was using an stale value revocable CPU  {{26}} while the new value was updated to 25, thus the check crashed.
> So far two verified occurrence of this bug are both observed near an {{UNRESERVE}} operation (see lines above in the log).



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)