You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Marco Massenzio (JIRA)" <ji...@apache.org> on 2015/10/13 10:51:05 UTC

[jira] [Commented] (MESOS-3712) --launcher_dir flag is not picked up when running health-checks

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

Marco Massenzio commented on MESOS-3712:
----------------------------------------

I've updated the description / title of the issue, to narrow down its scope: {{Flags}} do what they are supposed to do (read the environment for flags, then the command line) and set the various internal options accordingly - expecting them to propagate the flags to the environment, so other parts of the code can pick them up, would be an "encroaching of concerns" in my view.

A better strategy, would be to find ways in which the executor can be passed an option/configuration argument, so that it finds the launcher dir, without having to look into the environment (which, as we have seen, does not work).

> --launcher_dir flag is not picked up when running health-checks
> ---------------------------------------------------------------
>
>                 Key: MESOS-3712
>                 URL: https://issues.apache.org/jira/browse/MESOS-3712
>             Project: Mesos
>          Issue Type: Bug
>          Components: slave
>    Affects Versions: 0.24.1, 0.25.0
>         Environment: Ubuntu Linux x64
>            Reporter: Jay Taylor
>            Assignee: Marco Massenzio
>              Labels: containerizer, mesosphere, tech-debt
>
> Mesos configuration flags are one-way and aren't expanded to their corresponding MESOS_ENV variable.
> The {{MESOS_LAUNCHER_DIR}} however, is necessary [here| https://github.com/apache/mesos/blob/master/src/docker/executor.cpp#L573-L576]:
> {code}
>   const Option<string> envPath = os::getenv("MESOS_LAUNCHER_DIR");
>   string path =
>     envPath.isSome() ? envPath.get()
>                      : os::realpath(Path(argv[0]).dirname()).get();
> {code}
> when the executor needs to resolve the path to run, for example, health-checks.
> Instead of the passed-in argument {{argv[0]}} (which contains the Agent's {{--work_dir}} instead) is the path that ends up being used.
> How can the requisite MESOS_LAUNCHER_DIR env var be available when {{docker/executor.cpp}} (a child process of {{mesos-slave}}) attempts to read it?
> ----
> The relevant email thread is here:
> http://www.mail-archive.com/user@mesos.apache.org/msg04794.html



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)