[ 
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

Reply via email to