[
https://issues.apache.org/jira/browse/MESOS-674?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13759791#comment-13759791
]
Vinod Kone commented on MESOS-674:
----------------------------------
OK. I spent quite some time today thinking about how to implement this. There
are few options, but none of them are completely satisfactory.
1) Use command executor binary as the custom test executor. Test schedulers
could set non-zero resources on the executor and point to the binary.
Issues:
a) Command executor does CHECK(TaskInfo.has_command()). Since the test
scheduler sets ExecutorInfo, it cannot set CommandInfo on the TaskInfo.
A possible solution (hack) is to change the command executor to not do the
CHECK but rather get the command to run from either TaskInfo.command() or, if
not present, from TaskInfo.data().
b) Even with a), there is a problem because the slave currently recognizes a
executor as command executor based on its path. Since we are using the same
command executor binary, this is not going to work.
A possible solution (hack) is to make a copy of the executor binary and
rename it. We could do this in our Makefile.
2) Write a completely new test executor.
Issues:
a) This is going to be an almost identical copy of the command executor
unless we want the test executor to be more generic and launch multiple tasks.
While the latter is useful we haven't had a need for such an executor in our
tests so far (chicken and egg problem?).
b) There is already a TestExecutor that is used by the TestFramework in our
sample frameworks. So we can't really call the test executor TestExecutor.
Maybe we could rename all our sample frameworks/executors by s/Test/Example/.
3) Let the scheduler driver generate/set the command executor info when the
task has command info set.
A nice thing about this that command executors are transparent to masters
and slaves.
Issues:
a) How would the scheduler driver know the path to the command executor
binary?
b) This would likely mean framework writers can/will be able to use it
explicitly as their executor. Do we want to allow/support this?
> Implement a test executor
> -------------------------
>
> Key: MESOS-674
> URL: https://issues.apache.org/jira/browse/MESOS-674
> Project: Mesos
> Issue Type: Improvement
> Reporter: Vinod Kone
> Assignee: Vinod Kone
> Fix For: 0.15.0
>
>
> Most (all?) of our tests either use the MockExecutor or the CommandExecutor.
> While the former cannot be used with process/cgroups isolators the latter
> might hide some bugs (e.g., resource accounting, executor terminated message
> to the master etc).
> We need a test executor that uses non-zero resources, can be launched on
> process/cgroups isolators and runs a simple command line.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira