[ 
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)

Reply via email to