You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Greg Mann (JIRA)" <ji...@apache.org> on 2017/06/15 20:47:00 UTC

[jira] [Updated] (MESOS-7680) Stop using EXIT() in master/agent initialization code

     [ https://issues.apache.org/jira/browse/MESOS-7680?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Greg Mann updated MESOS-7680:
-----------------------------
    Description: 
The initialization of master/agent dependencies is currently inconsistent. For some dependencies, we initialize them outside of the actor and then inject them via the constructor; for example, in {{main.cpp}} and {{cluster.cpp}}.

Some other dependencies are created/initialized within the master/slave's {{initialize()}} method. In this case, if the dependency creation fails, we use {{EXIT(EXIT_FAILURE)}} to terminate the process. In the case of tests, this is problematic. If I create multiple agents, for example, and one of their dependencies fails to initialize successfully, the entire test harness would exit :-(

During some discussion, [~jieyu] proposed an alternative: instead of using {{EXIT}} when dependency creation fails, we could terminate the master/agent libprocess process. In the case of the production binaries, this would cause the executable to exit. In the case of our tests, this would allow a single test to fail, while the test harness continues running.



  was:
The initialization of master/agent dependencies is currently inconsistent. For some dependencies, we initialize them outside of the actor and then inject them via the constructor; for example, in {{main.cpp}} and {{cluster.cpp}}.

Some other dependencies are created/initialized within the master/slave's {{initialize()}} method. In this case, if the dependency creation fails, we use {{EXIT(EXIT_FAILURE)}} to terminate the process. In the case of tests, this is problematic. If I create multiple agents, for example, and one of their dependencies fails to initialize successfully, the entire test harness would exit :-(

Instead of using {{EXIT}} when dependency creation fails, we should terminate the master/agent libprocess process. In the case of the production binaries, this will cause the executable to exit. In the case of our tests, this will allow a single test to fail, while the test harness continues running.




> Stop using EXIT() in master/agent initialization code
> -----------------------------------------------------
>
>                 Key: MESOS-7680
>                 URL: https://issues.apache.org/jira/browse/MESOS-7680
>             Project: Mesos
>          Issue Type: Improvement
>          Components: agent, master
>            Reporter: Greg Mann
>              Labels: mesosphere
>
> The initialization of master/agent dependencies is currently inconsistent. For some dependencies, we initialize them outside of the actor and then inject them via the constructor; for example, in {{main.cpp}} and {{cluster.cpp}}.
> Some other dependencies are created/initialized within the master/slave's {{initialize()}} method. In this case, if the dependency creation fails, we use {{EXIT(EXIT_FAILURE)}} to terminate the process. In the case of tests, this is problematic. If I create multiple agents, for example, and one of their dependencies fails to initialize successfully, the entire test harness would exit :-(
> During some discussion, [~jieyu] proposed an alternative: instead of using {{EXIT}} when dependency creation fails, we could terminate the master/agent libprocess process. In the case of the production binaries, this would cause the executable to exit. In the case of our tests, this would allow a single test to fail, while the test harness continues running.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)