You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Meng Zhu (JIRA)" <ji...@apache.org> on 2018/03/27 20:31:00 UTC

[jira] [Created] (MESOS-8741) `Add` to sequence will not run if it races with sequence destruction

Meng Zhu created MESOS-8741:
-------------------------------

             Summary: `Add` to sequence will not run if it races with sequence destruction
                 Key: MESOS-8741
                 URL: https://issues.apache.org/jira/browse/MESOS-8741
             Project: Mesos
          Issue Type: Bug
         Environment: 


            Reporter: Meng Zhu
            Assignee: Meng Zhu


Adding item to sequence is realized by dispatching `add()` to the sequence actor. However, this could race with the sequence actor destruction.:

After the dispatch but before the dispatched `add()` message gets processed by the sequence actor, if the sequence gets destroyed, a terminate message will be injected to the *head* of the message queue. This would result in the destruction of the sequence without the `add()` call ever gets processed. User would end up with a pending future and the future's `onDiscarded' would not be triggered during the sequence destruction.

The solution is to set the `inject` flag to `false` so that the terminating message is enqueued to the end of the sequence actor message queue. All `add()` messages that happen before the destruction will be processed before the terminating message.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)