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