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

Till Toenshoff commented on MESOS-1251:
---------------------------------------

Thanks for looking into this Ian. I have not really looked at that code path 
within the slave after I found this quirky behavior. So that is now on my 
TODO-List to be confirmed. 

The interesting thing for me is that up until yesterday, my experience exactly 
matched your description (everything but {{wait}} is chained). However, now 
that I refactored my ExternalContainerizer-test by using a Mocked version of 
that class (see https://reviews.apache.org/r/17567/), I suddenly saw all kinds 
of events coming in prior to a fully launched container (Future ready). So 
either my new test triggers this behavior by doing something wrong, or we 
indeed do not chain on the launch-future.



> Slave should make sure that the containerizer::launch returned Future is ready
> ------------------------------------------------------------------------------
>
>                 Key: MESOS-1251
>                 URL: https://issues.apache.org/jira/browse/MESOS-1251
>             Project: Mesos
>          Issue Type: Improvement
>            Reporter: Till Toenshoff
>            Priority: Minor
>              Labels: concurrency, containerizer, order, slave
>
> Currently the slave is not awaiting the {{Future<Nothing>}} returned by 
> {{Containerizer::Launch}} before sending out more command events.
> Is there a reason for this behavior?
> This issue becomes apparent only when having a launch-command-implementations 
> that is relatively "expensive".
> So what I can see here is the following chain of events along a vertical time 
> axis:
> {noformat}
> Launch
>    |
>    |  Wait
>    |    |
>    |    | Update 
>    |    |    |
>    ----------Launch Future<Nothing> became ready
> {noformat}
> What I would like to see is:
> {noformat}
> Launch
>    |
>    |
>    |
>    |
>    |
>    ----------Launch Future<Nothing> became ready
>       Wait
>         |
>         | Update 
>         |    |
> {noformat}
> As we are currently pushing the former behavior into the implementation of 
> the containerizer, things quickly get rather complicated on that side. Hence 
> I would like to understand if that is something we really want / need or if 
> we might want to fix this within the slave in a longer run.
> So far, I have only observed this to be a challenge for {{Launch}}, but other 
> events might just as well be worth a thought on enforced chaining instead of 
> concurrent invocations. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to